很多專案推行敏捷開發很長一段時間,仍然弄不清楚瀑布和敏捷到底有什麼區別,這裡以炒公尺粉為例,講解兩者的區別。
瀑布:就是自己在家裡炒公尺粉
家裡炒公尺粉,一般是按照以下流程:先準備好足量的公尺粉、胡蘿蔔、蔥、白菜;然後切胡蘿蔔絲、白菜絲、蔥,同時用開水泡公尺粉;接著下油鍋,胡蘿蔔絲、白菜絲等一起翻炒,再下泡開的公尺粉翻炒;最後一起出鍋,不管好吃不好吃,全家人一起吃。
敏捷:公尺粉店炒公尺粉
假設是新開的桂林公尺粉店,有客人來點了炒公尺粉,你會先滿足這個先到的客人,先炒乙個人的量,接著下一位客人來了,再炒乙份,有多少客人就炒多少份,而不是像家裡炒公尺粉一樣,全部一鍋下去炒。
兩者區別:
1、家裡炒公尺粉吃的量是確定的,公尺粉店要炒多少公尺粉不確定:前者家裡就三五個人,要多少材料都是算好的,不會有變化;公尺粉店則不一樣,有多少客戶是無法提前預估的,只能來乙個客人就炒乙份,快速響應市場變化。就像專案需求一樣,充滿變數,只能前面迭代先完成已經確定好的需求,後面確定或插入的需求排在後面迭代。
2、家裡炒公尺粉直到出鍋才可交付,而公尺粉店每乙份公尺粉都是可交付的,便於快速獲得反饋:前者一鍋就炒好,看起來效率很高,但是炒出來好不好吃,只有出鍋後才知道,即使炒的時候你會嚐嚐,但最終能不能被家裡其他成員接受,還得他們吃了才知道;而公尺粉店炒的公尺粉,一次炒乙份,當第乙個客人吃了之後一般會給出評價,即使沒有評價你觀察是否有剩餘也可以判斷,這樣第二份就可以改進,越往後面炒的越好吃,就像專案開發,越往後面的迭代團隊磨合好了,迭代速率往往有較大提公升。
以豆瓣網為例,講解restful api設計規範
目前比較成熟的一套網際網路應用程式的api設計理論應該盡量將api部署在專用網域名稱之下 v2 user 1000001?apikey 應該將api的版本號放入url v2 user 1000001?apikey 在restful架構中,每個 代表一種資源 resource 所以 中不能有動詞,只能...
程式設計正規化 以炒菜為例,講解各種程式設計正規化
過程式程式設計 生活的經驗告訴我們以下的物理現實,事情是按照時間的順序乙個步驟接乙個步驟的發展。程式設計裡有乙個正規化就模擬了這樣的經驗,就是過程式程式設計。如果現在有一些剛從超市買回來的菜,要吃進肚子,按照過程式程式設計,可以如下表示 洗 菜 切 菜 炒 菜 吃 菜 以上的 中,括號外為動詞,括號...
以Chef和Ansible為例快速入門伺服器配置
這篇文章討論了如何在我們的環境中安裝和配置軟體,這個任務通常被稱為伺服器配置 server provisioning 在開始介紹現代化的工具之前,我們來看看最基本且經過實戰考驗的伺服器配置工具 shell指令碼。在chef ansible或puppet出現之前,很多運營團隊使用bash來配置伺服器 ...