楼主:
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