程式設計師應知 破窗與童子軍軍規

2022-07-04 22:48:12 字數 1868 閱讀 4331

首先讓我來解釋一下這兩個詞,儘管看起來二者之間沒有什麼必然聯絡。

破窗說的是,乙個小區,本來乾淨整潔,沒有犯罪事件,大家安居樂業。然而,忽然有一天,乙個窗子被打破了,但是沒有人管。接下來,不好的事情接連發生,先是有人亂扔垃圾,接下來是隨地大小便,整個環境變得髒亂差,隨之而來的就是打架鬥毆事件的出現,最終導致出現犯罪的事件。也就是說,一件很小壞事兒,如果不加控制的話,也會演變成嚴重的事件。

童子軍軍規

我是從bob大叔(robert c martin)那裡知道的,童子軍軍規中有條規定,當你離開乙個地方的時候,要讓它比你來的時候更整潔乾淨。這樣的話,童子軍紮營的地方會越來越乾淨。

大家應該看出二者之間的關係了,其實很簡單,前者意味著惡性迴圈,而後者意味著良性迴圈

在我們的開發過程中,同樣存在著這樣的問題。

我在工作的時候,經常會修改別人寫的程式,其實這也是作為程式設計師經常要做的一件事兒。而由於最近一年多修改的都是國內的軟體公司開發的程式,大家也知道在國內開發的過程中,有很多時候,為了趕進度,對於**規範的遵守會很差,所以經常會遇到比較亂的程式**,現象主要體現在這樣幾點上:

1、最過分的一點,**沒有進行合理的縮排。這種**一看就是複製貼上過來的。

2、不合理的命名

3、過長的過程和函式

4、魔法數字,過多的標識弄的人暈頭轉向。

在無意識的情況下,處理這種**的方式也和我的心情有關,呵呵。

如果心情很差的時候,可能是由於業務部門乙個勁兒地催促,或者休息不好等等原因,我可能也會不管不顧,也去複製貼上一堆**,然後只要能夠解決問題就好,在頁面上如果可以僥倖測試通過,就提交**,萬事大吉。

如果心情平靜的時候,這時應該屬於平靜的階段,我會注意自己的**規範,比方說格外編寫乙個過程或函式,在需要的地方簡單呼叫,而不是再加長原來的**。對於自己的**縮排,也保證乙個tab或者四個空格的空間。命名必須有意義,且表示的是正確的意思等等。但是不會管原來的**,讓它們繼續亂著去吧,後來人會比較之前的**和後來的**的,哈哈。我可是在自己的**附近籤上自己的名字了。

如果心情很好的時候,我會清理原來的**,在修改**之前先把所有不符合規範的地方修改一遍,比方說縮排;比方說命名。然後將**重構,把長過程修改為維護性更好的短過程。一切完畢之後,再去修改**,真的是心情越來越愉快,最後修改問題花費的時間也會很少。

回想一下自己的三種情況,拋去中間的不算,第一種正好符合的是破窗理論,而第三種符合的則是童子軍軍規。

其實,有些時候真的不能僅僅憑藉心情來做事,如何來對待原本可能會有些問題的**,也是作為程式設計師的一種素質吧。試想一下,如果團隊中的每個人都按照破窗理論的形式做事,那麼用不了多久,系統就會變得不可維護,這恰恰是陷入了惡性迴圈;反之如果大家都能夠遵守「童子軍軍規」,那麼**的質量會越來越高,穩定性和可維護性會越來越高,良性迴圈會讓我們大家每天都有好心情。

經常會有人說,作為程式設計師一定要有團隊精神,但這種精神並不是說說而已的,需要實際的行動來體現的。而上述的兩種做法恰恰也可以反應出乙個團隊成員是否具備良好的團隊精神。

遵從破窗理論的成員,就是沒有顧及整個團隊的利益,只顧自己的進度和工作量,不僅不改善**,反而不斷地讓**中的問題增多,這樣怎麼能說是有團隊精神呢?

而遵守童子軍軍規的成員,他們是把整個系統的**都看成是自己的**,自己的利益是與整個系統的質量相關聯的。他們努力改善所看到的有問題的**的質量,表面看來對自己沒有太大的好處,反而有時候可能會讓自己的進度稍稍後延,但是如果整個團隊都這麼做的話,那麼在不久之後就會體會到優質的**給整個團隊帶來的好處。他們正是具備了非常不錯的團隊精神。

所以,想要做乙個優秀的程式設計師,應該遵守童子軍軍規,而不是將破窗情況越變越嚴重。

程式設計師應知 學習 思考與分享

有人說,程式設計師是個苦差事,一輩子總是要不停地學習,學習新的技術,學習新的架構,學習新的工具,一旦一段時間不學習,就會發現其他人嘴裡冒出來的新鮮詞,自己已經搞不懂是什麼了。的確,作為程式設計師,學習很重要。還有人說,做程式設計師是典型的腦力勞動者,每天都要思考,想怎樣才能做出更易於擴充套件 安全性...

程式設計師應知 學習 思考與分享

程式設計師應知 學習 思考與分享 有人說,程式設計師是個苦差事,一輩子總是要不停地學習,學習新的技術,學習新的架構,學習新的工具,一旦一段時間不學習,就會發現其他人嘴裡冒出來的新鮮詞,自己已經搞不懂是什麼了。的確,作為程式設計師,學習很重要。還有人說,做程式設計師是典型的腦力勞動者,每天都要思考,想...

程式設計師應知 學習 思考與分享

有人說,程式設計師是個苦差事,一輩子總是要不停地學習,學習新的技術,學習新的架構,學習新的工具,一旦一段時間不學習,就會發現其他人嘴裡冒出來的新鮮詞,自己已經搞不懂是什麼了。的確,作為程式設計師,學習很重要。還有人說,做程式設計師是典型的腦力勞動者,每天都要思考,想怎樣才能做出更易於擴充套件 安全性...