讀《敏捷開發必要技巧》 (1)

2021-05-23 01:14:53 字數 2036 閱讀 9483

不知道這算不算一本好書,但對我這個出入"it江湖"的小白。這些技巧非常的受教。當然,在看完了這本書後,與之前自己瀏覽過的那本經典之作《重構—改善既有的**設計》有些地方存在吻合的。但是,這本書更令人如沐春風,為什麼?我們程式設計師最喜歡的就是與原始碼。不管怎樣,都會吼一聲"翠花,上原始碼"。所以說,這本書的例子,更令我快速掌握其介紹的技巧(遺憾的是自己也沒完整的做過大部分練習,感覺很不爽)。不廢話了,免得忘了自己要做什麼!寫點讀書的筆記唄!

書中的技巧都是針對現實程式設計中出現的實際問題而引出的,但是都需要我們在獲得此技巧時,也要注意一定的使用場合。

移除重複**

如何發現重複**?相信每個程式設計師都曉得咯!想想曾經寫的dao那些**,你就寒心了。重複**多吧!個人感覺,邏輯結構相同的,有一樣的處理結果,在兩處地方以上出現等等,都需要的是自己如何判斷罷了,沒有書面的答案。

為什麼要移除重複**?我們不要指望**行數越多,就能帶來更大的優越感(曾經,初學程式設計時,我就以寫更長的程式為目的,能寫出來了,頗為自豪,但是在工作中,這點不可取)。why?如果在某個n多地方出現的一樣功能的程式。那麼,你每一次的修改,都是一場噩夢!慢慢享受吧。如今的江湖,需要更精練的**。

將注釋轉換為**

在軟體開發中,最讓我們受教的就是,在編碼中要加上適當的注釋,為的就是日後的**維護,不用猜字謎一樣猜某段**的功能了,畢竟你都加上注釋,是吧!

但是,親愛的,你喜歡這樣的**嗎?你會暗地裡罵寫這**的人嗎?我想我知道你心裡所想(>_

在這裡,我們能做什麼呢?我也曾記得應該給乙個變數起乙個有意義的名稱?為的    就是讓人一眼就知道這個變數所代表的意義!而不是加上一段注釋。如此可以避免你在    前幾行能記住這個變數的含義,但是隔了段時間或寫到n行後,我想你就忘了那個變    量兄弟究竟是幹嘛的了。

有時候要捨得刪除額外的注釋?注釋具有讓人更容易的理解**的功能;而問題也    在於,因為常常沒有吧**寫清楚,所以才會找到注釋這個工具捷徑,好讓程式更讓人    容易理解。也往往讓我們忽略了好好的去組織**結構。長年累月,留下:本身 就不    清晰的**,加上一些不正確的注釋。

書中給的建議:每一處注釋都是改進**的好機會

針對上面的**,可以利用【注釋轉換為變數名】技法,解決。除了此法,還有以下列    錶可供君參考:

引數的注釋,轉化為引數名(其實剛剛那一條)

將注釋轉換為方法的一部分

刪掉沒用的注釋(不要因為可憐自己的勞動成果,而留下沒用的)

可用方法名來表達注釋的意思(利用小方法,細化掉大方法體;讓**都處在自己所需    表達的意義的有效範圍內)

去除**異味

出現**異味的原因是**的不穩定。在編寫**前,如何確定**是否穩定?一種有效而被動的方法是:當你第三次修改**時,就考慮這段**是不穩定的,是有異味的!而普遍的**異味是,類別碼和switch表示式。以下提供些異味列表:

太多的注釋

類別**

switch if-then-else-if

想給乙個變數 ,方法或者類名取個好名字時,也怎麼也取不好

用類似***util, ***manager, ***controller 和其他的一些命

在變數,方法或類名中使用這些單詞"and"、"or"等等

一些例項中的變數有時有用,有時沒用

乙個方法的**太多,或者說方法太長

乙個類的**太多,或者說類太長

兩個類都引用了彼此(相互依賴)

乙個方法有太多引數

對於普遍的類別碼移除,常見的兩種方法:

1.    用基於統一父類的不同子類代替不同的類別

2.    用乙個類的不同物件代替不同的類別。    

對於存在的"**異味",更多的是要我們在發生變更時,需要修改類的內部,而不是    通過擴充套件或其他不動原來的類的方法進行變更。如此的**結構是有問題的,因為沒有    考慮到日後的**變更所帶來的額外工作量。也不符合【開閉原則】。在編碼中應該要    多多注意到這一基本原則,避免自己的**在日後的維護中,走向深淵!

讀《敏捷軟體開發》大綱

agile software development principles,patterns and practices robert c.martin 本書獲2003年jolt大獎,名副其實的名人名著,值得反覆閱讀體會。書的英文副標題 principles,patterns and practic...

敏捷開發原則(1)

1.我們最優先要做的是通過盡早地 持續地交付有價值的軟體來使客戶滿意。2.我們歡迎需求的變化,即使到了開發後期。敏捷過程能夠駕馭變化,為客戶創造競爭優勢。3.經常交付可以工作的軟體 從幾個星期到 幾個月,時間間隔越短越好。4.在整個專案開發期間,業務人員和開發人員必須朝夕工作在一起。5.圍繞鬥志昂揚...

關於scrum敏捷開發(1)

scrum是一種迭代式增量軟體開發過程,通常用於敏捷軟體開發。scrum在英語的意思是橄欖球裡的爭球 雖然scrum是為管理軟體開發專案而開發的,它同樣可以用於執行軟體維護團隊,或者作為計畫管理方法 scrum定義了許多角色,根據豬和雞的笑話分為兩組,豬和雞 一天,一頭豬和乙隻雞在路上散步,雞看了一...