读Martin Fowler's 《Patterns of Enterprise Application Architecture》有感

作为一本技术指导书,显然这本书有些outdated了,但想想现在的一些框架,架构正是基于这本书的思想构建的,还是不免对作者当时的Vision感到钦佩。出于对这些思想本源的追索,以及对历史的追溯。还是很有必要浏览这本经典著作的,对于这个500页的书,我看的比较快,只是跳一些感兴趣的点着重看下,事实证明还是很有收获的。


POJO

  • 起源:J2EE才出现时,尽管EJB2.0 特别是它的Entity Bean 给开发和调试带来了很多不便,但是在vendor的怂恿和对新技术的盲从下,很多公司还是采用了这个后来被证明是worst practice的技术。(记得当时我第一家公司就是用了CMB)作者认为人们忽略原来标准的java object 而去用这些container-based object 是因为这些regular java object没有个好听的名字,所以在准备2000 java one大会的时候,Rebecca, Josh and Martin give them one: POJO (plain old Java objects)

  • 收获:我开始以为POJO就是贫血的Domain Object,里面只有fields and setter, getter。 而现在知道POJO是针对那些依赖框架的Java Objects而言的,不依赖任何框架的Java Object 就是POJO,依赖框架的坏处是调试和测试都很麻烦,像EJB2.0,Struts1等。

  • 演变:现在的主流架构应该都支持POJO了,也就是实现类不需要依赖框架的Object了,例如EJB3.0, Struts2等

