標籤:程式風格

重構指南

重構是一種有紀律的技術,用於重組現有的程式碼主體,改變其內部結構而不改變其外部行為。其核心是一系列小型的行為保留轉換。每個轉換(稱為「重構」)所做的不多,但這些轉換的順序可以產生重大的重組。由於每個重構都很小,因此出錯的機率較低。每次重構後,系統都會保持完全運作,降低重組期間系統嚴重損壞的機率。

作者:Martin Fowler

閱讀更多…

指南

程式風格 極限程式設計 重構

高品質軟體值得花費嗎?

軟體開發專案中常見的爭論,在於花時間改善軟體品質與專注於釋出更有價值的功能之間。通常交付功能的壓力主導了討論,導致許多開發人員抱怨他們沒有時間處理架構和程式碼品質。這場爭論基於一個假設,即提高品質也會增加成本,這是我們常見的經驗。但反直覺的現實是,內部軟體品質消除了減緩開發新功能的冗餘,從而降低了增強軟體的成本。

作者:Martin Fowler

2019 年 5 月 29 日

閱讀更多…

文章

程式風格 生產力 專案規劃 技術負債

重構的工作流程

重構已發展成一種眾所周知且大多數軟體開發團隊至少聲稱定期進行重構的技術。然而,許多團隊並不了解重構可以使用的不同工作流程,因此錯失了有效將重構納入其開發活動的機會。在此簡報中,我探討了各種不同的工作流程。我希望這將鼓勵團隊更深入地將重構整合到其工作中,從而產生設計更佳的程式碼庫,讓新增功能變得更快速、更容易。

作者:Martin Fowler

2014 年 1 月 8 日

閱讀更多…

資訊簡報

敏捷 程式設計風格 重構 資訊簡報

Web 應用程式安全性基礎

現代 Web 開發有許多挑戰,其中安全性既非常重要,又常被低估。雖然威脅分析等技術日益被認為是任何嚴肅開發的必要條件,但也有某些基本做法是每個開發人員都能且應該例行執行的。

作者:Cade Cairns 和 Daniel Somerfield

2017 年 1 月 5 日

閱讀更多…

文章

程式設計風格 安全性

面向領域的可觀察性

我們軟體系統中的可觀察性一直很有價值,在雲端和微服務的時代變得更加重要。然而,我們新增到系統中的可觀察性往往相當低階且技術性,而且似乎太常需要在我們的程式碼庫中散佈冗長且詳細的呼叫,以呼叫各種記錄、儀器和分析架構。本文說明一種模式,可以清除此混亂,並允許我們以乾淨且可測試的方式新增與業務相關的可觀察性。

作者:Pete Hodgson

2019 年 4 月 9 日

閱讀更多…

文章

持續傳遞 程式設計風格 應用程式架構 測試

重構存取外部服務的程式碼

當我撰寫處理外部服務的程式碼時,我發現將該存取程式碼分隔成個別物件很有價值。在此,我將展示如何將一些凝結的程式碼重構成此分隔的常見模式。

作者:Martin Fowler

2015 年 2 月 17 日

閱讀更多…

文章

物件協作設計 程式設計風格 重構 應用程式架構

明確說明

設計技術通常用於讓系統更靈活,但最後卻變得更難使用。其中一個原因是明確性是一種在設計中常被遺忘的屬性。

作者:Martin Fowler

2001 年 11 月

閱讀更多…

ieeeSoftware 程式設計風格

使用元資料

您可以使用基於元資料的方法來消除繁瑣的資料導向任務的痛苦。

作者:Martin Fowler

2002 年 11 月

閱讀更多…

ieeeSoftware 程式設計風格

何時建立類型

何時為值建立新的使用者定義類型 (或類別) 的指南。

作者:Martin Fowler

2003 年 1 月

閱讀更多…

ieeeSoftware 程式設計風格

Beck 設計規則

Kent Beck 在 1990 年代後期開發 極端程式設計 時提出了四個簡單設計規則。我這樣表達它們。

作者:Martin Fowler

2015 年 3 月 2 日

閱讀更多…

bliki

極端程式設計 程式設計風格 重構

程式碼異味

程式碼異味是一種表面現象,通常對應於系統中更深層的問題。這個術語最初是由 Kent Beck 在協助我撰寫 重構 一書時提出的。

作者:Martin Fowler

2006 年 2 月 9 日

閱讀更多…

bliki

技術債 程式設計風格 重構

命令查詢分離

「命令查詢分離」一詞是由 Bertrand Meyer 在他的著作「物件導向軟體建構」中提出的,這本書是 OO 早期最具影響力的 OO 書籍之一。(第一版是最有影響力的,第二版很好,但您需要在健身房待上幾個月才能舉起它。)

作者:Martin Fowler

2005 年 12 月 5 日

閱讀更多…

bliki

API 設計 程式設計風格

組合式正規表示式

撰寫可維護程式碼時,最強大的工具之一是將大型方法分解成命名良好的小型方法,這是一種 Kent Beck 稱之為組合式方法模式的技術。

作者:Martin Fowler

2009 年 7 月 24 日

閱讀更多…

bliki

程式風格

資料塊

每當兩個或三個值聚集在一起時,請將它們變成一個 $%#$%^ 物件。

-- 我(用聲音會更有趣)

