我的第一個python web開發框架(1)——前言

      網友投稿 923 2025-03-31

      我的第一個python web開發框架(1)——前言

      由于工作關系,在15年底公司有機會參加了個小項目開發,使用的是Python語言開發web版的TMS,從而一發不可收拾喜歡上了Python。在體驗了python開發的便捷以后,接下來就有了python開發的第二個、第三個web項目。

      第一個項目是在運維同事小戴(運維大牛)的指導下,花了三天時間學習python基本語法,然后花了一天時間熟悉小戴寫的Python框架,就馬上進入開發寫業務,大概花了一個月左右時間就完成了公司安排的項目并上線了。學習的第一個python框架是一個輕量級、直白、簡單的框架(大家可以上小戴的博客http://www.linuxyw.com/去學習,有詳細的教程和源碼),這個框架的代碼追求的是讓沒什么基礎的人也能很容易看明白每行代碼的用途,讓初學者容易上手開發維護,降低系統的維護難度。通過這個項目的開發讓我重新反思以前自己所寫的代碼與框架的利弊,過多的使用一些技術與模式,讓自己的框架表面看功能很強大,但入門門檻就非常高了,雖然有很多文檔與注釋,但要學會并靈活應用就不是那么容易的事情,維護起來也比較困難,反而返璞歸真的編碼方式讓人有另一種感受。

      由于第一個項目完成的不錯,所以很快公司就安排了第二個python項目。有了之前的項目經驗后,發現原框架有好多重復的代碼存在,代碼的重用率不高,所以花了三周時間對項目底層進行了重構,根據自己的需要開發了一個全新的ORM模塊,對很多工具函數進行了重構,優化了數據層代碼,增加了邏輯層,根據需要在IDE中整合了多項目共享同一模塊代碼......當然這個過程中踩了很多很多坑,在跌跌碰碰的過程中完成了第一版的python快速開發框架。然后使用這個框架和另一位后端開發人員+10位前端開發(android/ios/web)用了三個月左右時間完成了一個中型項目開發,并通過測試上線運行。

      創業型公司的生命是短暫的,在16年的10月份公司進入了清盤,公司解聘了所有員工,拿了補償后應廣東老東家邀請回到了廣州上班,廣州公司業務比較復雜,原系統的擴展性不強,每增加一個電信運營商就得部署一套差不多的代碼,如果合作的APP同時接入不同的運營商,就得部署多套類似的接入不同運營商的服務,也就是說合作越多部署的服務就會越多:運營商*N個*N個APP合作商=xx個服務。維護起來非常麻煩,且數據不能共享,需要重新開發一套系統來代替原來系統。由于python開發效率高速度快、維護方便等原因考慮,就有了我第三個python web項目,同時也是我獨立設計的第一個分布式微服務架構的項目,通過一個多月孤軍奮戰,對原python框架進行了全面重構和重寫,python快速開發框架2.0版終于出來了,接著在另一位同事的共同努力下,用了一個月時間完成了舊系統業務功能往新系統遷移開發,并交付給客戶使用,與客戶們的舊版APP實現了無縫平滑對接。

      在學習并使用python開發的過程中我經常在思考,一個好的框架會用到各種封裝、設計模式、面向對象的各種原則與準則,而想要讓一個初學者快速上手馬上進行業務開發卻很難。因為封裝多了,代碼簡練了,重用性高了,而帶來的結果是可讀性可理解性卻下降了,如果沒有完善的文檔或花大量的時間去了解,很難學得透。這兩年時間自己也在嘗試學習別人寫的框架,學習別人寫的教程,雖然說自己已經有十多年的開發經驗,可學習起來經常也會感到力不從心,很吃力,因為拿到一份源碼后,發現代碼量太大,無從下手。而自己在使用自己寫的框架時就不會出現這種情況,為什么呢?經過深入思考發現自己寫的框架也不是一步到位一開始就很復雜的,它也是開始很簡單,當開發經驗累積以后,為了應付各種業務狀況不停的重構與修改,慢慢變的越來越復雜,功能也越來越強大,而框架的可讀性也慢慢隨著下降了。當這樣的框架給到別人學習時,他們不了解框架的發展歷程,不了解很多功能模塊、變量、參數......為什么要這么設計,不了解模塊與模塊、函數與函數等它們之間的關系,要想快速掌握新的框架可想而知難度有多大。所以即使學會了新框架的使用與開發,對于框架中存在的bug卻不知怎么去修改,更不用說根據業務的需要有針對性的去改造框架底層不合理的地方了。

      為了方便同事們的學習,也完成自己的承諾,于是就有了本系列文章。

      本系列博文主要講述的是一個小菜鳥,剛學會python就接了一個外包,寫了一個很簡單的web企業網站,而隨著這個企業的發展,需求的不停變更,繼續不停的改造與重構,企業網站變成一個小型電商平臺、大型電商平臺的過程(是否寫這些功能得看看到時是否有時間)。而代碼也通過不停的重構,從一個簡單得不能再簡單的幾行代碼變成能應付各種業務需求變更,能快速完成開發任務的成熟框架。當然中間也經歷了各種各樣的坑與障礙,希望大家能喜歡這個故事,并與小菜鳥共同成長。

      本系列文章會分為幾大部分,第一部分主要講的是一些基礎、開發常識、開發環境與運行環境等內容,代碼也會非常簡單直接;第二部分是以重構為主,即主角稍微成長起來了,發現有很多重復的代碼,加上出現一些突出事件,需要對系統進行重構,完善系統功能;第三部分是隨著企業業務的發展,對IT會越來越依賴,提出了各種各樣的需求,針對這些需求對系統進行完善;第四部分主題是變革,隨著系統的完善,在這個過程中會發現代碼變得復雜,應對爆增的數據和訪問,現有架構體系無法負載,需要對系統框架進行變革,升級服務器架構與系統框架,往分布式、高可用、微服務架構發展變化;如果還有第五部分的話,將會講解企業架構方面的內容,IT系統根據企業的發展戰略和現有業務能力,增加用戶行為分析、業務數據分析等大數據分析系統,推動企業的發展。

      如果從企業架構成熟度來講,第一、二部分,是處于項目驅動技術階段,一切以項目決策為主;第三、四部分,是處于業務驅動階段,業務開始依賴技術,技術根據業務需要完善與促進業務發展;第五部分是戰略驅動階段,企業慢慢對技術熟悉,會更多的利用數據分析來進行戰略決策,而技術在企業方面也占據著越來越重要的角色,通過大數據來指導企業的發展。

      由于我平常工作很忙,所以暫定寫這幾個部分,到底能否全部寫完還不知道,只能走一步是一步了。前面兩三部分應該沒有問題,后面兩部分涉及的內容太多,不好規劃,章節數量恐怕會很多,如果寫不完大家有興趣的話,也可以加群一起討論探討一下。

      python開發QQ群:669058475(本群已滿)、733466321(可以加2群)

      Python python

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:點開公式編輯器,沒有了分數輸入的那些選框了(如果選擇了輸有公式的單元格,則編輯欄顯示)
      下一篇:PPT如何設置表格行高(ppt表格怎么設置行高)
      相關文章
      亚洲综合日韩中文字幕v在线| 在线日韩日本国产亚洲| 久久亚洲中文字幕精品一区| 久久亚洲AV成人无码国产电影| 亚洲中文字幕无码中文| 亚洲AV无码一区二区三区牛牛| 亚洲最大成人网色香蕉| 亚洲娇小性色xxxx| 亚洲а∨天堂久久精品9966 | 亚洲男人的天堂一区二区| 国产精品亚洲专区无码不卡| 亚洲а∨天堂久久精品| 亚洲精品无码久久不卡| 激情97综合亚洲色婷婷五| 亚洲精品无码午夜福利中文字幕| 亚洲精品无码专区久久久 | 久久精品国产亚洲夜色AV网站| 亚洲成a人片在线观看无码专区| 亚洲国产精品无码久久久不卡 | 亚洲最大的成网4438| 亚洲美免无码中文字幕在线| 亚洲欧洲日产国码www| 久久精品国产亚洲av麻豆图片 | 久久久久亚洲AV片无码| 久久精品国产亚洲AV香蕉| 亚洲日韩中文字幕天堂不卡 | 亚洲熟女少妇一区二区| 亚洲大尺度无码专区尤物| 亚洲成a人片77777kkkk| 久久亚洲AV成人无码| 亚洲va精品中文字幕| 亚洲美国产亚洲AV| 亚洲国产成人爱av在线播放| 久久久久久A亚洲欧洲AV冫| 亚洲精品无码专区在线在线播放| 久久亚洲精精品中文字幕| 亚洲一区动漫卡通在线播放| 亚洲精品国产精品| 亚洲人成网站色在线入口| 亚洲国产精品高清久久久| 日韩亚洲AV无码一区二区不卡 |