Martin Fowler — 作者 (15)
NoSQL Distilled [图书] 豆瓣 Goodreads
作者: Pramod J. Sadalage / Martin Fowler publishing house: Addison-Wesley Professional 2012 - 8
The need to handle increasingly larger data volumes is one factor driving the adoption of a new class of nonrelational "NoSQL" databases. Advocates of NoSQL databases claim they can be used to build systems that are more performant, scale better, and are easier to program. NoSQL Distilled is a concise but thorough introduction to this rapidly emerging technology. Pramod J. Sadalage and Martin Fowler explain how NoSQL databases work and the ways that they may be a superior alternative to a traditional RDBMS. The authors provide a fast-paced guide to the concepts you need to know in order to evaluate whether NoSQL databases are right for your needs and, if so, which technologies you should explore further. The first part of the book concentrates on core concepts, including schemaless data models, aggregates, new distribution models, the CAP theorem, and map-reduce. In the second part, the authors explore architectural and design issues associated with implementing NoSQL. They also present realistic use cases that demonstrate NoSQL databases at work and feature representative examples using Riak, MongoDB, Cassandra, and Neo4j. In addition, by drawing on Pramod Sadalage's pioneering work, NoSQL Distilled shows how to implement evolutionary design with schema migration: an essential technique for applying NoSQL databases. The book concludes by describing how NoSQL is ushering in a new age of Polyglot Persistence, where multiple data-storage worlds coexist, and architects can choose the technology best optimized for each type of data access.
重构 [图书] 豆瓣
Refactoring: Improving the Design of Existing Code
8.7 (6 个评分) 作者: Martin Fowler 译者: 熊节 publishing house: 中国电力出版社 2003 - 8
Martin Fowler和《重构:改善既有代码的设计》(中文版)另几位作者清楚揭示了重构过程,他们为面向对象软件开发所做的贡献,难以衡量。《重构:改善既有代码的设计》(中文版)解释重构的原理(principles)和最佳实践方式(best practices),并指出何时何地你应该开始挖掘你的代码以求改善。《重构:改善既有代码的设计》(中文版)的核心是一份完整的重构名录(catalog of refactoring),其中每一项都介绍一种经过实证的代码变换手法(code transformation)的动机和技术。某些项目如Extract Method和Move Field看起来可能很浅显,但不要掉以轻心,因为理解这类技术正是有条不紊地进行重构的关键。点击进入该书更多详细信息。
分析模式 [图书] 豆瓣
Analysis Patterns: Reusable Object Models
作者: Martin Fowler 译者: 樊东平 / 张路 publishing house: 机械工业出版社 2010 - 7
本书的作者Martin Fowler是国际著名的OO专家,敏捷开发方法的创始人之一,现为ThoughtWorks公司的首席科学家,本书是作者的代表作之一,深受业界专业人士和广大读者的好评,经久不衰。
本书讲述各种分析模式(即来自概念性业务模型的模式)和支持模式(即讲述如何使用分析模式的辅助性模式),把论述重点放在介绍面向对象分析和设计的最终结果—即模型本身。作者透过平实朴素的语言,将自己丰富的对象建模经验与读者分享,使读者可以马上采纳这些经验性模式。
本书适合的读者范围非常广:面向对象的计算机分析人员和设计人员(尤其是那些参与系统分析的人员)、数据建模人员、编程人员以及专业的软件工程师都可以从本书中获得宝贵的知识和经验。
本书赞誉:
“本书是对不断发展的模式文献的一个重要贡献。它捕捉来自不同领域的深奥的对象建模专业知识,形成一个模式目录。这些领域模式将有助于你解决不同领域中具有挑战性的建模问题。”
———Erich Gamma
“Martin Fowler为我们给出答案,而不仅仅是一个可以找到这些答案的过程。在本书中,透过作者平实朴素的语言,你将找到自己下一个业务对象模型的重要内容。”
———Ward Cunningham
“就像‘四人帮’在他们的经典著作《设计模式》中总结出了通用的设计模式,Martin Fowler在这本让人期待已久的书中为我们总结出应用领域的诸多模式。本书是从事面向对象业务建模和业务过程重组工作的所有分析人员和设计人员的必备之书。”
——Donald G. Firesmith
Refactoring [图书] 豆瓣
作者: Jay Fields / Shane Harvie publishing house: Addison-Wesley Professional 2009 - 10
The Definitive Refactoring Guide, Fully Revamped for Ruby With refactoring, programmers can transform even the most chaotic software into well-designed systems that are far easier to evolve and maintain. What,s more, they can do it one step at a time, through a series of simple, proven steps. Now, there,s an authoritative and extensively updated version of Martin Fowler,s classic refactoring book that utilizes Ruby examples and idioms throughout-not code adapted from Java or any other environment. The authors introduce a detailed catalog of more than 70 proven Ruby refactorings, with specific guidance on when to apply each of them, step-by-step instructions for using them, and example code illustrating how they work. Many of the authors, refactorings use powerful Ruby-specific features, and all code samples are available for download. Leveraging Fowler,s original concepts, the authors show how to perform refactoring in a controlled, efficient, incremental manner, so you methodically improve your code,s structure without introducing new bugs. Whatever your role in writing or maintaining Ruby code, this book will be an indispensable resource. This book will help you * Understand the core principles of refactoring and the reasons for doing it * Recognize "bad smells" in your Ruby code * Rework bad designs into well-designed code, one step at a time * Build tests to make sure your refactorings work properly * Understand the challenges of refactoring and how they can be overcome * Compose methods to package code properly * Move features between objects to place responsibilities where they fit best * Organize data to make it easier to work with * Simplify conditional expressions and make more effective use of polymorphism * Create interfaces that are easier to understand and use * Generalize more effectively * Perform larger refactorings that transform entire software systems and may take months or years * Successfully refactor Ruby on Rails code
Refactoring [图书] 豆瓣 Goodreads
作者: Martin Fowler / Kent Beck publishing house: Addison-Wesley Professional 1999 - 7
Refactoring is about improving the design of existing code. It is the process of changing a software system in such a way that it does not alter the external behavior of the code, yet improves its internal structure. With refactoring you can even take a bad design and rework it into a good one. This book offers a thorough discussion of the principles of refactoring, including where to spot opportunities for refactoring, and how to set up the required tests. There is also a catalog of more than 40 proven refactorings with details as to when and why to use the refactoring, step by step instructions for implementing it, and an example illustrating how it works The book is written using Java as its principle language, but the ideas are applicable to any OO language.
重构 [图书] 豆瓣
Refactoring: Improving the Design of Existing Code
8.5 (20 个评分) 作者: Martin Fowler 译者: 熊节 publishing house: 人民邮电出版社 2010
重构,一言以蔽之,就是在不改变外部行为的前提下,有条不紊地改善代码。多年前,正是本书原版的出版,使重构终于从编程高手们的小圈子走出,成为众多普通程序员日常开发工作中不可或缺的一部分。本书也因此成为与《设计模式》齐名的经典著作,被译为中、德、俄、日等众多语言,在世界范围内畅销不衰。
本书凝聚了软件开发社区专家多年摸索而获得的宝贵经验,拥有不因时光流逝而磨灭的价值。今天,无论是重构本身,业界对重构的理解,还是开发工具对重构的支持力度,都与本书最初出版时不可同日而语,但书中所蕴涵的意味和精华,依然值得反复咀嚼,而且往往能够常读常新。
重构 [图书] 豆瓣
作者: Jay Fields / Shane Harvie 译者: 徐旭铭 publishing house: 机械工业出版社 2010
差不多十年前,我(Martin)曾经和Kent Beck一起做过一个项目。这个项目的名字叫C3,它后来成为极限编程诞生的标志性项目,并帮助我们看清了敏捷软件运动的方向。
我们从那个项目里学到了很多东西,不过真正震撼到我的是Kent那种有条不紊、持续不断改进系统设计的风格。一直以来我对编写干净的代码都抱有极大的热情,坚信花时间去清理有问题的代码,以便让团队能更快捷地开发功能是非常有价值的事情。而Kent向我介绍了一种很多顶尖Smalltalk程序员使用的技术,它能让我的工作效率成倍提升。这是一种他们称之为重构的技术,我很快就变得想要在任何场合下都把它介绍给别人。但是市面上没有任何出版物或是类似的资源可以让我指引人们去自己学习这项技术。既然Kent和其他Smalltalk程序员都没意愿要写一本,所以我就决定自己动手了。
结果我的那本《重构》大受欢迎,在重构成为主流技术的过程中看起来还扮演了相当重要的角色。随着近年来Ruby的兴起,给这本书写一本Ruby版是很有意义的,为此我拉来了Jay和Shane。
Patterns of Enterprise Application Architecture [图书] 豆瓣 Goodreads
Patterns of Enterprise Application Architecture
作者: Martin Fowler publishing house: Addison-Wesley Professional 2002 - 11
The practice of enterprise application development has benefited from the emergence of many new enabling technologies. Multi-tiered object-oriented platforms, such as Java and .NET, have become commonplace. These new tools and technologies are capable of building powerful applications, but they are not easily implemented. Common failures in enterprise applications often occur because their developers do not understand the architectural lessons that experienced object developers have learned. Patterns of Enterprise Application Architecture is written in direct response to the stiff challenges that face enterprise application developers. The author, noted object-oriented designer Martin Fowler, noticed that despite changes in technology--from Smalltalk to CORBA to Java to .NET--the same basic design ideas can be adapted and applied to solve common problems. With the help of an expert group of contributors, Martin distills over forty recurring solutions into patterns. The result is an indispensable handbook of solutions that are applicable to any enterprise application platform. This book is actually two books in one. The first section is a short tutorial on developing enterprise applications, which you can read from start to finish to understand the scope of the book's lessons. The next section, the bulk of the book, is a detailed reference to the patterns themselves. Each pattern provides usage and implementation information, as well as detailed code examples in Java or C#. The entire book is also richly illustrated with UML diagrams to further explain the concepts. Armed with this book, you will have the knowledge necessary to make important architectural decisions about building an enterprise application and the proven patterns for use when building them. The topics covered include * Dividing an enterprise application into layers * The major approaches to organizing business logic * An in-depth treatment of mapping between objects and relational databases * Using Model-View-Controller to organize a Web presentation * Handling concurrency for data that spans multiple transactions * Designing distributed object interfaces
企业应用架构模式 [图书] 豆瓣
Patterns of Enterprise Application Architecture
作者: Martin Fowler / 王怀民 译者: 王怀民 / 周斌 publishing house: 机械工业出版社 2004 - 7
本书作者是当今面向对象软件开发的权威,他在一组专家级合作者的帮助下,将40多种经常出现的解决方案转化成模式,最终写成这本能够应用于任何一种企业应用平台的、关于解决方案的、不可或缺的手册。本书获得了2003年度美国软件开发杂志图书类的生产效率奖和读者选择奖。本书分为两大部分。第一部分是关于如何开发企业应用的简单介绍。第二部分是本书的主体,是关于模式的详细参考手册,每个模式都给出使用方法和实现信息,并
Refactoring [图书] 豆瓣 Goodreads
作者: Martin Fowler publishing house: Addison Wesley 2018 - 11 其它标题: Refactoring: Improving the Design of Existing Code
Refactoring is about improving the design of existing code. It is the process of changing a software system in such a way that it does not alter the external behavior of the code, yet improves its internal structure. With refactoring you can even take a bad design and rework it into a good one. This book offers a thorough discussion of the principles of refactoring, including where to spot opportunities for refactoring, and how to set up the required tests. There is also a catalog of more than 40 proven refactorings with details as to when and why to use the refactoring, step by step instructions for implementing it, and an example illustrating how it works The book is written using Java as its principle language, but the ideas are applicable to any OO language.
Features
The first update to a classic that is the standard reference for refactoring in over 15 years
Enhanced, web-based features including interactive examples, video snippets, code highlighting
Extensive use of JavaScript examples
New to This Edition
Martin Fowler is retaining everything that made Refactoring one of the world’s most popular and influential computer books, while updating with JavaScript examples throughout (to address many programmers’ current preferences) and reflecting today’s programming paradigms. The book’s catalog of individual refactorings has been updated, revised, and expanded.
规划极限编程 [图书] 豆瓣
作者: Kent Beck / Martin Fowler 译者: 曹济 2002 - 6
极限编程(XP)是一种经历过实践考验的轻量级软件开发方法学。制订计划是解决XP难题的关键一环,本书介绍了如何应用XP规划软件项目。
本书通过27章的篇幅探讨了怎样为XP项目的软件开发制订计划并跟踪开发过程。第1章至第4章介绍了为什么需要制定项目计划以及计划的目的;第5章概括性论述了XP项目;之后的第6章至第9章介绍了XP项目需循的一些原则;第10章至第16章介绍了发布计划并讨论了发布计划的各项要素;第17章至第19章介绍了迭代计划;第20章至第26章介绍了其他有关XP项目规划的内容,最后一章提供了让XP计划更适合自己情况的策略。
本书内容均来自于两位作者担任顾问和讲师的经验以及日益壮大的先期使用XP人员的经验。本书以讲故事的方式讲解枯燥的软件开发过程,实用性与可读性较强,语言轻松活泼,适合于软件开发人员、软件项目管理人员,以及所有想要了解XP的各界人士参考。
NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence [图书]
作者: Pramod J. Sadalage / Martin Fowler publishing house: Addison-Wesley Professional 2012 - 8
The need to handle increasingly larger data volumes is one factor driving the adoption of a new class of nonrelational "NoSQL" databases. Advocates of NoSQL databases claim they can be used to build systems that are more performant, scale better, and are easier to program." ""NoSQL Distilled" is a concise but thorough introduction to this rapidly emerging technology. Pramod J. Sadalage and Martin Fowler explain how NoSQL databases work and the ways that they may be a superior alternative to a traditional RDBMS. The authors provide a fast-paced guide to the concepts you need to know in order to evaluate whether NoSQL databases are right for your needs and, if so, which technologies you should explore further. The first part of the book concentrates on core concepts, including schemaless data models, aggregates, new distribution models, the CAP theorem, and map-reduce. In the second part, the authors explore architectural and design issues associated with implementing NoSQL. They also present realistic use cases that demonstrate NoSQL databases at work and feature representative examples using Riak, MongoDB, Cassandra, and Neo4j. In addition, by drawing on Pramod Sadalage's pioneering work, "NoSQL Distilled" shows how to implement evolutionary design with schema migration: an essential technique for applying NoSQL databases. The book concludes by describing how NoSQL is ushering in a new age of Polyglot Persistence, where multiple data-storage worlds coexist, and architects can choose the technology best optimized for each type of data access.
Refactoring [图书] 谷歌图书
作者: Martin Fowler / Kent Beck publishing house: Addison-Wesley 2012 - 03
As the application of object technology--particularly the Java programming language--has become commonplace, a new problem has emerged to confront the software development community. Significant numbers of poorly designed programs have been created by less-experienced developers, resulting in applications that are inefficient and hard to maintain and extend. Increasingly, software system professionals are discovering just how difficult it is to work with these inherited, "non-optimal" applications. For several years, expert-level object programmers have employed a growing collection of techniques to improve the structural integrity and performance of such existing software programs. Referred to as "refactoring," these practices have remained in the domain of experts because no attempt has been made to transcribe the lore into a form that all developers could use. . .until now. In Refactoring: Improving the Design of Existing Code, renowned object technology mentor Martin Fowler breaks new ground, demystifying these master practices and demonstrating how software practitioners can realize the significant benefits of this new process. With proper training a skilled system designer can take a bad design and rework it into well-designed, robust code. In this book, Martin Fowler shows you where opportunities for refactoring typically can be found, and how to go about reworking a bad design into a good one. Each refactoring step is simple--seemingly too simple to be worth doing. Refactoring may involve moving a field from one class to another, or pulling some code out of a method to turn it into its own method, or even pushing some code up or down a hierarchy. While these individual steps may seem elementary, the cumulative effect of such small changes can radically improve the design. Refactoring is a proven way to prevent software decay. In addition to discussing the various techniques of refactoring, the author provides a detailed catalog of more than seventy proven refactorings with helpful pointers that teach you when to apply them; step-by-step instructions for applying each refactoring; and an example illustrating how the refactoring works. The illustrative examples are written in Java, but the ideas are applicable to any object-oriented programming language.
Refactoring: Improving the Design of Existing Code (Addison-Wesley Signature Series [图书] Goodreads
作者: Martin Fowler publishing house: Addison-Wesley Professional 2018 - 11
"Whenever you read [ Refactoring ], it’s time to read it again. And if you haven’t read it yet, please do before writing another line of code." –David Heinemeier Hansson, Creator of Ruby on Rails, Founder & CTO at Basecamp




Fully Revised and Updated—Includes New Refactorings and Code Examples



“Any fool can write code that a computer can understand. Good programmers write code that humans can understand.”
–M. Fowler (1999)

For more than twenty years, experienced programmers worldwide have relied on Martin Fowler’s Refactoring to improve the design of existing code and to enhance software maintainability, as well as to make existing code easier to understand.


This eagerly awaited new edition has been fully updated to reflect crucial changes in the programming landscape.
Refactoring, Second Edition,
features an updated catalog of refactorings and includes JavaScript code examples, as well as new functional examples that demonstrate refactoring without classes.




Like the original, this edition explains what refactoring is; why you should refactor; how to recognize code that needs refactoring; and how to actually do it successfully, no matter what language you use.

Understand the process and general principles of refactoring Quickly apply useful refactorings to make a program easier to comprehend and change Recognize “bad smells” in code that signal opportunities to refactor Explore the refactorings, each with explanations, motivation, mechanics, and simple examples Build solid tests for your refactorings Recognize tradeoffs and obstacles to refactoring Includes free access to the canonical web edition, with even more refactoring resources. (See inside the book for details about how to access the web edition.)