重構幾乎是每乙個軟體工程都會碰到的事情,每當人們提到「重構」的時候總會這樣描述:使用各種手段重新整理乙個物件設計的過程,目的是為了讓設計更加靈活並且/或者更可重用。你可能有幾個理由來做這件事情,其中效率和可維護性可能是最重要的原因。
關於如何進行重構和進行重構給我們帶來的種種益處,不是本文想要述說的內容,本文是想通過重構來談談,如何才能讓每乙個程式設計師都快樂的工作。
公尺盧蒂諾維奇給中國足球帶來了源自歐洲的先進足球理論,除了這些理論還有乙個很重要的理念,那就是「快樂足球!」。他教導他的中國球員是因快樂而踢足球,更因足球而快樂。同樣我的乙個leader也常常這樣告訴我們,我們每天工作八個小時,如果在這一天最重要的時間裡你過得不快樂,那麼你的工作還有什麼意義呢?
**太容易變壞。**總是趨向於有更大的類、更長的方法、更多的開關語句和更深的條件巢狀。重複**隨處可見,特別是那些初看相似細看又不同的**氾濫於整個系統:條件表示式,迴圈結構、集合列舉….資訊被共享於系統一些關係甚少的組成部分之間,通常,這使得系統中幾乎所有的重要資訊都變成全域性或者重複。你根本不能看到這種**還有什麼良好的設計。(如果有的話,也已經不可辨識了。)
這樣的**難以理解,更不要說對它加以修改。如果你關心系統體系結構、設計,或者是乙個好程式,你的第一反應就是拒絕工作於這樣的**。你會說:"這麼爛的**,讓我修改,還不如重寫。"然而,你不大可能完全重寫已經能夠甚至是正在運作的系統,你不能保證新的系統能夠實現全部的原有功能。更何況,你不是生活在真空,還有更多的投資、交付、競爭壓力。
於是你使用一種quick-and-dirty的方法,如果系統有問題,那麼就直接找到這個問題,便當地修改它。如果要增加乙個新功能,你會從原來的系統中找到一塊相近的**,拷出來,作些修改。對於原來的系統,你想,既然我不能重頭寫過,而且它們已經在運作,讓它去吧。然後,你增加的**變成了下乙個程式設計師咒罵的物件。系統越來越難以理解,維護越來越困難、越來越昂貴。系統變成了乙個十足的大泥球。
不難看出程式設計師的工作有些時候無疑是繁重和枯燥的,如何讓程式設計師擺脫這些不快呢,作為程式設計師出身的我,有乙個很重要的方法,就是對**執行重構。
由於成功地重構之後,提高了開發效率。程式設計師有了時間可以看一看書或者新聞,給自己的朋友回一封email,而不是每天埋頭於無休無止的複製和除錯。維護乙份陌生的**的時候也不再會去詛咒先前的設計人員的糟糕設計,能夠輕鬆的面對日程表上的進度安排。
很多時候設計很難一次作得很好,要保證軟體的活力,注定要經常的修改需求,面對如此多的迭代,作為設計師和程式設計師,必須充分的重視重構給乙個軟體產品帶來的活力。
程式設計師體驗為自己工作的快樂
現在有個構想 做乙個程式設計師專用的im,經過在論壇一番需求蒐集 已經蒐集到的需求,轉換成功能如下 說明 0 上面帶鑰匙的部分為閉源,帶企鵝的為開源。1 上面帶鑰匙的部分 框架 協同通訊基礎套件 dd協同建模 計費系統,由本人完成。2 其餘由愛好者完成 3 一旦計費系統完成,則參與的開發者都可以獲得...
做快樂的程式設計師
1.是王。文件僅隨其後 所以,一定要和文件一致,並可以正確執行。2.測試,測試,測試。3.單元測試非常關鍵 每乙個在單元測試之後發現的bug需要開發人員雙倍的開銷。記住,我寧可增加你的薪水,也不願意把這些錢發給另乙個qa團隊然後你再修正bug。因此,如果你的 滿是bug的話,我不得不把錢付給更多的人...
程式設計師 快樂的職業
long long ago,有兩個職業很吸引我,乙個是像beyond 黑豹這樣的樂隊,再乙個就是幾個人的開發工作室。苦於自己沒有 天賦,遂躋身為it行業的一員,不過這也算是在我的理想職業範疇之內了。這是乙個充滿機遇和奇蹟的行業 工作條件極易滿足,只要有個本本和網路基本就夠了 通過程式實現自己的想法是...