作者:
woogee (woogee)
2018-02-14 11:53:20標題下得不太精確,因為我也不確定這是否屬於結構或其他方面的問題,還麻煩指點
各位年薪千萬的工程師大大們好,小弟工作經歷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、研究完,刻到一半後,就已經有人開源了,還寫得比自己好...
就會覺得「啊...我又浪費了三個月..」覺得非常心灰意冷..
以上,還麻煩各位大大給一些建言,謝謝!
作者:
WunoW (WunoW)
2018-02-14 13:36:00因為你只有一個人,當然慢別人好幾步,除非你神人等級相同的概念同時期在世界上也不會只有一個你能想到別人也能想到啊,你就知道得諾貝爾獎有多不容易 XD"這東西全世界只有我發現"的機率是零
作者:
froce (froce)
2018-02-15 00:56:00我會說,像這種比較大的案子請用 Django,至少管理和結構很制式,不用多費多少心力去搞架構。用 flask 不是不可以,但是大案子你要整理起來,就必須發展出自己一套邏輯。然後多去看一些設計風格的書,像函數式編程我只學了點皮毛,但我覺得收穫很大。會原理和用別人套件是不衝突的,請問你會寫 http server 你就一定要用自己刻的嗎?套件管理這麼方便就是鼓勵你不要重複造車輪,但是你不知道原理,你那知道車輪要用在哪裡?
作者: ar54971 2018-03-06 03:41:00
作者: galeondx 2018-03-06 04:19:00