本來(lái)是想寫最近看到的大型網(wǎng)站的發(fā)展演化之路,寫著寫著就跑偏了,后來(lái)就索性抹掉,重新動(dòng)筆寫了這篇。
作為一介碼農(nóng),我想我是幸運(yùn)的,從實(shí)習(xí)至今,我大致看到并經(jīng)歷過(guò)不同規(guī)模的網(wǎng)站或產(chǎn)品的開發(fā),小到兩個(gè)人就能撐起一個(gè)網(wǎng)站,大到需要和來(lái)自不同國(guó)家的團(tuán)隊(duì)一起合作完成產(chǎn)品開發(fā)。產(chǎn)品質(zhì)量有好有壞,但是開發(fā)模式很難評(píng)出最優(yōu),只能說(shuō)適合的就是最好的。
小型項(xiàng)目
開發(fā)規(guī)模
2人左右(其實(shí)一個(gè)人也可以)
需求
需求確定流程較為簡(jiǎn)單。因?yàn)槎际怯靡惶卓蚣茏鰱|西,用戶群體單一,功能變化不多。所以在項(xiàng)目初期和用戶談好,沒(méi)有特殊需求,基本就能按照原有的邏輯完成開發(fā)。
開發(fā)
因?yàn)殚_發(fā)模式和流程相對(duì)固定,所以不太重視寫文檔。即使有文檔,也可能是存在張三的c盤,張三裝個(gè)系統(tǒng),文檔就沒(méi)了,張三離職了,文檔也沒(méi)了,張三自己忘記放哪了,文檔還是沒(méi)了。但是只要項(xiàng)目組老大不走或者自己在項(xiàng)目中干過(guò)一段時(shí)間,對(duì)于項(xiàng)目的邏輯也就比較清楚。
敲代碼之前,比較重視的是表結(jié)構(gòu)設(shè)計(jì),因?yàn)楹鸵酝捻?xiàng)目業(yè)務(wù)流程相似,所以側(cè)重點(diǎn)放在表結(jié)構(gòu)上面。一旦設(shè)計(jì)好表,基本就可以大刀闊斧的編寫代碼了。
測(cè)試
測(cè)試人員就是開發(fā)人員,開發(fā)人員就是測(cè)試人員。自己寫過(guò)的代碼自己做主,測(cè)不測(cè)由你,出事了有鍋就由不得你了,你得來(lái)背。但是因?yàn)闃I(yè)務(wù)流程比較固定,所以出問(wèn)題的概率較小,這樣的小型項(xiàng)目,一般用戶也不是很多,相對(duì)來(lái)說(shuō)即使出了問(wèn)題也不是十萬(wàn)火急,有比較充足的時(shí)間讓你修復(fù)。
部署
結(jié)合上面再補(bǔ)充下,測(cè)試人員即開發(fā)人員,開發(fā)人員即部署人員。你只需要拷貝出你修復(fù)bug后的代碼(class文件或者h(yuǎn)tml又或是js文件)放到服務(wù)器上(也就是一臺(tái)電腦),然后重啟tomcat。OK,那么你就完成了部署。
中型項(xiàng)目
開發(fā)規(guī)模
5~10人
根據(jù)公司的項(xiàng)目管理制度來(lái)決定。有的是一個(gè)大組共同開發(fā),也有是將大組在拆分為小組,分別負(fù)責(zé)相應(yīng)模塊的開發(fā)。
需求
需求不再是僅僅由開發(fā)人員來(lái)對(duì)接,一般會(huì)有商務(wù)法務(wù)等角色介入,因?yàn)橐粋€(gè)項(xiàng)目最終決定是否做,需要從各個(gè)角度來(lái)考量。不再像小型公司的小型項(xiàng)目都是千篇一律,中型項(xiàng)目具有一定的靈活性,特殊性和擴(kuò)展性。
經(jīng)過(guò)商務(wù)等需求的初步確定,需要內(nèi)部溝通產(chǎn)品經(jīng)理和開發(fā)團(tuán)隊(duì),對(duì)項(xiàng)目的可行性以及項(xiàng)目周期完成評(píng)估。最終開發(fā)團(tuán)隊(duì)將任務(wù)拆分為可執(zhí)行的小任務(wù)進(jìn)行開發(fā)。
開發(fā)
鑒于中型項(xiàng)目一般擁有相對(duì)較大的用戶量以及異常激烈的競(jìng)爭(zhēng)環(huán)境,所以開發(fā)新功能和業(yè)務(wù)功能增強(qiáng)較多。開發(fā)前要考慮的問(wèn)題比較多,比如對(duì)老接口的向后兼容,對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)對(duì)緩存的影響等等。所以,文檔顯得比較重要,包括接口文檔和設(shè)計(jì)文檔。開發(fā)人員會(huì)先設(shè)計(jì)文檔,其中包括業(yè)務(wù)流程設(shè)計(jì),數(shù)據(jù)庫(kù)設(shè)計(jì),接口設(shè)計(jì)和對(duì)接等。之后會(huì)按照設(shè)計(jì)文檔與多人完成功能開發(fā)。
測(cè)試
一般團(tuán)隊(duì)會(huì)配備測(cè)試,但是數(shù)量不多,仍以開發(fā)為主,開發(fā)人員往往兼職測(cè)試人員。開發(fā)人員能夠自己完成單元測(cè)試,也可以和其他開發(fā)人員完成集成測(cè)試,還有專業(yè)測(cè)試人員的補(bǔ)充測(cè)試。當(dāng)然,這個(gè)測(cè)試流程仍然不規(guī)范,但是快節(jié)奏的開發(fā)和迭代很少能給出充裕的測(cè)試時(shí)間,尤其是互聯(lián)網(wǎng)企業(yè)。
部署
部署細(xì)節(jié)不詳。但是起碼從這里就可以看出比小型項(xiàng)目要謹(jǐn)慎和專業(yè)。作為開發(fā)人員的我們不再參與部署事宜,我們的最后一道工序就是上線,將寫好或者改好的代碼上線,之后有相應(yīng)專業(yè)人士配域名和分配主機(jī)等等操作最終將項(xiàng)目部署到云端讓用戶可以訪問(wèn)網(wǎng)站或者使用產(chǎn)品。
大型項(xiàng)目
開發(fā)規(guī)模
10人以上(人數(shù)也不是評(píng)價(jià)項(xiàng)目規(guī)模的決