敏捷開發大家都不陌生,他對文件的態度是偏向於反對,但是也不是說一點文件都沒有。他的說法是 代替文件。
於是就有了這樣的現象:
(各位前輩呀,為後來人著想著想呀!)
於是乎文件就成了乙個包袱乙個累贅,有還不如沒有。
為啥會這樣呢?因為文件和**沒有直接關係,沒有「聯動」關係!
那麼啥是聯動關係呢?我們舉個例子,powerdeszner做資料庫設定的時候,我們不僅可以用這個工具做資料庫文件,而且設計好了之後,還可以直接建立資料庫。當文件有變化的時候,也可以自動修改資料庫。還可以反向工程,就是指定乙個資料庫,然後根據資料庫裡的表和自動,自動生成文件。這就是聯動。
如果您對powerdes不熟悉的話,我在舉乙個codefirst的例子。codefirst就是先寫**設計類,然後用vs裡面的來自動建立資料庫,類結構發生變化了,可以自動的去修改資料庫的表結構。這樣就可以達到**和資料庫的一致性,而且有變化只需要修改乙個地方(**)就可以了,另乙個地方可以自動變更。
這就是我所說的「聯動」。如果所有的文件都可以和**進行這樣的聯動,需求有變化了,先去修改文件,然後**會自動隨之變更,那麼文件就不會成為負擔了!
這就是我所說的「文件式驅動」!
當然在實際中,並不是所有的功能都是先文件在**。而是根據具體的情況來靈活控制的。
這裡在舉乙個webapi的例子。我們開啟vs201*,新建乙個webapi的預設專案,我們會發現有乙個help的目錄。進去一看,哇,api的使用文件!有介面名稱、引數名稱和他們的註解,還有呼叫例項。這還不是最神奇的,更神奇的是,當**修改了之後,help裡面的內容也會隨之更新。這樣寫介面再也不用擔心更新文件的問題了。
這是有**「生成」文件。這個僅僅是對程式設計師來說的,寫**用的文件。除此之外還有給客戶看的文件,等等。如果這些都可以「聯動」起來,做到有需求的時候,只需要改動乙個地方,其他的地方都會隨之更新。這是不是很爽!
可能有人說,我這是痴人說夢,該醒醒了,別浪費大家寶貴的時間。這個當然不是無稽之談,今天也不是愚人節。下面還是用例子說話。
公司以前用asp.net mvc做專案。後來發現開發速度跟不上,於是找了乙個國外的無後端的東東 ,叫做backendless。他的思路就是,凡是伺服器做的事情(ui除外),都可以不用寫**了,都由他來包辦。backendless提供了乙個平台,在這個平台上面配置各種服務,配置完了前台就可以直接呼叫。這個前台包括:web、手機web、安卓、蘋果、flash(flex)、等,並且可以生成對應的呼叫**。我們寫點前台**就ok了。
每乙個環節都有人在做「聯動」的事情。只是從整個專案的角度來看,把各個環節用一條線,從始至終的串聯起來,讓各個環節可以「聯動」。目前還沒有發現做這種事情的人(自己除外)。
再舉乙個蓋大樓的例子。要蓋樓首先要乙個圖紙,然後請建築公司來按照圖紙把大樓蓋出來。蓋樓之前圖紙可以修改,蓋樓的時候會按照最後修改後的圖紙來施工。但是樓蓋好了,再去改**紙,大樓就不會受到影響了。大樓改好之後,圖紙和樓失去了聯動,圖紙不會去影響大樓了,因為樓已經蓋好了。
再來看看導航軟體,我們輸入出發地和目的地,然後導航就會規劃一條路線出來,我們按照這個路線開車,開著開著發現前方路口堵車,怎麼辦?重新規劃路線繞過堵車點。然後我們按照重新規劃好的路線繼續行駛。路線實時指導我們的行車方向,路線變了,我們的車就跟著變。這樣就是實時聯動。
說了這麼多,大家可能都蒙登了,我到底要說啥?還是來張圖吧。
總之呢,就是不能讓文件孤單單的存在,要讓文件和**和頁面互動起來。需求有變化了,首先想到的是改文件,然後對應的地方會隨之自動更新,不需要修改**!
最後說一下啥是「超敏捷」,前面說了敏捷開發,那麼超敏捷開發呢,顧名思義說的就是開發速度會更快。
ps:好久沒有寫部落格了。沉寂了一段時間,好好的思考了一陣子,現在是新的開始,重新打造!後續會更精彩。
敏捷式開發
人與人之間的互動是複雜的,並且其效果從來都是難以預期的,但卻是工作中最重要的方面。敏捷軟體開發宣言 n 個體和互動 勝過 過程和工具 n 可以工作的軟體 勝過 面面俱到的文件 n 客戶合作 勝過 合同談判 n 響應變化 勝過 遵循計畫 雖然右項也有價值,但是我們認為左項具有更大的價值。敏捷宣言遵循的...
敏捷開發之設計文件
對於設計文件的一點體會就是,明確需求 精簡語言 並繪 相輔 易於溝通。下文援引 在產品研發過程中經常需要編寫很多文件,例如 需求文件 設計文件 api文件 驗收文件等等。團隊成員要花費很多精力去維護眾多的文件,甚至有 兄弟,我替你寫 你替我寫文件 的無奈。敏捷開發宣言 個體和互動 勝於 流程和工具 ...
敏捷開發之設計文件
對於設計文件的一點體會就是,明確需求 精簡語言 並繪 相輔 易於溝通。下文援引 在產品研發過程中經常需要編寫很多文件,例如 需求文件 設計文件 api文件 驗收文件等等。團隊成員要花費很多精力去維護眾多的文件,甚至有 兄弟,我替你寫 你替我寫文件 的無奈。敏捷開發宣言 個體和互動 勝於 流程和工具 ...