在完成軟工實踐第一次做業以後,老師在個人博客中評論佈置了一個任務,用一週的時間通讀構建之法,而後提十個問題。原本我還擔憂這本書會不會很枯燥,能不能按時間看完,沒想到這本書看起來妙不可言,讓我欲罷不能,裏面有不少的小故事和案例不只生動有趣,還包含了軟件工程這門學科的一些專業知識。看完以後收穫良多。如下是其中的一個十分有趣的片斷:
python
en,爭取作一隻豬或一隻雞,而不是作一個鸚鵡,O(∩_∩)O。git
歡迎使用並提意見,由於老闆在外出差,如今暫停了業務上的推廣,可是2.0版本已經在開發日程上了。
程序員
我預想若是這個項目是多人開發,可能還會出現更多的問題,例如代碼合併上、設計和測試上、後續維護上。單獨開發避免了這些問題,卻也給我帶來了更大的工做量。(在這邊替我老闆發個招人廣告,會微信小程序或者python django框架的,有興趣一塊兒接着作這個項目的,歡迎聯繫我O(∩_∩)O,讓我一塊兒通力合做,搭建出一個好的兼職平臺,服務那些勤工儉學的小夥伴們,讓他們沒必要爲了兼職的質量而擔心)數據庫
軟件 = 程序 + 軟件工程, 在以前的課程中咱們學習了怎麼寫程序,而並無教咱們怎麼作工程,曾經我忽視了軟件工程(這不就是合做寫程序嗎?),其實並非這麼簡單,其中的區別就像你們一塊兒搬磚和你們一塊兒蓋大廈的區別這麼大...django
雖然把構建之法看了一遍,可是時間倉促,雖然有作了一些筆記,可是仍是以爲有些囫圇吞棗,其中提到的一些思想和方法還須要在之後的實踐中進一步熟悉和掌握。這是一本須要一有時間就拿來翻翻看看、仔細揣摩的書。
小程序
一些在看書早期中記錄的問題,都在後面的閱讀中獲得瞭解答。
例如: 開發的過程當中,學習到了新的技術可以促進開發,該怎麼辦呢? 這個問題在第十五章給瞭解答:微信小程序
15.1.4 招數:設計變動(Design Change Request)微信
通過Alpha/Beta階段,移山團隊收到了很多用戶的反饋,有些是意料之中的,有些是意料以外的。你們都看到,原來的設計也有很多要改進的地方。有了用戶反饋,你們也可以取得比較一致的意見。另外,你們也有了不少新想法。一時間,衆說紛紜,不少人都嚷嚷着——DCR,DCR!網絡
重寫或重構app
小飛:咱們的某某模塊真是太爛了,我以爲必須重寫,並且如今又有了新的技術叫「我佩服」(WPF)[或插入任一最近時髦的技術],它能作很酷的效果,爲何不呢?
二柱:咱們先要看看,原來爛到什麼程度,如今是否能完成功能?你所說的問題有多嚴重?是功能不能實現?或者界面有問題?或者不能擴展(例如:不能支持更多用戶)?
大栓:另外,是重構,仍是重寫?重構——在儘可能保持原有界面的基礎上優化部分代碼。重寫——從新實現原有功能,同時,要分清是所有重寫原有功能,仍是偷偷加上許多新的功能(Feature Sneak)?
小飛:我們找領導去,超總,看看我新寫的功能。
阿超:你不是在修復這個模塊的Bug麼?怎麼開始寫新的功能了?
小飛:對,不過你是否是以爲我加的這個新功能很酷,嗯……如今是有點慢,可是若是數據庫再作一些對應的修改,好比增長緩衝之類的,那就更好了。
阿超:用戶提到了這個功能麼?這和咱們項目的遠景有什麼關係?數據庫修改後,原來的用戶數據要如何遷移到新的Schema下面?
小飛:嗯,可是用戶若是看到了,就會喜歡的。
阿超:不少程序員有這樣的衝動,在作修改的同時,想到本身還能作更多的事,有一個「東西」一直想作,可是提出幾回都沒人重視,那如今有機會,就「加進去」算了。或者還有不少靈機一動的想法。打個比方——原本是要修廚房頂上一個有時漏水的水管,結果修理工來了,修好了水管,同時靈機一動,加了一個帶淋浴的豪華衛生間。
小飛:但這畢竟是新的想法,我覺得你會喜歡的。
阿超:記住項目的當前階段是一個阻尼振盪的過程,要收斂和穩定。等到下一個版本開始的時候再進行發散的思考吧。若是你以爲目前的設計有問題,咱們要用DCR來管理。
怎麼作DCR?阿超給你們列出了DCR的要點:
如何提出DCR?
1)在提交一個DCR時,選用任務做爲工做件類型,並在標題中標明DCR。
2)在DCR的描述文字中,說明:
a. 問題在哪裏,問題的影響;
b. 若是不修改,會有什麼後果?
c. 幾種修改方案,各類方案的優缺點和成本。