<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                #### 第1章 專業主義 專業主義有很深的含義,它不但象征著榮譽與驕傲,而且明確意味著責任與義務。這兩者密切相關,因為從你無法負責的事情上不可能獲得榮譽與驕傲。 代碼中難免會出現bug,但這并不意味著你不用對它們負責;沒人能寫出完美的軟件,但這并不表示你不用對不完美負責,所謂專業人士,就是能對自己犯下的錯誤負責的人,哪怕那些錯誤實際上在所難免。職業經驗多了之后,你的失誤率應該快速減少,甚至漸進于零。失誤率永遠不可能等于零,但你有責任讓它無限接近零。 寫一些隨時都能運行的單元測試,然后盡可能多的執行這些測試。要用這些自動化單元測試去測多少代碼呢?還要說嗎?全部!完全都要測!我是在建議進行百分百測試覆蓋率嗎?不,我不是在建議,我是在要求!你寫的每一行代碼都要測試。完畢!這是不是不切實際?當然不是。你寫代碼是因為想執行它,如果你希望代碼可以執行,那你就該知道它是否可行。而要知道它是否可行,就一定要對它進行測試。 有些代碼不是很難測試嗎?是的,但之所以很難測試,是因為設計時就沒考慮如何測試。唯一的解決辦法就是要設計易于測試的代碼,最好是先寫測試,再寫要測的代碼——TDD。 成熟的開發人員知道,聰明人不會為了發布新功能而破壞結構。結構良好的代碼更靈活。以犧牲結構為代價,得不償失,將來必追悔莫及。 所有軟件項目的根本指導原則是,軟件要易于修改。如果違背這條原則搭建僵化的結構,就破壞了構筑整個行業的經濟模型,如果你希望自己的軟件靈活可變,那就應該時常修改它!讓軟件保持固定不變是危險的!如果一直不重構代碼,等到最后不得不重構時,你就會發現代碼已經“僵化了”。對待代碼,就如果雕塑家對待泥巴那樣,要對它進行不斷的變形與塑造 職業發展是你自己的事情。雇主沒有義務確保你在職場能夠立于不敗之地,也沒有義務培訓你,送你參加各種會議或給你買各種書籍充電。這些都是你自己的事。將自己的職業發展寄希望于雇主的軟件開發人員將會很慘。 雇主也沒義務給你留學習時間,應該勤勉的開辟一部分時間為自己的職業發展工作,這將會讓你成為更有價值的專業人士。不能銘記過去的人,注定重蹈先人的覆轍,學不會新原則和技術的開發人員必將淪落。業精于勤。真正的專業人士往往勤學苦干,以求得自身技能的純熟精煉。 與他人合作是最佳學習方法之一。專業軟件開發人員往往會更加努力的嘗試與他人一起編程、一起練習、一起設計、一起計劃,這樣他們可以從彼此身上學到很多東西,而且能在更短的時間內更高質量的完成更多的工作,讓新人融入團隊的最好辦法是和他們左到一起,向他們傳授工作要訣。專業人士會視輔導新人為己任,他們不會放任未經輔導的新手亂打亂撞。 #### 第3章 說“是” 在承諾某事時,應當留意自己的用詞,因為這些用詞透露了我們對待承諾的認真程度 你,你自己,始終都能掌控某些事情,也就是說,總有些事是你可以承諾做到的 你只能承諾自己能完全掌握的事 如果你無法兌現承諾,那么最終要的就是盡早向你的承諾對象發出預警,越快越好,越早越好 如果你不盡早告訴他人可能的問題,就錯失了然他們幫助你達成目標、兌現承諾的機會 口頭上說自己會在周末搞定這些事情是很容易的,但真要花精力高質量的完成工作會困難許多。專業人士對自己的能力極限了如指掌。他們十分清楚自己還能保持效率加班多長時間,也非常明白要付出的代價 專業人士不需要對所有請求都回答“是”。不過,他們應該努力尋找創新的方法,盡可能做到有求必應。當專業人士給出肯定回答時,他們會使用承諾用語,以確保各方能明白無誤的理解承諾內容 #### 第6章 練習 專業人士都需要借助專門訓練提升自己的技能,無一例外,和習武者一樣,程序員應該懂得多種不同的Code Kata,并定期練習,確保不會淡化或遺忘。職業程序員通常會受到一種限制,即所解決問題的種類比較單一 http://katas.softwarecraftsmanship.org/ http://codekata.pragprog.com/ 無論如何,專業人士都需要練習。練習的時候是賺不到錢的,但是練習之后,你會獲得回報,他們這么做,是因為他們關心自己能做到的最好結果。更重要的是,他們用自己的時間練習,因為他們知道保持自己的技能不落伍是自己的責任,而不是雇主的責任。 #### 第14章 輔導、學徒期與技藝 在學校中所學的內容和在工作中發現的實際需要,這兩者之間通常會有巨大的差異。 由于對軟件開發人員培訓不足,不少公司曾遭遇過巨額的經濟損失。 一些公司在雇用一些剛才學校里出來的毛頭小孩后,就會立馬將他們組織成“團隊”,把他們扔到關鍵系統的開發當中去,類似這樣的情形屢見不鮮。簡直荒唐透頂。 大師——他們是那些已經領到過多個重要軟件項目的程序員。一般說來,他們已經擁有10年以上的從業經驗,曾在多個不同類型的系統、語言和操作系統上工作過。他們懂得如何領到和協調多個團隊,他們是熟練的設計師和架構師,能夠游刃有余的編程。組織曾為他們提供管理職位,但是他們不是拒絕就是在接受管理職位后又回去了,或是將管理職位和主要承擔的技術角色整合在了一起。他們通過閱讀、研究、聯系、實踐和教學來維持自身的技術水平。公司會把項目在技術方面的主要職責交由大師承擔。 專業主義價值觀和技術敏銳度需要進行不斷的傳授、培育、滋養和文火慢燉,直至其深植入文化當中。 學校能夠傳授的是計算機編程的理論。但是學校并不會也無法傳授作為一名編程匠者所需掌握的原則、實踐和技能。這些東西只有經由師徒個體間多年的細心監督和輔導才能獲得。軟件行業中像我們這樣的一批人必須要面對這一事實,即指引下一代軟件開發人員成熟起來的重任無法寄希望于大學教育,現在這個重任已經落到了我們身上。建立一種包含學徒期、實習期和長期指引的機制已是迫在眉睫。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看