我承認(rèn)自己因?yàn)橄脒@個(gè)話題,今晚失眠了台妆。反正也睡不著翎猛,手機(jī)碼字把思考的東西分享出來(lái)。
項(xiàng)目前期
軟件工程也像建筑工程等傳統(tǒng)意義上的工程項(xiàng)目一樣接剩,有甲方和乙方切厘。甲方通常就是需求方,他們往往只有想法和資本懊缺,不懂設(shè)計(jì)疫稿,更不懂技術(shù)(至少大多數(shù)甲方是這樣)。而開(kāi)發(fā)團(tuán)隊(duì)就是乙方鹃两。甲方在找乙方談項(xiàng)目的時(shí)候遗座,通常帶著一些需求,而這些需求只是他們腦中的一些初級(jí)想法俊扳。作為乙方途蒋,拿到這個(gè)項(xiàng)目之后,第一步要做的事就是整理需求馋记。將需求進(jìn)行細(xì)分号坡,注意這時(shí)候的需求將不再僅僅是甲方提出的那些需求,而是加上了我們自己對(duì)于這個(gè)項(xiàng)目的理解之后得出的需求梯醒。然后將需求按重要程度進(jìn)行分級(jí)宽堆,最終整理出一份完整的需求文檔交給甲方看。甲方看后沒(méi)有問(wèn)題茸习,方可進(jìn)入下一步的實(shí)際開(kāi)發(fā)畜隶。
敏捷開(kāi)發(fā)
敏捷開(kāi)發(fā)是近年很火的一種軟件開(kāi)發(fā)思想。按照我的理解号胚,敏捷開(kāi)發(fā)之所以“敏捷”籽慢,在于兩方面。
1.快
為了能夠快速實(shí)現(xiàn)需求猫胁,敏捷開(kāi)發(fā)要求團(tuán)隊(duì)必須足夠的精簡(jiǎn)箱亿。每個(gè)團(tuán)隊(duì)成員獨(dú)立負(fù)責(zé)自己的工作,對(duì)自己的代碼擁有完全的控制權(quán)杜漠。在我的上一個(gè)項(xiàng)目團(tuán)隊(duì)中极景,我們每個(gè)人按照職能在git下開(kāi)辟了自己的分支察净,每個(gè)人只需要維護(hù)自己的分支驾茴,并在必要的時(shí)候進(jìn)行分支合并。
構(gòu)建合適的軟件架構(gòu)是實(shí)現(xiàn)快速開(kāi)發(fā)的另一大要訣氢卡。拿web開(kāi)發(fā)為例锈至。web分為前端和后臺(tái),在傳統(tǒng)的web開(kāi)發(fā)中译秦,前端負(fù)責(zé)書(shū)寫(xiě)靜態(tài)模板峡捡,然后交由后臺(tái)渲染击碗。這種開(kāi)發(fā)模式的效率其實(shí)不高。因?yàn)楹笈_(tái)拿到靜態(tài)模板后们拙,數(shù)據(jù)渲染過(guò)程中必須要對(duì)HTML進(jìn)行修改稍途,而這也意味著自后臺(tái)渲染開(kāi)始,前端和后臺(tái)的HTML就不再是保持同步了砚婆,這也就涉及到一個(gè)前后端的“聯(lián)調(diào)”械拍。一旦前端修改了代碼,后臺(tái)必須也要跟著進(jìn)行修改装盯,這樣就降低了開(kāi)發(fā)效率坷虑。
然而近年來(lái)層出不窮的前端MVC框架正在拯救這一切,比如Angular埂奈。這類(lèi)框架讓前端也具備數(shù)據(jù)渲染能力迄损,甚至也能處理一些業(yè)務(wù)邏輯。前后端之間通過(guò)JSON進(jìn)行數(shù)據(jù)交換账磺,通過(guò)一系列HTTP方法做數(shù)據(jù)交互芹敌。只需要設(shè)計(jì)好API,前后端從此按照API文檔獨(dú)立工作绑谣。當(dāng)然党窜,Restful API在倡導(dǎo)前后端解耦的潮流下開(kāi)始大行其道。關(guān)于restful api借宵,以后有時(shí)間再單獨(dú)講吧幌衣。
前面講的前端渲染在SEO上有著天然的劣勢(shì),因此不大可能單獨(dú)出現(xiàn)在大型項(xiàng)目中壤玫。大公司(比如阿里)更多的是在前端和后臺(tái)之間加入了一個(gè)中間層豁护。比如支付寶是在前端和Java之間加入了一個(gè)node中間層……
還是先睡了………明天起來(lái)再寫(xiě)……