DTO

  • 起源:作为Remote Call往往需要比较大的overhead,所以一个基本原则就是尽量减少remote call,这就需要我们暴露给client的interface最好是coarse-grained(粗粒度的),一个用来在不同App之间传输Data的Object DTO(Data Transfer Object) 应运而生了。

  • 收获:开始以为DTO就是简单对DO进行1对1的wrap,所以很不理解这样做得必要性。其实DTO并不是对DO的1对1包装,而是一个DTO aggregates 多个DO的信息,这样client 就能在一次Call中得到足够的信息。
    引用原文的话:“If a remote object requests data about an order object, the returned Data Transfer Object will contain data from the order, the customer, the line items,the products on the line items, the delivery information- all sorts of stuff."



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Enterprise Application Architecture with .NET Core by Ganesan Senthilvel English | 25 Apr. 2017 | ASIN: B01M18CQNP | 564 Pages | AZW3 | 9.94 MB Architect and design highly scalable, robust, clean and highly performant applications in .NET Core 1.0 About This Book Incorporate architectural soft-skills such as DevOps and Agile methodologies to enhance program-level objectives Gain knowledge of architectural approaches on the likes of SOA architecture and microservices to provide traceability and rationale for architectural decisions Explore a variety of practical use cases and code examples to implement the tools and techniques described in the book Who This Book Is For This book is for experienced .NET developers who are aspiring to become architects of enterprise-grade applications, as well as software architects who would like to leverage .NET to create effective blueprints of applications. What You Will Learn Grasp the important aspects and best practices of application lifecycle management Leverage the popular ALM tools, application insights, and their usage to monitor performance, testability, and optimization tools in an enterprise Explore various authentication models such as social media-based authentication, 2FA and OpenID Connect, learn authorization techniques Explore Azure with various solution approaches for Microservices and Serverless architecture along with Docker containers Gain knowledge about the recent market trends and practices and how they can be achieved with .NET Core and Microsoft tools and technologies In Detail If you want to design and develop enterprise applications using .NET Core as the development framework and learn about industry-wide best practices and guidelines, then this book is for you. The book starts with a brief introduction to enterprise architecture, which will help you to understand what enterprise architecture is and what the key components are. It will then teach you about the types of patterns and the princip
### 回答1: Martin Fowler是一位资深的软件工程师和重构领域的权威,他是《重构:改善既有代码的设计》的作者。他的这本书是现代软件开发中关于重构的经典之作,演示了如何通过重构提高代码质量和可维护性。 针对Martin Fowler重构的epub版本,我认为由于电子书可以方便地进行修改和更新,可以通过重构来改进书籍的质量和阅体验。具体来说,以下是一些可能的重构方法和目标: 1. 改善代码结构:通过调整章节和段落的顺序,优化内容的逻辑结构,使者能更容易地理解和消化书中的知识。 2. 优化代码风格:检查并统一使用一致的格式和命名规范,使整个电子书的风格统一、易。 3. 提升可维护性:识别和重构书中重复的内容或主题,并将其合并或抽取为可重复使用的模块,以减少冗余并改进维护效率。 4. 增加交互性:通过添加链接、图表、代码片段等元素,提供更多参考和实例,使者能更直观地理解和应用重构技巧。 5. 修复错误和不精确的描述:通过修复错误和澄清模糊的描述,提升书籍的准确性和可靠性。 总之,将Martin Fowler的重构书籍转换为epub格式并进行重构有助于改进者的阅体验,并使书籍更加易、易懂和易用。重构不仅仅是应用于代码,它也适用于提升文档和书籍的质量,使其能够更好地满足者的需求。 ### 回答2: Martin Fowler是软件开发领域的知名专家,他对重构方法论的贡献得到了广泛的认可和赞赏。他的著作《重构——改善既有代码的设计》是软件开发领域得一本经典之作,是指导开发人员如何改进既有代码质量的重要参考资料。今年,Martin Fowler将他的《重构》一书发布为epub格式,这将为者提供更方便的阅方式,并且可以在不同的电子阅设备上进行阅。 这本epub版的《重构》将保留原书中的核心理论和实践原则,同时结合电子书的优势,添加了更好的排版和导航功能。者在使用电子阅设备阅时,可以根据自己的喜好调整字体大小和样式,从而提升阅的舒适度。此外,epub版还可以自动调整页面布局,适应不同尺寸的屏幕,使得阅体验更加便捷。 另外,这个epub版的《重构》还将添加更多的交互和导航功能。比如,者可以通过目录快速跳转到感兴趣的章节或小节,也可以在书中进行全文搜索,方便查找相关内容。书中还将包含丰富的示例和案例,以帮助者更好地理解重构的概念和应用。 总之,Martin Fowler发布的epub版《重构》将为者提供更加便利和丰富的阅体验。不仅可以随时随地地进行阅,同时还可以利用其交互和导航功能更好地学习和实践重构方法。无论是软件开发人员还是对软件设计感兴趣的者,这本epub版的《重构》都将成为他们不可或缺的学习资料。 ### 回答3: 马丁·福勒(Martin Fowler)是一位知名的软件开发专家和架构师,他是《重构》这本经典著作的作者之一。他在书中详细介绍了软件开发中的重构概念和技术,并为开发人员提供了一套实用的方法和技巧,使得他们能够改善现有代码的质量和可维护性。 重构是指在不改变现有功能的情况下,通过修改代码的内部结构和设计来提高代码的质量和可性。福勒提出了一系列的重构方法,包括提取方法、内联方法、重命名变量等等。他强调通过频繁的重构来保持代码的整洁和可维护性,从而降低开发过程中的风险和成本。这些重构方法在业界得到广泛的应用,并被视为提高代码质量的重要工具。 福勒选择将《重构》这本书制作成EPUB格式,使得者可以在电子设备上方便地阅。EPUB是一种常见的电子出版格式,可以自适应不同设备的屏幕大小,并支持字体、图像和布局等多种自定义设置。这使得者可以根据自己的喜好和需求来调整阅体验,提高学习效果。 通过将《重构》制作成EPUB格式,福勒希望更多的开发人员和软件架构师能够方便地获取这本信息丰富的书籍。EPUB格式的优点在于其便携性和可定制性,者可以随时随地地学习和实践重构技术。这对于推动软件行业的技术进步和质量提升有着积极的影响。 总的来说,福勒将《重构》制作成EPUB格式是为了更好地传播重构的理念和方法。这种格式的选择使得者能够更便捷地学习和应用重构技术,提高软件开发的效率和质量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值