全棧工程師如何快速構建一個Web應用?
如果你問十個全棧工程師,如何快速構建一個Web應用,我相信你會得到10個不同的答案,因為每一名全棧工程師的技術棧都不盡相同。以設計見長的全棧設計師可能會告訴你,做一個很好的設計,然后套用一個博客系統或基于CMS的內容管理平臺(如Drupal,Jommla,Wordpress)就可以快速建站,而前端全棧工程師可能會建議,用HTML5+JavaScript(AngularJS或React)來寫網站的前端,用Node.js來寫后端服務。我最早是一名Java程序員,后來當了架構師,又自學設計,成為了一名全棧工程師。
因此,我會更偏向于使用Java來構建穩定且便于擴展的后端服務,并用Html5+CSS3+JavaScript,再結合一些流行的前端框架來快速寫出一個Web應用來。當然,這絕對不是唯一或最優秀的技術組合,你需要根據不同的應用場景和你自身的專長來進行合理的選擇。
網站定位與功能設定
網站無論大小都應該有清晰的定位,也就是你希望你的網站做什么?這一點非常重要,我見過很多網站雖然功能很多,但由于缺少明晰的定位而少人問津。而我要寫的這個小站只有一個核心功能,那就是要幫助我的微信訂閱用戶們(大多是學習計算機或設計的在校大學生和那些工作不久希望提升技能的設計師或程序員們)分享那些優秀的開發或設計(學習)資源。
圍繞這個核心功能,便得到了構成這個網站所需要的三個主體功能:
資源發布與展示。(核心功能,用戶可以分享他們的資源,也可以看到其他人的分享) 用戶的第三方登錄(為了快速開發,我省略了不必要的用戶注冊功能,全部采用第三方社交平臺登錄) 用戶反饋功能。(用戶反饋幾乎是我自建的每個網站中都包含的功能,這使我能通過不斷收集用戶的反饋來改進這個平臺。)
至此,已經完成了網站的功能設定,我盡可能省略了一切不必要網站功能,也沒有寫任何文檔,這使我能夠以最快的速度將這個Web應用實現出來。這種方式也是目前增長黑客們所普遍采用的一種做法:快速搭建出一個具備核心功能的應用原型 —— MVP(Most Viable Product 最小化可行產品),來驗證自己的業務模型,然后再根據用戶的需求和反饋來不斷進行改進。當然,隨著項目規模的不斷擴大,以及更多團隊成員的加入,我們可以回過頭來再去補齊那些在前期遺漏的文檔,記住,僅當確認文檔能夠產生價值時,才去編寫它們。
信息架構
這個階段在不同的團隊或項目中會有很多不同的名字,比如概要設計、業務建模等等,而我最喜歡信息架構這個名字,因為在這個階段,我們所要做的就是對不同緯度和粒度的信息進行抽象、規劃、設計,來支撐整個網站的信息體系。我曾經歷過很多不同的信息架構方法論,從最初基于模塊的設計,到后來的領域驅動設計(DDD)、面向服務的設計(SOA),Oracle的基于數據建模驅動的設計,再到最新的微服務架構設計 等等。我想說,這些方法論大多是針對那些大規模應用而言的,你需要了解它們,并有意識地在你的系統設計中去匹配這些優秀的架構和設計思想,這有利于你做出可擴展性良好的系統,從而避免因整個系統復雜度與規模的擴大而導致的大規模重構風險。
對于我們這個小站來說,我們只需要先定義出合適的業務領域和實體模型,這里,我們定義出以下三個業務實體,并為這些實體添加所需要的字段。
User-用戶
Resource-資源
Feedback-用戶反饋。
圍繞著這三個領域模型,我們再定義出三個服務,并為它們增加相應的方法:
UserService-用戶服務 ResourceService-資源服務 FeedbackService-用戶反饋服務。
信息架構階段完成后,我們已經對整個網站有了一個全面的視圖,下一步,我們就可以進入UI設計階段了。
想獲得跟多的web技術可以關注一下成都朗沃教育(www.lovoedu.com),專注it教育培訓
年!