如果只給你幾萬元搞互聯(lián)網(wǎng)創(chuàng)業(yè),技術(shù)層面的事兒,你會怎么做?
最近突然又想起這個話題,校園里一些創(chuàng)業(yè)團隊太注重公關(guān),各種天方夜譚把業(yè)務(wù)單拿下來之后技術(shù)團隊多是實現(xiàn)不了,也沒有明確的需求文檔和統(tǒng)一的開發(fā)方式和系統(tǒng)架構(gòu)。每次想到這些問題我都在思考,如果是我搞初創(chuàng)企業(yè)的技術(shù)棧,我會怎么做?下面談?wù)剛€人對比的一些看法。
首先web相關(guān)的項目,技術(shù)層面上我們主要討論開發(fā)和部署,為了節(jié)約成本并且跟上時代潮流,我建議開發(fā)開發(fā)部署一體化方案DevOps。這種持續(xù)部署方案對開發(fā)人員技術(shù)要求加大,但是可以大大減少部署和運營時不同類型員工操作導(dǎo)致的錯誤。同時,借助現(xiàn)如今的Git和自動化方案,持續(xù)部署可以和開發(fā),測試更完美的搭配。美中不足的一點是,持續(xù)集成方案中對于數(shù)據(jù)庫結(jié)構(gòu)的修改,暫時我沒有找到較好的方案。
在這樣的模式下,讓能力出眾的項目經(jīng)理帶領(lǐng)四位員工: 兩位Vue開發(fā),兩位Laravel開發(fā),前后端兩位必須各有一名公司員工能力較好,另一名可選遠程工作降低成本。在這樣分工明顯的前后端分離架構(gòu)中,由項目經(jīng)理給出系統(tǒng)相關(guān)架構(gòu)圖和開發(fā)說明文檔,數(shù)據(jù)庫ER圖。使用一款團隊合作工具和接口自動編寫測試工具如Teambition,Swagger。
前后端Vue+Laravel這套架構(gòu)中,前端使用vue-cli腳手架工具,配合axios,route,iview,vuex等全家桶套件開發(fā)。后端使用composer組件庫JWT做授權(quán)認證,repo存儲庫分層模式,靜態(tài)資源方第三方CDN服務(wù)器上,后端重視分層,依賴注入等思想和數(shù)據(jù)庫操作時對業(yè)務(wù)的判斷邏輯。在Laravel項目中,我建議編寫phpunit自動化測試用例,方便后期迭代時候?qū)λ薪涌谶M行可行性測試。
由于上面說過我們要使用DevOps方案的開發(fā)模式。也就是說在四位員工編碼之前,項目經(jīng)理至少需要將初始化項目代碼部署到托管網(wǎng)站,并在服務(wù)器端寫好相應(yīng)的文件變更響應(yīng)代碼,方便即使pull最新代碼庫,此處我們應(yīng)該引入Docker相關(guān)的容器技術(shù)了。并拉取四位員工的貢獻者賬戶分配相應(yīng)權(quán)限,同時漸進式地將后續(xù)使用的組件庫引入進來,修改項目目錄結(jié)構(gòu)。
另外在后端開發(fā)中,本地開發(fā)環(huán)境下可能要時常dump一下composer相關(guān)的配置信息。同樣的,后端的測試數(shù)據(jù)也可能需要重復(fù)測試,這時候我們可以利用流程控制語句配合Laravel的Migration,Seeder搞定。我提倡開源和技術(shù)自由,反對出于安全性而使用SQL文件導(dǎo)入數(shù)據(jù)庫結(jié)構(gòu)的做法。后端其實還有很多凌亂的東西,基于composer組件庫可以方便的構(gòu)建很多優(yōu)秀項目,我也在學(xué)習(xí)的道路上。