User Tools

Site Tools


martin_fowler

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

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

https://martinfowler.com/tags/index.html

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)


Cloud Monk is Retired (for now). Buddha with you. © 2005 - 2024 Losang Jinpa or Fair Use. Disclaimers

SYI LU SENG E MU CHYWE YE. NAN. WEI LA YE. WEI LA YE. SA WA HE.


martin_fowler.txt · Last modified: 2022/10/11 19:40 by 127.0.0.1