源于一次大量重構(gòu)代碼后的感想

? ? ?這是我第一次在簡書上面寫文,分享一下這次重構(gòu)一個(gè)項(xiàng)目后自身的一些感受,可能在這其中我所展現(xiàn)的許多觀點(diǎn)有誤,也望大家輕噴。


? ? 自己是一名軟件工程專業(yè)的學(xué)生,這個(gè)項(xiàng)目簡單的描述是一款預(yù)約APP,開發(fā)方面就兩個(gè)人,我負(fù)責(zé)后端開發(fā),另外一個(gè)朋友負(fù)責(zé)APP和web部分。

? ? 在項(xiàng)目最開始做的時(shí)候,我們倆就后端開發(fā)的技術(shù)選型方面有過爭論,我倆在對后端應(yīng)該設(shè)計(jì)成統(tǒng)一的web api接口供各種類型的客戶端調(diào)用方面沒有異議,但是我的小伙伴在校期間無論是實(shí)訓(xùn)還是項(xiàng)目都只接觸過J2EE--,所以他主張用spring來做,但是我自身雖然沒有怎么接觸過spring,也聽說過它的輕巧和高效,但是我對于java沒有任何的好感,在我當(dāng)初接觸android原生開發(fā)的時(shí)候,java給我留下了糟糕的印象,復(fù)雜而繁瑣的xml配置和大量的封裝使我在閱讀一些設(shè)計(jì)的不夠友好的源碼的時(shí)候經(jīng)常暈頭轉(zhuǎn)向。而我們的應(yīng)用總的來說是I/O密集型應(yīng)用,對語言的執(zhí)行速度方面沒有太高的要求,所以我傾向于在輕快的腳本語言php,ruby,python之間做選擇,而在學(xué)長的影響下我最終選擇了Python。

? ? ?不得不說,這門語言的設(shè)計(jì)哲學(xué)就是simple is better than complex, ?在對開發(fā)者來說真是非常的友好。而我選擇了一款在國內(nèi)比較冷門的web框架-Tornado,當(dāng)然為這次選擇我還吃了不少苦頭,因?yàn)榧词褂羞^一些web開發(fā)經(jīng)驗(yàn)的我在最初學(xué)習(xí)這款框架的時(shí)候也遇到了不少的困難和難題,原因在于它是采用了異步模型,所幸我在google百度大法的幫助下也終于正常使用了起來。而在這時(shí),我也體會(huì)到了什么才是輕,小。Tornado本身的web框架部分只提供了最基本的接口和使用,但即使閱讀它的源碼起來也并不是特別困難,我能輕松的將第三方插件或者自己編寫的驅(qū)動(dòng)整合進(jìn)去,沿著這個(gè)思路,我就一直開發(fā)下去直到第一個(gè)demo完成。

? ? ?終于,到了部署到服務(wù)器上面的時(shí)候,此時(shí)的我還天真的以為python項(xiàng)目的部署會(huì)和有著大量自動(dòng)部署環(huán)境集成的php一樣簡單,但是我發(fā)現(xiàn)自己too young too simple。python的部署的麻煩程度超乎我的想象,在有相關(guān)中文資料的幫助下我還是被折騰了三四天的時(shí)間,我甚至認(rèn)為這就是Python在中國火不起來的原因。。。而且在我自認(rèn)為通過編寫自動(dòng)化腳本來解決每次通過FileZilla手動(dòng)上傳修改而沾沾自喜的時(shí)候,我面臨了第一次大量的重構(gòu)工作。。。各種環(huán)境包我都得在服務(wù)器上配一遍,而且坑爹的阿里云主機(jī)的源下載速度還非常的慢,時(shí)不時(shí)突然中斷個(gè)兩三次,而這次重構(gòu)里有些特殊的進(jìn)程涉及到系統(tǒng)配置,在本機(jī)上一次就過的情況卻在服務(wù)器上因?yàn)榉N種原因G掉,不得不又是各種谷歌百度==

? ? ?雖然最終弄完了這一切,但是這個(gè)過程也讓我看到了曾經(jīng)在我眼中較為完美的python所擁有的種種缺點(diǎn),比如較慢的執(zhí)行速度,全局GIL鎖的存在使得多線程不能利用多核,部署方面較為麻煩等等等等。而此時(shí)我又了解到了Go語言,這門看起來是更像是Python3的語言,靜態(tài)特性使得部署簡單,原生支持并發(fā)還非常的高效利用多核,執(zhí)行的性能也非常不錯(cuò),但是它也有它的缺點(diǎn),發(fā)展的時(shí)間太短,社區(qū)不夠龐大和活躍。

? ? ? 由此我算是明白了,在開發(fā)的過程中很難發(fā)現(xiàn)完美符合你需求的工具,一件好的產(chǎn)品真的應(yīng)該是集百家之長,而一名合格的開發(fā)人員也應(yīng)該避免養(yǎng)成所謂的信仰,要耐得住性子經(jīng)常去看看和學(xué)習(xí)別人的長處來使得自己受益匪淺。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容