Table of Contents
Martin Fowler
Return to IT Authors, Continuous DeliveryList of works cited, Bibliography, Programming teachers, People, Inventors, Famous software engineers, List of pioneers in computer science
“Martin Fowler is an author, speaker, consultant and general loud-mouth on software development. He concentrates on designing enterprise software - looking at what makes a good design and what practices are needed to come up with good design. He has pioneered object-oriented technology, refactoring, patterns, agile methodologies, domain modeling, the Unified Modeling Language (UML), and Extreme Programming. He's the Chief Scientist at ThoughtWorks - an international application development company, and has written five books on software development: Analysis Patterns, UML Distilled (now in its 3rd edition), Refactoring//martinfowler.com/aboutMe.html He is an [[Agile Manifesto original signer.
- Snippet from Wikipedia: Martin Fowler (software engineer)
Martin Fowler (18 December 1963) is a British software developer, author and international public speaker on software development, specialising in object-oriented analysis and design, UML, patterns, and agile software development methodologies, including extreme programming.
His 1999 book Refactoring popularised the practice of code refactoring. In 2004 he introduced a new architectural pattern, called Presentation Model (PM).
List of Articles and Works
Index of All Content
Martin's site contains some 821 items of content. Here is a list of all of them, sorted by their title. The tags provide a better way of exploring the content by their subject or nature.
His amazing list of articles below represents close to a “table of contents” for software engineering topics and software architecture topics:
A
- A Guide to Threat Modelling for Developers
- A Language Workbench in Action - MPS
- A Proof-of-Concept of BigQuery
- Agile Book Club - Refactoring
B
C
D
F
G
H
Hollywood Principle
Hot Rod
How .NET's Custom Attributes Affect Design
How I use Twitter
How Standard is Standard UML?
How to Move Beyond a Monolithic Data Lake to a Distributed Data Mesh
How to break a Monolith into Microservices
How to do effective video calls
How to extract a data-rich service from a monolith
How to manage a program in a product-mode organization
Huffpost live panel on “The Brogrammer Effect”
Humane Interface
Humane Registry
Humble Object
Ideal Time
Illustrative Programming
Immutable Server
Implicit Interface Implementation
Improvement Ravine
In Memory Test Database
Include And Extend
Incremental Migration
InfoQ Interview with Jez and me on Continuous Delivery
Infodeck
Infrastructure As Code
Installing Debian
Integration Database
Integration Test
Intelli Csharp
Intentional Software
Interface Implementation Pair
Internal Dsl Style
Internal Reprogrammability
Interview with Artima.com
Interview with Kent Beck and Martin Fowler on Extreme Programming
Interview with Sam Newman about Microservices
Interviewed by Jim Highsmith
Introduction to NoSQL
Inversion Of Control
Inversion of Control Containers and the Dependency Injection pattern
Is Agile For All
Is Changing Interfaces Refactoring
Is Declaration Ordering Refactoring
Is Design Dead?
Is Fixing An Unknown Bug Refactoring
Is High Quality Software Worth the Cost?
Is Optimization Refactoring
Is TDD Dead?
Is there such a thing as Object Oriented Analysis?
It's Different with Data
It's Not Just Standing Up: Patterns for Daily Standup Meetings
JAOO 2005
JRake
JRuby Velocity
Japan
Javascript Promise
John Vlissides
Junit New Instance
Keeping Software Soft
Key Points from NoSQL Distilled
Keynote at Agile Development Conference
Keynote for RailsConf 2006
Keyring Laptop
Keystone Interface
Kinesis Advantage2 - Review after three years of use
Knoppix
Lambda
Language For Learning Objects
Language Workbench
Language Workbench Readings
Language Workbenches and Model Driven Architecture
Language Workbenches: The Killer-App for Domain Specific Languages?
Language-Oriented Programming and Language Workbenches
Large Agile Projects
Law Of Demos
Lay Programmer
Layering Principles
Lazy Initialization
Leadership Divide
Lean Inception
Limitations Of General Advice
List And Hash
Local D T O
Local Variables In Class Diagrams
Lock In Cost
MDA: Revenge of the Modelers or UML Utopia?
MDS and DSL
Machine Justification
Magellan Meridian Gps
Making Stubs
Manifesto for Agile Software Development
Maturity Model
Maximizing Developer Effectiveness
Media Server
Memory Image
Mercurial Squash Commit
Meta Programming System
Meta-Introduction to Domain Specific Languages
Metaphoric Questioning
Micro Frontends
Microservice Premium
Microservice Prerequisites
Microservice Trade-Offs
Microservices
Microservices Guide
Microservices Talk
Microservices and the First Law of Distributed Objects
Mike Mason and I talk about Feature Branching
Mind the platform execution gap
Minimal Interface
Mocks Aren't Stubs
Model Driven Architecture
Model Driven Software Development
Modeling with a Sense of Purpose
Modern Mocking Tools and Black Magic
Modifiability: Or is there Design in Agility
Module Assembly
Monolith First
More Version Control
Motion Graphics
Moving Away From Xslt
Moving To Nokogiri
Multiple Canonical Models
Multiple Desktops
Multiple Mobiles
Multiplicity Not Cardinality
Music2005
Musings on Ebooks
Muted spaghetti line charts with R's ggplot2
My Book Colophon
My favorite musical discoveries of 2020
My favorite musical discoveries of 2021
Nashville Project
Neologism
Net Nastiness
Network Data Model
Nexus7
No DBA
No Silver Bullet Reloaded
NoSQL Distilled
Nosql Definition
Not Just Code Monkeys (OOP 2014)
OOPSLA 2004
OOPSLA 2005
Object Mother
Objects And Iteration
Observable State
Observed Requirement
On Pair Programming
On the Diverse And Fantastical Shapes of Testing
Once Upona Time In The West
One Language
One Line of Code that Compromises Your Server
Onsite Customer
Open Inheritance
Open Intellectual Property
Open Source Research
Open Space
Opportunistic Refactoring
Organization Structures (Accountability)
Organizing Presentation Logic
Orm Hate
Oslo
Our Responsibility to Defeat Mass Surveillance
Our Responsibility to Defeat Mass Surveillance
Outcome Oriented
Outcome Over Output
Output Build Target
Overloaded Getter Setter
P O J O
Package Customization
Page Object
Pair Programming
Pair Programming Misconceptions
Parallel Change
Parser Fear
Pattern Share
Pattern: Gateway
Patterns
Patterns Are Nothing New
Patterns for Accounting
Patterns for Managing Source Code Branches
Patterns for things that change with time
Patterns of Distributed Systems
Patterns of Enterprise Application Architecture
Patterns of Legacy Displacement
Pedestal Phobia
Pending Head
People Matter Most
People Oriented
Perspectives on DSLs with Chris Sells
Pervasive Versioning
Phoenix Server
Planning Extreme Programming
Planning and Running an XP Iteration
Platform Building
Platform Independent Malapropism
Playlist of my talks on YouTube
Pleasing The Customer
Podcast on Agility and Architecture
Podcasts
Polyglot Persistence
Post Modern Programming
Post-IntelliJ
Pourquoi, pas comment
Prefer Design Skills
Prefer Functional Staff Organization
Premature Ramp Up
Presentation Domain Data Layering
Presentation Domain Separation
Presentation Smells
Priming Prime Directive
Principles of XP
Privacy Protects Bothersome People
Privacy on the internet
Probabilistic Illiteracy
Product-Service Partnerships
Products Over Projects
Projectional Editing
Protected Data
Protected Variation: The Importance of Being Closed
Provide Service Stub
Public Csharp Fields
Public versus Published Interfaces
Published Interface
Pull Request
Purpose Of Estimation
QA in Production
Quantity
Question Time Panel
Race for the Galaxy and San Juan
RailsConf 2007
Range
Recollections of Writing the Agile Manifesto
Recurring Event in Calendars
Reducing Coupling
Refactoring
Refactoring Boundary
Refactoring Code to Load a Document
Refactoring Cringely
Refactoring Databases
Refactoring Guide
Refactoring HTML
Refactoring Malapropism
Refactoring Module Dependencies
Refactoring Photran
Refactoring Ruby Edition
Refactoring a JavaScript video store
Refactoring code that accesses external services
Refactoring to Patterns
Refactoring to an Adaptive Model
Refactoring with Loops and Collection Pipelines
Refactoring: Doing Design After the Program Runs
Refactoring: This class is too large
Refinement Code Review
Reflection vs Code Generation
Relational Data Model
Remote versus Co-located Work
Replacing Throwing Exceptions with Notification in Validations
Reporting Database
Reproducible Build
Request Stream Map
Required Interface
Resource Pool
Restoring a deleted note in Apple's notes app
Revitalizing Enterprise Software
Richardson Maturity Model
Rigorous Agile
Role Interface
Roller Skate Implementation
Rotation
Roy sells Thoughtworks
Roys Social Experiment
Rss Feeds
Ruby Annotations
Ruby Microsoft
Ruby People
Ruby Ploticus
Ruby Rogues Podcast on Refactoring
Ruby Rogues episode discussing P of EAA
Ruby at Thoughtworks
Rule Of Tincture
Rules Engine
SE Radio Podcast on Agile Database Development
SE Radio Podcast on Domain-Specific Languages
Saba
Sacrificial Architecture
Savannah Charleston
Scaling the Practice of Architecture, Conversationally
Schemaless Data Structures
Schools Of Software Development
Scope Limbering
Seal
Security And Design
Seedwork
Segmentation By Freshness
Segregated DOM
Selecting a Mobile Implementation Strategy
Self Encapsulation
Self Initializing Fake
Self Testing Code
Semantic Conflict
Semantic Diff
Semantic Diffusion
Semat
Separating User Interface Code
Serverless
Serverless Architectures
Service Custodian
Service Design Patterns
Service Oriented Ambiguity
Setter Initialization
Setting up a ruby development VM with Vagrant, Chef, and rbenv
Shifting To Code Ownership
Ship / Show / Ask
Should social media dampen uncertain stories?
Shu Ha Ri
Signature Series Criteria
Singing Detective
Site Report for 2018
Slideument
Slimp3
Smalltalk Books
Smut On Rails
Snow Leopard
Snowflake Server
Social Networks
Software Component
Software Development Attitude
Software Patent
Software and Obama's Victory
Sony a6000 with 16-70mm lens
Source Editing
Specification
Specification By Example
Spreading Incrementalism
Squeezebox
Standard Story Points
Standards Speak
State Of Dev Ops Report
Static Substitution
Status Report for martinfowler.com at the end 2014
Stepping Back from Speaking
Sticky Timeline
Story Counting
Story Point
Story Test
Strangler Fig Application
Subcutaneous Test
Subversion
Suite Of Talks
Sunk Cost Driven Architecture
Swebok
Syntactic Noise
Synthetic Monitoring
Talk Notes
Talk: 3.years.of(:ruby)
Talk: A Conversation about Hexagonal Rails
Talk: Agile Architecture
Talk: Agile Essence and Fluency
Talk: Agile Manifesto: 10 years later
Talk: Agilists and Architects: Allies not Adversaries
Talk: An Enterprise Cumulonimbus?
Talk: An Introduction to Language-Oriented Programming
Talk: Architecture without Architects
Talk: Continuous Delivery
Talk: Continuous Delivery (YOW 2011)
Talk: Cultivating Architecture
Talk: Does my bus look big in this?
Talk: Economics of Software Design
Talk: Event Sourcing
Talk: Evolving a Mobile Implementation Strategy
Talk: Forging a New Alliance
Talk: Infrastructure as Code
Talk: Interview: Privacy on the Internet
Talk: Introduction to NoSQL
Talk: Is TDD Dead?
Talk: Making Architecture Matter
Talk: Microservices
Talk: NoSQL and Consistency
Talk: Non-Determinism and Testing
Talk: Not Just Code Monkeys
Talk: Our Responsibility to Defeat Mass Surveillance
Talk: Practices for an Agile Codebase
Talk: Retake on the Agile Manifesto
Talk: Schemaless
Talk: Technology in the Obama Campaign
Talk: The Evolving Panorama of Data
Talk: The Many Meanings of Event-Driven Architecture
Talk: The Yawning Crevasse of Doom”
Talk: What Does Tech Excellence Look Like?
Talk: Why Agile Software Works
Talk: Workflows of Refactoring
Talks on schemalessness, consistency in NoSQL, and economics of software design
Team Room
Technical Debt
Technical Debt Quadrant
Technical Staff Organization
Tell Dont Ask
Temporal Patterns
Test Cancer
Test Coverage
Test Double
Test Driven Development
Test Invariant
Test Pyramid
Testing Asynchronous JavaScript
Testing Language
Testing Methods: The Ugly Duckling
Testing Resource Pools
Testing Strategies in a Microservice Architecture
The Agile Fluency Model
The Almighty Thud
The Architect Elevator — Visiting the upper floors
The Architecture of Gap Inc's SCMS
The Architecture of the Morrison's OrderPad
The Basics of Web Application Security
The Death of Goldman Sachs
The Difference between Marketecture and Tarchitecture
The Elephant in the Architecture
The Evolving Panorama of Data
The Evolving Role of Data in Software Development
The Future is not NoSQL but Polyglot Persistence
The LMAX Architecture
The Lies that can Undermine Democracy
The Manifesto for Agile Software Development - an early article.
The Most Important Design Guideline?
The New Methodology
The People vs. NoSQL Databases: Panel Discussion
The Practical Test Pyramid
The Rise of Test Impact Analysis
The Role of an Enterprise Architect in a Lean Enterprise
The Second Edition of “Refactoring”
The State of Agile Software in 2018
The Test Bus Imperative
The Thrilling Adventures of Lovelace and Babbage
The XP 2000 Conference
The XP 2002 Conference
The Yawning Crevasse of Doom
The strong and weak forces of architecture
Thinking about Big Data
Thoughts writing a Google App script
Thoughtworks 2005
Thoughtworks China
Thoughtworks Technology Radar FAQ
Thoughtworks UK
Three Pillars
Three Years of Real-World Ruby
Threshold Test
Thrown Estimate
Thunderbolt Display
Time Zone Uncertainty
To Be Explicit
Tolerant Reader
Tor for Technologists
Touch File
Toyota Failings
Tradable Quality Hypothesis
Trans Media Application
Transactionless
Translations
Transparent Compilation
Travel Clothing
Two Hard Things
Two Stack CMS
Type Instance Homonym
Typed Collection
U Pod
UML Diagrams for Analysis Patterns
UML Distilled
Ubiquitous Language
Ui Patterns Readings
Uml Activity Diagram
Uml As Blueprint
Uml As Notes
Uml As Programming Language
Uml As Sketch
Uml Mode
Uml Sketching Tools
Uml2
Unforgiven Contract
Uniform Access Principle
Unit Test
Unwanted Modeling Language
Use Case
Use Cases And Stories
Use Of Xml
Use and Abuse Cases
User Defined Field
User Journey Test
User Story
Using Metadata
Using a command line script to export from OmniGraffle
Using an Agile Software Process with Offshore Development
Using the Rake Build Language
Utility Vs Strategic Dichotomy
Value Object
Variations on a Theme of XP
Vcs Survey
Version Control Tools
Very Low Defect Project
Video: Introduction to Domain Specific Languages
Visual Channel
Viticulture and The Gallerist
Voting Machines
Wardish
Waterfall Process
Web2.0
What I Talk About When I Talk About Platforms
What Is Failure
What Isa Bliki
What It's Like to Work at…Thoughtworks
What do you mean by “Event-Driven”?
What's a Model For?
When to Make a Type
Who Needs an Architect?
Wikipedia Death
Workflows of Refactoring
Workflows of Refactoring (OOP 2014)
Writing Software Patterns
Writing The Agile Manifesto
Writing with XML
Xp Velocity
Xunit
YAaaS
Yagni
Yesterdays Weather
Yet Another Optimization Article
You Can't Buy Integration
Your Coffee Shop Does Not Use Two-Phase Commit
goto Aarhus 2011
goto Aarhus 2012
iPad
xUnit Test Patterns
All tags 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 · 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
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
All Content
Programming: Programming languages
Variables and Data Types, Control Structures, Functions and Methods, Object-Oriented Programming (OOP), Functional Programming, Procedural Programming, Event-Driven Programming, Concurrent and Parallel Programming, Error Handling and Debugging, Memory Management, Recursion, Algorithms, Data Structures, Design Patterns, Software Development Life Cycle (SDLC), Version Control Systems, Database Programming, Web Development, Mobile App Development, Game Development, Machine Learning and AI Programming, Network Programming, API Development, Security in Programming, Testing and Quality Assurance, User Interface and User Experience Design, Scripting Languages, Assembly Language, High-Level Programming Languages, Low-Level Programming Languages, Compiler Design, Interpreter Design, Garbage Collection, Regular Expressions, Graphical User Interface (GUI) Programming, Command Line Interface Development, Cross-Platform Development, Cloud Computing in Programming, Blockchain Programming, IoT Programming, Embedded Systems Programming, Microservices Architecture, Serverless Architecture, Big Data Technologies, Data Visualization, Data Mining and Analysis, Natural Language Processing (NLP), Computer Graphics Programming, Virtual Reality (VR) Development, Augmented Reality (AR) Development, Cryptography in Programming, Distributed Systems, Real-Time Systems Programming, Operating System Development, Compiler and Interpreter Development, Quantum Computing, Software Project Management, Agile Methodologies, DevOps Practices, Continuous Integration and Continuous Deployment (CI/CD), Software Maintenance and Evolution, Software Licensing, Open Source Development, Accessibility in Software Development, Internationalization and Localization, Performance Optimization, Scalability Techniques, Code Refactoring, Design Principles, API Design, Data Modeling, Software Documentation, Peer-to-Peer Networking, Socket Programming, Front-End Development, Back-End Development, Full Stack Development, Secure Coding Practices, Code Reviews, Unit Testing, Integration Testing, System Testing, Functional Programming Paradigms, Imperative Programming, Declarative Programming, Software Architecture, Cloud-Native Development, Infrastructure as Code (IaC), Ethical Hacking for Developers, Artificial Intelligence Ethics in Programming, Software Compliance and Standards, Software Auditing, Debugging Tools and Techniques, Code Optimization Techniques, Software Deployment Strategies, End-User Computing, Computational Thinking, Programming Logic and Techniques, Advanced Data Management
Agile, algorithms, APIs, asynchronous programming, automation, backend, CI/CD, classes, CLI, client-side, cloud (Cloud Native-AWS-Azure-GCP-IBM Cloud-IBM Mainframe-OCI), comments, compilers, concurrency, conditional expressions, containers, control flow, databases, data manipulation, data persistence, data science, data serialization, data structures, dates and times, debugging, dependency injection, design patterns, DevOps, distributed software, Docker, error handling, file I/O, frameworks, frontend, functions, functional programming, GitHub, history, Homebrew, IDEs, installation, JetBrains, JSON, JSON Web Token (JWT), K8S, lambdas, language spec, libraries, linters, Linux, logging, macOS, methods, ML, microservices, mobile dev, modules, monitoring, multi-threaded, network programming, null, numbers, objects, object-oriented programming, observability, OOP, ORMs, packages, package managers, performance, programmers, programming, reactive, refactoring, reserved words, REST APIs, RHEL, SDK, secrets, security, serverless, server-side, Snapcraft, SQL, StackOverflow, standards, standard library, statements, scope, scripting, syntax, systems programming, TDD, testing, tools, type system, web dev, variables, versions, Ubuntu, unit testing, Windows; topics-courses-books-docs. (navbar_programming - see also navbar_variables, navbar_programming_libraries, navbar_data_structures, navbar_algorithms, navbar_software_architecture, navbar_agile)
© 1994 - 2024 Cloud Monk Losang Jinpa or Fair Use. Disclaimers
SYI LU SENG E MU CHYWE YE. NAN. WEI LA YE. WEI LA YE. SA WA HE.