作者woogee (woogee)
看板Python
標題[問題] 請教Python程式結構的書&一個小雜問
時間Wed Feb 14 11:53:20 2018
標題下得不太精確,因為我也不確定這是否屬於結構或其他方面的問題,還麻煩指點
各位年薪千萬的工程師大大們好,小弟工作經歷4年的菜鳥工程師
小弟從大概高中就在接小案子,到目前出社會四年,摸程式時間還算久
從以前武器抄了就上(程式碼隨便塞隨便寫能動就好XD)到目前知道戰略的重要性
目前程度就是在大部分可以Google、Stackoverflow完成的複製貼上工程師等級
手刻簡易的NN,用一些開源像是keras、tf去獨立完成專案、規劃簡易LB的這個階段
大致上關於程式的基本都還算過得去,但最近忽然有一種無力感與迷惘(撞牆期?)
主要問題像是:
開一個專案,到底整個程式的結構怎麼設計才可以讓這整個專案方便維護、易於擴充?
舉個例子,像是我想要開一個flask Restful購物網站後端,進入點是server.py
這個server.py就是包含所有flask、Request、Response操作等等
然後寫了很多module包含各種購物車的操作、會員登入登出等等
我目前的做法通常是server.py->middleware.py
再由middleware.py去import每個module執行,但似乎仍然會有一些問題
像是如果有config檔紀錄db位置、flask的參數
這種時候我就會變得不知道該怎麼做比較好
從flask讀取config,再將config資料傳入middleware再傳入給各自的module嗎?
還是每個module各自去讀取config比較好?
我知道這個例子很爛,但是應該可以理解就是關於這種比較偏"結構"而非功能的問題
我常常因為這種問題一直思考卻沒有答案
通常要到真的遇到某些狀況時才會發現「啊!要是當初這樣設計就好了!」
也試著去看各種開源的程式碼,但遇到新的問題時又會卡在那不知道怎麼樣做比較好
想找書,又不知道從哪個方面著手
請問各位大大,關於這種問題到底有沒有一套心法、方向或是書籍可以參考呢?
另外偷渡一些其他小雜問
像是研究別人開源的程式和研究該程式原理大家都怎麼分配時間?
以及如何決定是否要針對這個功能鑽研下去?像是NN或是Viterbi這些東西
看很多文章說好的工程師要會原理
但大多時候研究其他人的開源怎麼使用,就已花費不少時間
如果自己真正去刻,到實際工作上能使用也必須要投入大量的時間看公式、修正、最佳化
很常遇到看完paper、研究完,刻到一半後,就已經有人開源了,還寫得比自己好...
就會覺得「啊...我又浪費了三個月..」覺得非常心灰意冷..
以上,還麻煩各位大大給一些建言,謝謝!
--
溫拿有數位女友
魯蛇有數位女友
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.171.166.25
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1518580408.A.D26.html
※ 編輯: woogee (1.171.166.25), 02/14/2018 11:55:15
→ WunoW: 因為你只有一個人,當然慢別人好幾步,除非你神人等級 02/14 13:36
→ WunoW: 相同的概念同時期在世界上也不會只有一個 02/14 13:38
→ WunoW: 你能想到別人也能想到啊,你就知道得諾貝爾獎有多不容易 XD 02/14 13:40
→ WunoW: "這東西全世界只有我發現"的機率是零 02/14 13:40
→ froce: 我會說,像這種比較大的案子請用 Django,至少管理和結構 02/15 00:56
→ froce: 很制式,不用多費多少心力去搞架構。 02/15 00:56
→ froce: 用 flask 不是不可以,但是大案子你要整理起來,就必須發展 02/15 00:58
→ froce: 出自己一套邏輯。 02/15 00:58
→ froce: 然後多去看一些設計風格的書,像函數式編程我只學了點皮毛 02/15 00:59
→ froce: ,但我覺得收穫很大。 02/15 00:59
→ froce: 會原理和用別人套件是不衝突的,請問你會寫 http server 你 02/15 01:01
→ froce: 就一定要用自己刻的嗎? 02/15 01:01
→ froce: 套件管理這麼方便就是鼓勵你不要重複造車輪,但是你不知道 02/15 01:02
→ froce: 原理,你那知道車輪要用在哪裡? 02/15 01:02