最近在学习《Flask web开发》这本书,基本上已经跟着书把书中的示例代码都写了一遍。现在感觉对Flask有些入门了,想自己写一个Flask应用,但是又感觉无从下手。
据说好的程序员应该用大于50%的时间做设计,其它时间写代码。目前我能想到的设计项目有:
程序逻辑、功能设计(用户使用时的流程,该实现哪些功能)
数据库模型设计(Models)
表单设计(Forms)
路由设计(Views)
Jinja模版设计(Templates,包括可以复用的模版代码)
前端设计(准备使用bootstrap框架,但仍然要考虑:该在哪个页面引入哪个页面的超链接,比如登录页面中添加一个注册的链接;页面内容的布局)
安全设计(在前端和后端都要对用户的提交做限制,以及对用户权限的检查)
请问各位大神在做Flask web开发的时候思路是怎样的?我列出的这些是否正确,该以一个怎样的顺序进行?
伊谢尔伦2017-04-18 09:17:05
謝邀~
先說一句,誰說的好的程式設計師 50% 的時間花在設計上?扯淡!好的程式設計師 80% 的時間花在重構(UT)上!
我認為題主的問題在於想太多,做太少。
開發一個 Web 程式怎麼做?我選擇 Flask 就是因為開發夠快,自己熟悉一套 Flask 的程式碼組織結構,這樣整個程式碼框架就搭起來了。程式碼的最終目的無非是操作數據,所以把數據(Model)定義好,其他的什麼 view,service 無非就是對數據的 CRUD。
也是 CRUD,為什麼有的人就寫得那麼好?除了經驗之外,重構必不可少,好程式碼都是打磨出來的,這時候是體現工匠精神的時候,然而,在大環境下,能重構1-2次的人不多,能有時間和耐心重構個3-5次的人就更少了,所以好的設計也不多,因為我認為好的設計也是重構出來的。
最後補一句:UT 是重建的基石。
高洛峰2017-04-18 09:17:05
謝邀~
其實像題主這類問題並不適合在這裡提問,畢竟這裡這是一個解決具體的實際問題的社區,而題主疑惑的是一個大的方向。
要問怎麼學習,沒有其他方法,動手做,讀源碼。對於你目前的狀況,規劃太多不動手做也沒用。
建議從一個最簡單的登入功能開始,登入成功後顯示登入使用者資訊。所以這裡會牽涉到資料庫使用者表、表單提交、密碼校驗、登入跳轉等基本操作。當這個功能完成了,再擴展其他功能,也就可以信手拈來了。覺得自己寫前端不好看就用你說的bootstrap前端UI框架,也可以做一個漂亮簡單的小網站。
之後你可以去思考你想要做一個什麼樣的東西,學習產品相關的知識,把它當作自己的一個產品不斷補充完善。慢慢的你可以購買雲端服務域名,部署到伺服器上,這樣你就學到了維運的基礎知識。這時候你會試著去推廣自己的產品,你可以去補充與營運相關的知識。漸漸的你有了用戶,你想著去融資了,你要做BP,深入挖掘商業模式,以後的以後...
太多了,但這些都是想像,你得完成第一步,就是你要先實現一個登入功能,加油吧!我也是從菜鳥一步一步走來,我能理解,也能包容,但我更希望你能夠脫離書本實實在在的寫點東西,當你這樣去做了,或許你就不會有這樣的疑問了。