程序員修煉之道-從小工到專家讀後感2

花了半個月進行了兩章內容的閱讀,其中這兩章中,印象深入的是關於bug方面的閱讀,曳光彈的使用,構建軟件原型,還有對於shell編程的使用。java

    當你構建從未構建過的東西時,你嘗試在黑暗中射擊目標,由於你歷來沒有作過,他們的需求含糊不清,你也不知道,並且你在用不熟悉的算法,技術,語言,或庫,你面對着大量未知的事物,同時還有時間的限制,工做環境將在你完成工做以前變化,經典的作法就是系統定死,費力,然而注重實效的程序員就會使用曳光彈:曳光彈與子彈下載相同的環境,相同的約束條件下一塊兒飛向目標,能夠給槍手及時的反饋,可使編寫代碼的效率大大提升,曳光代碼,便攜而的目的是爲了保留它,有完整的錯誤檢查、結構、文檔、以及自查,只不過是功能不全,可檢查離目標還有多遠,一旦你徹底瞄準,增長功能就會變得很容易。一樣曳光代碼有不少優勢,用戶可以及早看到能工做的東西,構建了一個開發者能在其中工做的結構,有了一個集成平臺,有了可用於演示的東西,感受到工做的進展。但是曳光代碼不必定可以擊中目標,反而須要你不斷地調整直至集中目標,完成任務,但即便是這樣也要比你在黑暗中射槍,要簡單得多,也更能及早的讓你完成任務。程序員

在咱們不清楚怎麼作的時候,或者說有不少種方法,而採用何種方法,就是提高效率的關鍵了,咱們是要每一個方法都試一次仍是,作出每一個方法的原型呢,顯而後面的方法更加高效率。咱們能夠構架那軟件原型進行測試,分析,而後再分析事後再改進,這樣能夠大大下降你的勞動力,若是你已經完成了代碼可是有錯誤或者不合實際,不知足要求,你就要構思,而後再去從新作,這樣及費力又費時間,並且成功概率還很小,不能直接成功,那就不如去作多個你認爲能夠的軟件原型,這樣你就能夠在同一時間測試多個原型而後篩選出最好的最能達到目的的那一個原型,再去考慮有什麼欠缺的地方若是有繼續更改原型,若是沒有就能夠實現了,這樣的話你知完整的實現了一次,可是第一種方法,要在不斷地更改中才能完成,實現了不少次,因而可知,創建軟件原型的效率之高。你能夠忽略原型的正確性,完整性,健壯性,風格等。算法

我是先讀的本書的利用好shell編程,內容大體以下,能夠經過對shell編程,構建複雜的宏命令,,完成你常常進行的各類活動。利用命令shell的力量,熟悉shell,你本身的生產率迅速提升,多花一些精力去熟悉shell,事情會變得清楚起來,多使用shell命令。而後老師讓咱們用cmd運行java的反編譯,其實步驟只有四個,第一步,不能跨盤,因此要更改磁盤的位置,而後再換目錄。第二步,執行javac  *.java。第三步,執行 java 源文件。第四步,執行javap *.class文件 而後就能夠獲得整個程序的調用方法順序,能夠更加清楚的瞭解本身的程序,若是是別人的程序,你更能夠經過使用反編譯來剖析程序,使代碼爲本身所用。shell

Bug是一個程序員必需要面對的東西,在處理bug的時候,有些事情就顯得尤其重要。發現bug後你應該專一於修正問題而不是指責,bug是你的過錯仍是別人的過錯,並無關係,你應該考慮的應該是怎麼修改錯誤,這樣才能解決問題。在調試的過程當中不要恐慌,越到最後要驗收或者提交的時候越不能恐慌,若是有人在旁邊催你未完成任務更不能緊張恐慌,這樣你會調試不出來,反而要思考是什麼形成了bug,調試的是夠當心近視,只有迫切修改bug的願望,可是真正出問題的代碼多是在大前面或者大後面,要想到或者考慮到bug的根源而不是bug的具體表現我,這就至關於生病時的治標不治本,若是不解決源頭上的問題,會有好幾個表面問題,沒準你解決一個還有不少個心得問題出來,這樣是不能解決問題的,所以要注重問題的源頭,這樣才能將問題完全解決。在查看bug以前要先看看是否有警告,人工合成測試,不能足夠的演練應用,你必須既強硬的測試邊界條件,有測試現實中的用戶的使用模式,你須要系統的進行這樣的測試。一旦你知道了發生了什麼,你就找出除了錯誤。使你的數據可視化,能夠畫圖,這時候問題就會表如今你面前,檢查變量的時候,發現了一個壞變量這時候看看其餘的變量,問題也許就會迎刃而解。不要假設,要證實,當你遇到bug時,先要假設看看是什麼形成這個bug,考慮是否要改進單元測試或其餘測試,以讓他們有能力找出這個故障。編程

要編寫能編寫代碼的代碼,簡而言之就是咱們在生活中看到木匠重複的製做一個東西的時候,他們給本身建造夾具或者模板,一旦作好了這些,他們就能夠快速的作出相同的東西出來,而且下降了出錯的機會,只要第一個做品是正確的還有模具沒有問題,一樣咱們也須要這樣,要構建代碼生成器,構建好了整個項目生命期內均可以用它而且沒有人格代價。而代碼生成器分爲主動和被動兩種,被動至關於參數化模板,而主動是一種便利手段。代碼生成不必定很複雜,而且代碼生成器不必定要生成代碼。ide

要清楚你不可能寫出完美的軟件,金無足赤,人無完人,雖然這聽起來你難以接受,但你能夠把它轉化爲有利條件,針對本身的錯誤進行防衛性的編碼,要確保在找出bug的過程當中,不會形成任何破壞,因此咱們設法,檢查各類事項,並在程序出問題的時候終止程序單元測試

相關文章
相關標籤/搜索