錯誤調試方法
- 分析項目的整個運行流程,梳理各個環節,找到可能出錯的地方加以修改
- 根據錯誤提示找到錯誤根源, 刪一段再執行一段
- 小黃鴨調試法:強迫本身把遇到的問題說出來,詳細說出每一行代碼的做用以及實現的功能,必定要說出來,對人對物均可以。
高效能程序員的修煉
- 鍛鍊寫做能力
- 繞開絆腳石,直達目的地(重要)
- 專一於一項工做
- 學會閱讀源代碼
- 避免寫沒必要要的註釋:規範化類名與方法名
- 沒必要從頭開始複習,專一於當下
- 不要寫死代碼
卓越程序員密碼
早起先測試jquery
別在臥室裏工做:程序員
- 別讓每週40小時的工做變成168小時的工做+睡覺+吃喝玩樂
寫代碼是不得已而爲之:編程
對休閒項目堅定說不單元測試
- 每週花幾天,天天花幾個小時在這個項目上(可持續的工做量,堅持)
- 何時能把一個基本成型的產品展現給別人(可供測試的軟件)
- 哪一天向公衆發佈(夠用的軟件)
- 哪一天發佈第一個主要的更新版本
仿造軟件:測試
- 找一個你喜歡的網站或遊戲,把它仿造出來。在你真正的想作一件項目前,先作完這個。這個能促使你學到前沿的編程技術,並且能讓你更容易的被招聘公司選中。作3-5個這樣的仿製項目後,你就能實現任意的你想要的東西了。
每一個項目都要學到新東西:網站
- 每次項目都努力使用一些聽到過但從未使用過的新東西。沒有使用過jquery,那下次項目中就使用它
- 沒有試過測試驅動開發,下次項目就是你的實驗品
天天改進產品的兩個方面,即使是很是小的改進翻譯
CleanCode
童子軍軍規:離開時要比來時更整潔。
設計
若是每段代碼都讓你感到深合己意,那就是整潔代碼。調試
整潔的代碼只作好一件事日誌
一以貫之的命名法。統一命名方式
類名名詞、方法名動詞
整潔代碼是重構出來的,而非一開始就寫出來的,沒人能作到這種事情。
別給糟糕的代碼加註釋---從新寫吧。可是因爲咱們並不是英語國家,仍是須要多寫註釋的,不過是代碼的英文翻譯。
TDD(Test-Driven Development):測試驅動開發,就比如數據抽取的公式,一開始不知道如何下手,換個角度想一想看怎麼測試,先設計個簡單的界面,思考須要傳遞什麼參數,一步步測試,一步步開發。測試能幫咱們想到開始開發時想不到的點,幫咱們確認需求。
測試代碼的簡潔度反映了業務代碼
TDD三大定律:
- You must write a failing unit test before you write production code.(在編寫不能經過的單元測試前,不可編寫生產代碼)
- You must stop writing that unit test as soon as it fails; and not compiling is failing.(只可編寫恰好沒法經過的單元測試,不能編譯也算不經過)
- You must stop writing production code as soon as the currently failing test passes.(只可編寫恰好足以經過當前失敗測試的生產代碼。)
使用但儘可能少使用斷言語句。(保持測試的可重用性,每一個測試只測試一個功能,比如每一個方法只作一件事)
整潔的測試規則:FIRST
- Fast,快速,才能頻繁進行測試
- Independent,獨立,多個測試之間應該相互獨立,不能有任何關係
- Repeatable,可重複,測試應可在任何環境下經過
- Self-Validating,自足驗證,測試應該有布爾值輸出(或斷言),不管經過或者失敗都不該該查詢控制檯或者日誌確認測試是否經過。
- Timely,及時,測試應該及時編寫,剛好在使其經過的生產代碼以前編寫
單一權責原則:(Single Responsibility Principle)
系統應該由許多短小的類而不是少許巨大的類組成。每一個小類封裝一個權責,只有一個修改的緣由,並與少數其餘類一塊兒協同工做達成指望的系統行爲。
重構通常都須要大動代碼,爲了保證程序的可正常運行,最好編寫一套測試用例,保證重構先後系統的正確性,在一步一步的重構時執行測試用例。