<font id="zqva1"></font>
<rt id="zqva1"></rt>
  • <tt id="zqva1"></tt>
    <cite id="zqva1"></cite>

    <cite id="zqva1"><noscript id="zqva1"></noscript></cite>
      <rp id="zqva1"><meter id="zqva1"></meter></rp>

        <cite id="zqva1"></cite>
          <b id="zqva1"></b>
          <rp id="zqva1"></rp>
          <cite id="zqva1"></cite>

          <rt id="zqva1"></rt>

        1. <rp id="zqva1"></rp>

          不要浪費時間寫完美代碼

          時間:?2017-11-20閱讀:?712標簽:?代碼

          一個系統可以維持5年,10年,甚至20年以上,但是代碼和設計模式的生命周期非常短,當對一個解決方案使用不同的方法進行迭代的時候,通常只能維持數月,數日,甚至幾分鐘的時間。



          代碼重要性區分

          隨著對代碼是如何改變的研究,致力于代碼修改藝術的人發現了一個代碼庫的規律曲線。每個系統都有很多從未改變的代碼。但是也有小部分非常重要且有用的代碼一次又一次的改變,經過了多次重構和重寫。

          當你對一個系統,問題域,或者架構方法越來越熟悉的時候,就更容易發現和預測哪些代碼會經常修改,哪些代碼不會被修改,即區分重要代碼和非重要代碼。


          我們應該嘗試追求完美代碼?

          眾所周知,我們應該寫干凈整潔的代碼,而干凈整潔就應該是盡可能一致,易懂,簡單。

          有些人追求極致,強迫自己寫的代碼要漂亮且優雅,接近于他們所能達到的完美,瘋狂的進行重構,并致力于每一個細節。

          與寫完代碼不再變動相比,一直修改的代碼會讓完美的需求和具有前瞻性的設計變得有些多余和沒必要。

          你不能寫出完美的軟件,這樣的結果會使你受傷了?沒必要,把它當做人生格言,信奉并祝賀,因為完美的軟件并不存在,在計算機歷史中沒一個人曾經寫出過完美軟件,當然,你也不可能成為第一個,只有接受這樣一個事實,你才能不再在浪費時間,將精力放在可能實現的理想中。

          Andrew Hunt, 實用程序員:從路人到大師

          曾經寫過的代碼不需要優美優雅。它必須是正確的且容易理解的,因為在系統的生命周期中那些從不用修改的代碼也會被多次訪問。同樣這些代碼不需要又整潔又緊湊——只要整潔就足夠了。在一定程度上,復制粘貼和其他快捷方法寫出的代碼是允許的。即使這些代碼周圍的代碼變了,這些代碼不需要反復修改,不需要重構(直到你需要修改它)。這樣的代碼是不值得花費額外的時間的。

          那些經常修改的代碼該如何處理呢?苦思冥想代碼風格和提出最優雅的解決方案是浪費時間的,因為這些代碼可能會在幾天或幾周之內再次修改,甚至重寫。因為希望代碼應該變得更好而癡迷地重構那些需要經常修改代碼,或者重構那些基本不會修改的代碼。代碼一直可以變得更好,但這并不重要。

          最重要的是:代碼是否做到了它應該做的事?代碼運行正確且可用又高效嗎?能夠處理錯誤和錯誤數據而不奔潰或者至少是安全地出錯嗎?容易調試嗎?能簡單又安全地修改代碼嗎?這些不是對于完美代碼的主觀想法,而是用來區分成功和失敗的切實可行的措施。


          實用的編碼和重構

          精益開發的核心思想是:不要浪費時間在那些不重要的事情上。這句話已告訴我們該怎樣寫代碼,怎樣重構代碼,怎樣評審代碼,怎樣測試代碼。

          為了把工作做好,只重構你需要的——Martin Fowler 稱為機會主義重構(理解、清理不切實際的東西)和預先重構。足夠讓修改變得更簡單更安全即可,其他的不必考慮。如果你不修改那些代碼,那么那些代碼長什么樣子是無所謂的事。

          在代碼評審中,只關注那些重要的。代碼正確嗎?有防范機制嗎?安全嗎?容易理解嗎?能夠安全地修改嗎?

          忘掉編碼風格(除非編碼風格達到可理解的程度)。讓你的 IDE 處理格式化。不要過多爭論:代碼是否可以是“更多的OO”。只要它有意義,不管它是否適當地遵循這種或那種模式,這些都不重要。無論你喜歡還是不喜歡都沒關系。無論你能否以更好的方式做到這一點并不重要——除非你在教一個對平臺和語言都不熟悉的新手,而且你需要做一些代碼評審作為指導的一部分。

          寫測試是有必要的。測試那些涵蓋主路徑和重要例外情況的測試。測試可以讓你以最少的工作量獲得最多的自信心。大規模全范圍測試或者小規模局部測試——在編寫代碼之前測試還是之后測試,都沒關系,只要做了這個工作就行。


          這不(僅)是關于代碼

          建筑學和工程學的隱喻從未在軟件開發中生效。我們不是設計和建造橋梁或摩天大樓 —— 它們會在幾年或幾代內保持基本相同。我們正在建造一些更富有創造力和抽象性、更加短暫的東西。代碼編寫之后是用來修改的 —— 這就是為什么它被稱為“軟件”的原因。

          “經過五年的使用和修改,成功的軟件的源碼通常與最初版本完全不一樣,而五年之后的成功的建筑幾乎沒有什么變化。”

          Kevin Tate, 可持續軟件開發

          我們需要將代碼看作是我們工作的一個暫存:

          …有時在面對更重要的事情時,我們被引導到盲目崇拜代碼。我們經常會處于這樣的幻象中:在移交產品時最有價值的東西是代碼,實際上這可能是對問題域的理解、設計難題的進展甚至是客戶反饋。

          Dan Grover, 代碼和創造性破壞

          迭代開發教會了我們通過實驗來驗證我們工作的結果 —— 我們是否已解決了這個問題,如果沒有,我們學到了什么,我們該如何改進?我們正在構建的軟件永遠不會完成。即使設計和代碼是正確的,它們可能也只是在一段時間內是正確的,直到環境要求其再次改動或被替換為更好的東西。

          我們需要編寫好的代碼:可理解、正確、安全和可靠的代碼。我們需要重構和審查它,并寫出好的有用的測試用例,直到其中的一些代碼(也可能是全部(),可能會很快被拋棄,或者可能永遠不會被再次看到,或根本不會使用了。我們需要認識到,我們的一些工作必然會被浪費掉,并要為此進行優化。做那些必須做的,不做無用功。不要浪費時間嘗試編寫完美的代碼。


          譯文:https://www.oschina.net/translate/dont-waste-time-writing
          原文:https://dzone.com/articles/dont-waste-time-writing
          站長推薦

          1.阿里云: 本站目前使用的是阿里云主機,安全/可靠/穩定。點擊領取2000元代金券、了解最新阿里云產品的各種優惠活動點擊進入

          2.騰訊云: 提供云服務器、云數據庫、云存儲、視頻與CDN、域名等服務。騰訊云各類產品的最新活動,優惠券領取點擊進入

          3.廣告聯盟: 整理了目前主流的廣告聯盟平臺,如果你有流量,可以作為參考選擇適合你的平臺點擊進入

          鏈接: http://www.modern-decoration.com.cn/article/detial/130

          編寫優秀CSS代碼的8個策略

          編寫基本的CSS和HTML是我們作為Web開發人員學習的首要事情之一。然而,我遇到的很多應用程序顯然沒有人花時間真正考慮前端開發的長久性和可維護性。

          最好的代碼是沒有代碼

          不久前,我開始著手清理一個接手過來的項目。因為項目有一些 bug,所以我有足夠的自由來重構它。但修復舊 bug 會引入新 bug,于是乎我就陷入了惡性循環。

          常用的JS代碼片段

          軟件正在吞噬世界,JavaScript正在吞噬軟件。JavaScript每年都在變得越來越占主導地位,而且沒人知道最終會取代它的是什么。如果您沒有充分的理由學習一種新語言(例如您的工作要求您維護非JavaScript代碼庫),那么我的建議是著重于提高JavaScript的水平。

          如何閱讀別人的代碼?

          比起閱讀代碼,我更喜歡看別人的文章或者書。我喜歡他們跟我面對面的交流,用簡單的自然語言或者畫圖解釋他們的思想。有了思想,我自然知道如何把它變成代碼,而且是優雅的代碼

          把同事的代碼重寫得干凈又整潔,老板卻讓我做回滾?

          我的同事把這周寫的代碼提交了。我們在開發一個圖形編輯器畫布,已經實現了形狀調整功能,即通過拖拽形狀邊緣的手柄來調整形狀(比如矩形和橢圓形)。代碼可以運行。

          開發中比較容易理解的代碼套路

          舉個栗子:我們有一些業務需要添加元素到數組中,但同時也可能過會又要將其移除。更好的方式是我們把他們封裝成函數,并利用高階函數閉包的特性來標記刪除,這樣就減少了去查找這個元素的問題了

          javascript代碼語句結束要不要加分號?

          在 C 語言中,分號是語句結束的標志,在語句結束的地方一定要以分號結束。而 JavaScript 的分號卻是可選的,若語句都各占一行,則可以省略分號。avaScript 中的 ASI 機制,允許我們省略分號。ASI 機制不是說在解析過程中解析器自動把分號添加到代碼中

          a標簽中的href怎么調用javascript代碼?

          JavaScript是一種屬于網絡的腳本語言,已經被廣泛用于Web應用開發,常用來為網頁添加各式各樣的動態功能,為用戶提供更流暢美觀的瀏覽效果。通常JavaScript腳本是通過嵌入在HTML中來實現自身的功能的。在HTML中,<a>標簽的href屬性用于指定超鏈接的目標的URL。

          源代碼是什么意思

          源代碼(也稱源程序),是指一系列人類可讀的計算機語言指令。 在現代程序語言中,源代碼可以是以書籍或者磁帶的形式出現,但最為常用的格式是文本文件,這種典型格式的目的是為了編譯出計算機程序。

          掌握依賴注入5大原則,無需額外編代碼!

          如果是第一次接觸這個概念,可能會一時沒有頭緒,網上的各種解釋可能會讓你更加混亂,并覺得它沒那么簡單。 其實依賴注入本身是單純、簡單的。簡單來說,依賴注入是一種方式、方法或者說手段

          fly63.com版權所有,內容以共享、參考、研究為目的,不存在任何商業目的。其版權屬原作者所有,如有侵權,請與小編聯系!情況屬實本人將予以刪除!

          文章投稿關于web前端網站點搜索站長推薦網站地圖站長QQ:522607023

          小程序專欄: 土味情話心理測試腦筋急轉彎幽默笑話段子句子語錄成語大全運營推廣

          国产精品高清视频免费 - 视频 - 在线观看 - 影视资讯 - 唯爱网