軟體工程中設計與編碼

來源:互聯網
上載者:User

 

GF常說我吃家裡飯操別人的心。

父親常被母親這樣“罵”,這是我家的宿命。

以前都是一個人開發,從有想法,到最後發布到網上。

而且都是一些很小的工具軟體,因此,沒有體會到設計的重要性。

由於喜歡編程,在這方面的文章看得自然多一些,知道有種說法是:軟體工程70%的設計,寫代碼只佔30%。

最近,由於5個人在開發一個小項目,前期只有幾個頁面,由於涉及到後期的東西,為了後期考慮,將業務層寫得很複雜,將現實中的事物基本是一對一的映射成類/集等。

其實幾個頁面,一個人幾下搞定,但是為什麼,我們目前還沒有完成呢?

不是專案經理沒努力,也不是成員們偷懶。

那誰來承擔責任呢?

這不是問題,誰承擔責任,對以後的項目有好處嗎?沒有!

找到導致此情況的原因,並在以後的項目中避免再犯此錯。

設計!!

是設計!

在我僅參加的一次項目會議上,記得已經有人提出了問題,是那種由感而發的問題,感覺到有某個地方有點不正常。

的確,他感覺到了,並提出了--“設計稍顯粗糙”。

現在,我們為此付出代價了,周一應該測試的,可我們周末加2天班,仍然沒有看到曙光!

今天周二了,曙光在哪裡,我仍沒看到。

那這麼久,我們在作了什嗎?

專案經理,是最累的,大家都看得到。

可以說“頭髮都想白了”,這話來形容,太貼切了。

其他4人呢?

在內耗!注意在這裡“內耗”是中性的意思。非貶非褒!

由於沒有細緻的設計階段應該出來的文檔,成員們只有事無具細都找專案經理交流。

你想,換誰,再好的脾氣,再好的涵養也會瘋狂的。

4個人,每人一天問N個問題。N>20。而被問的這個人,不是專門解答問題的,他還在“想白頭髮”的在思考,如何設計。

他此時會是多少進程在同時運行,還不斷有4個無規律的中斷事件進來發出請求。電腦都要死機,何況是人。

在這種情況下,設計出來的東西,當然不算好,分配任務也不會很合適。

於是成員們,會花很多的時間來猜測和尋找,自己需要的資料,從哪個類,用哪個方法取出來。如果有一點不清楚,先自己想(都不忍心再去打擾專案經理),花了N多時間,沒解決,然後,再去找專案經理。

即使這樣,進展也很緩慢。品質也不高。而每個人都覺得很艱難。

正好,這樣惡性迴圈,進展慢,時間緊,“頭髮白”想出來的,業務層設計,注釋和說明就盡量的少了,節省時間嘛。導致,其他人看不明白,又不好意思頻繁地去刺激老大,只有自己想,實在想不出再去刺激老大一下。

如果遇上老大在苦想階段,這交流效果肯定不好,兩個人說了半天,都還不知道對方的意思。

好了,不再嘮叨這沒有詳細設計就開工的負面情況了。

如果!我們來總結一下,加上如果。至少今後,可以按“如果”來作作。我在此只是設想一下,如前所述,我一個人開發慣了。並沒有團隊開發的經驗。如有不對之處,還請指證。

一個項目,不論大小,只要不是一個人開發,就需要每個參與者都對此項目很瞭解,特別是要瞭解“它”是如何設計的。哪個類,哪個方法,是作什麼的。這個是起碼的要求。

但是在缺乏設計文檔的情況下,一邊開發,一邊定義類,介面,而以時間緊為由,沒有寫清楚,這定義的這些東西是作什麼的?怎麼用?

那別人會花更多的時間來猜測這個東西是作什麼的,怎麼用?浪費的時間,比別人自己從資料庫寫到表現層更多。

在設計階段,我們幾個開發人員一起,進行N次討論(或稱會議吧),作什麼呢?

從用例討論到抽象,從介面層的按鈕的放置到資料表的欄位定義。並形成文檔。

文檔細緻到有每個類及類應該有的屬性,方法。

這樣每個方法返回什麼,實現什麼功能,都確定好了。

而且有一個好處是:避免了在始真正寫代碼時,發現這也缺一點,那也不合適,這樣調整起來,會發現,改了這裡一個問題,那裡又出了更多問題。

這樣會將前期的設計搞得面目全非---(套用一句話,真的會“連他媽都不認識”)。

如果設計時,大家一起討論並一起將這些細緻到類和介面及其目標和參數,如果有不妥的地方,會在下一次討論時,大家一起修正。

修本文檔和在實際開發中修正代碼容易不是一點兩點,對吧。

到這裡,我們就可以真正的實現設計70%(大家在一起討論,氣氛很好,不會緊張和覺得打擾到對方)。

在編碼的時,可以從文檔中依葫蘆畫瓢,輕鬆簡單,不會再頻繁地去打擾其他成員的思路。

編碼真就成了一個體力活了,不會常常看到扣破腦袋的情形了。有的只是邊聽音樂,邊優雅的敲擊鍵盤。

於是一個項目就在輕鬆團結的背景下完成了。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.