前 言程序員
Lms函數
入行也有好久了,一直都只是忙着工做學習,卻一直沒能好好靜下心來好好整理一下本身。時間久了,慢慢的代碼愈來愈熟悉,敲起來也愈來愈順手,本身缺總感受有些不對。我總以爲代碼不該該就是這麼簡單,不該該像寫記敘文同樣,一條一條慢慢的就羅列出來了,返回去看了看本身剛寫代碼的時候功能也都可以實現了。可是仍是有那麼多能夠優化的地方。我以爲好的代碼不該該只是把功能實現那麼簡單,我以爲好的代碼應該有如下幾條特色:第一,命名要規範,第二,可複用性,第三,就是註釋。固然,固然大家可能有更深刻的理解,能夠分享給我,這裏,僅把我最近領悟的分享給你們。學習
1、 命名的規範優化 |
最近,一直有看一些關於怎麼優化代碼的文章和博客,大多都有提到命名的規範和代碼的可讀性。說來慚愧,我醒悟的並不算太早,有挺長一段時間個人代碼裏充斥着var daa; var mbb;等一些蜜汁縮寫,有時翻出本身原來的代碼來做複習和總結,看到這些東西老是最頭疼的,由於本身已經忘了這是什麼的縮寫,是拼音仍是英語,都早已不記得了。只能再次整理代碼邏輯,找到這些東西究竟是啥。spa
命名規範主要就是可讀性,可讀性高了將大大提升代碼的質量,也會增長代碼的可維護性。畢竟,維護代碼首先要讀懂代碼。下面講一下我對變量和函數命名的一些心得,看了許多文章,都在說要遵照某某法則,和使用標準的英文。我說下個人見解:插件
一、首先,命名確實須要一個好的命名規則,你可使用駝峯法則,匈牙利命名法等等,這會讓名字看起來清晰一些,畢竟不能用空格隔斷單詞。設計
二、關於英語命名,若是你英語好的話,我建議你是用標準的英文來命名,若是你英語很差的話我建議你使用拼音。總有人在說程序員使用拼音很土,很low,可我想不明白,中華民族的拼音low在哪了,難道就連個代碼命名都要崇洋媚外麼。固然,筆者英語比較差,我認可,因此別人這麼說個人時候有些反感。我以爲拼音挺好的,至少在國內的話,程序員英語差的不在少數。固然,你想寫出國際化的代碼,走向世界,就當我在放屁。3d
三、使用縮寫的時候,請在你第一次使用這個塊的縮寫時,在前面註釋一下這個縮寫是啥意思,爲之後的讀取大開方便之門,畢竟你註釋只須要一點點時間,可是,不寫註釋等你再用到去翻看的時候會用到幾倍甚至幾十倍的時間。blog
2、可複用性文檔 |
我以爲,寫的好的代碼是下次拿過來就能用的。這裏的可複用性我有兩種理解,
第一種可複用性就是這段代碼會在這個程序或是工程裏常常出現因此把它提出去。封裝起來,哪裏須要哪裏調用便可。
第二種可複用性就是寫了一個很經常使用的功能,在別的工程也用到的時候直接拿過來就可使用的,也就是平時咱們用的插件。
下面,舉個例子:
一、首先,要實現一個信息循環滾動的功能:
· 二、而後你能夠把它寫成這種,基本的功能都已經實現了,並無哪裏不對,請接着往下看
三、隨着你的不斷進步,你會發現代碼還能夠繼續優化而後變成下邊的樣子。
四、技術不斷提升,眼界的開闊,優質源碼的閱讀,你會發現原來的代碼還能夠進一步優化,而後變成了插件
3、 註釋 |
首先,咱們看一下注釋的重要性,先看一下幾種假設,請帶入一下:
一、當你通過一段時間後,發現哪兒出問題或須要調整功能的時候;
二、當你去改別人代碼的時候(你的代碼也會被別人改);
三、當你須要補一些設計文檔的時候(好比如今的我);
注:以上的這些情景僅發生在:一、你所面對的是別人的代碼;二、若是你面對的是你的代碼,再加一個前提,過一段時間以後。
而後,我總結了一下咱們在註釋中常出現的問題,你們共勉:
一、忘記寫註釋:a、這種狀況大多數是隻寫了方法自己功能註釋,可是參數的含義並未加以說明(再遇到參數取名和自己含義更不符的狀況下,就更頭疼了);
b、有些就直接類和方法註釋都沒有(少數)
二、註釋描述的不夠清楚、太簡單籠統話:一些類或方法註釋太過於簡單籠統,不能準確表達代碼含義。
三、註釋與自己代碼所作的功能不符合:總結髮生的狀況可能有以下緣由:
a、寫好一個方法或類,複製粘貼的時候把註釋一塊兒複製粘貼,完了後代碼改了(代碼有錯誤提示)忘了改註釋(註釋沒有錯誤提示),致使註釋與代碼不符;
b、一些方法參數,可能實現設計的時候沒有,或者多設計了,後來通過反覆修改,參數進行了調整,這時參數的註釋仍是之前初始版本,這種狀況也是隻注重代碼,註釋未獲得及時的更新,致使註釋與代碼嚴重不符;
最後,關於怎麼作好註釋我寫下個人理解:
一、必定要養成良好的代碼註釋習慣,邊寫代碼邊註釋,及時的記錄下本身寫代碼過程當中的思路;
二、必定要養成代碼和註釋同時對待,改完代碼及時更正註釋;
三、多提高本身對代碼的解釋能力,用精煉的語言表達出代碼的核心價值所在;不要用冗雜的語言描述,看起來註釋比代碼還多。
關於怎麼寫出更好的代碼我也在進步的路上,在此寫出此篇文章你們共勉。你們都有不一樣的意見歡迎指教討論,你們一塊兒進步。最後謝謝你們的閱讀。