這是重構書籍中我最喜歡的 程式碼異味 之一。當您不斷看到相同的幾個資料項目一起傳遞時,您就會發現它。開始和結束是一個資料塊想要成為 範圍 的一個好例子。通常,資料塊是沒有人會想到變成物件的基本值。

作者:Martin Fowler

2006 年 1 月 5 日

閱讀更多…

bliki

糟糕的事 程式設計風格 重構

設計耐力假設

設計良好的軟體是否值得花費心力?

作者:Martin Fowler

2007 年 6 月 20 日

閱讀更多…

bliki

生產力 技術負債 程序理論 演化設計 程式風格

令人厭惡

(這是你的字典中新增的內容。)

令人厭惡(形容詞):無法測試的軟體。

作者:Martin Fowler

2005 年 3 月 16 日

閱讀更多…

bliki

字典 測試 糟糕事物 技術負債 程式風格

函式長度

在我的職業生涯中,我聽過許多關於函式長度應該多長的論點。這是更重要問題的代理人 - 我們什麼時候應該將程式碼封裝在自己的函式中?其中一些準則基於長度,例如函式不應大於螢幕上顯示的長度。有些則基於重複使用 - 任何使用超過一次的程式碼都應放入自己的函式中,但僅使用一次的程式碼應保留在內聯中。然而,對我來說最有意義的論點是意圖和實作之間的分離。如果你必須花費精力查看程式碼片段才能找出它在做什麼,那麼你應該將它萃取到一個函式中,並將函式命名為那個「什麼」。這樣,當你再次閱讀它時,函式的目的就會立即出現在你面前,而且大部分時間你不需要關心函式如何實現其目的 - 這是函式的內文。

作者:Martin Fowler

2016 年 11 月 30 日

閱讀更多…

bliki

指標 程式風格

四人幫

在我看來,四人幫 是有史以來關於物件導向設計寫得最好的書 - 可能涵蓋任何設計風格。這本書對軟體產業影響很大 - 只要看看充滿 GOF 模式的 Java 和 .NET 函式庫就知道了。

作者:Martin Fowler

2004 年 8 月 3 日

閱讀更多…

bliki

程式風格 物件協作設計

自我測試程式碼

自測程式碼是我在 重構 中用來指稱撰寫全面自動化測試與功能性軟體相結合的實務。如果做得好,這將允許您呼叫執行測試的單一指令,而且您有信心這些測試將找出隱藏在程式碼中的任何錯誤。

作者:Martin Fowler

2014 年 5 月 1 日

閱讀更多…

bliki

敏捷 持續傳遞 測試 極限程式設計 程式設計風格 重構

技術債務

軟體系統容易累積雜質,也就是內部品質的缺陷,使得修改和進一步擴充系統比理想情況下更加困難。技術債務是一個由 Ward Cunningham 創造的比喻,用來構思如何處理這種雜質,將其視為一種財務債務。新增新功能所需付出的額外努力,就是支付債務的利息。

作者:Martin Fowler

2019 年 5 月 21 日

閱讀更多…

bliki

技術債務 程式設計風格

測試驅動開發

測試驅動開發 (TDD) 是一種透過撰寫測試來引導軟體開發的軟體建置技術。它是由 Kent Beck 在 1990 年代後期作為極限程式設計的一部分所開發。基本上,我們重複執行三個簡單的步驟

作者:Martin Fowler

2023 年 12 月 11 日

閱讀更多…

bliki

測試 程式設計風格

Yagni

Yagni 最初是一個縮寫,代表「你不需要它」。這是一個來自 極限程式設計 的咒語,經常在敏捷軟體團隊中普遍使用。這是一個聲明,表示我們假設我們的軟體在未來需要某些功能,但現在不應該建置,因為「你不需要它」。

作者:Martin Fowler

2015 年 5 月 26 日

閱讀更多…

bliki

流程理論 專案規劃 演化設計 程式設計風格


所有標籤

API design · agile · agile adoption · analysis patterns · application architecture · application integration · bad things · board games · build scripting · certification · collaboration · computer history · conference panels · conferences · continuous delivery · covid-19 · data analytics · database · design · dictionary · distributed computing magazine · diversions · diversity · documentation · domain driven design · domain specific language · domestic · encapsulation · enterprise architecture · estimation · event architectures · evolutionary design · experience reports · expositional architectures · extreme programming · front-end · gadgets · generative AI · ieeeSoftware · infodecks · internet culture · interviews · language feature · language workbench · lean · legacy rehab · legal · metrics · microservices · mobile · noSQL · object collaboration design · parser generators · photography · platforms · podcast · popular · presentation technique · privacy · process theory · productivity · programming environments · programming style · project planning · recruiting · refactoring · refactoring boundary · requirements analysis · ruby · security · talk videos · team environment · team organization · technical debt · technical leadership · test categories · testing · thoughtworks · tools · travel · uml · version control · web development · web services · website · writing

2024 · 2023 · 2022 · 2021 · 2020 · 2019 · 2018 · 2017 · 2016 · 2015 · 2014 · 2013 · 2012 · 2011 · 2010 · 2009 · 2008 · 2007 · 2006 · 2005 · 2004 · 2003 · 2002 · 2001 · 2000 · 1999 · 1998 · 1997 · 1996

所有內容