上週,我被迫對一個很老的項目作一些修改。麻煩是,當開始着手時,我真的記不清這個項目究竟有多老了。程序員
這其實是我使用Codeigniter實現的第一個MVC項目。打開項目文件後,不少東西都讓我頭暈。首先,沒有版本控制,第二,沒有註釋。ide
讀起代碼,個人「F*CK/分鐘」的值一直衝破屋頂。學習
項目裏面的Model不多。Controller層有大量重複的代碼,View層肥大的使人不寒而慄。我相信View層裏的邏輯實際上比Model層和Controller層的加起來都要多。spa
我該爲此感到羞恥嗎?版本控制
答案是NO。(若是是的話我也不會寫這篇博客裏。)orm
爲何不?博客
由於有個六月定律。六月定律說的是,每一個程序員都應該回頭看看本身6個月前寫的代碼,而且應該會唾棄當時寫的那些代碼。it
這就引出了本文的重點:若是你是個程序員,當你看6個月前寫的代碼時,若是發現跟如今寫代碼的水平同樣,請別寫了,你應該學習一些新東西了。class
這就是爲何當我看到之前的代碼寫的奇醜無比時反而很高興的緣由。很是高興。這說明我進步了。因此,與其爲那些醜陋的代碼感到羞恥,不如高興的接受它們,這意味着你在成長。程序