`
chelsea
  • 浏览: 118248 次
  • 来自: ...
社区版块
存档分类
最新评论

The Object Primer

    博客分类:
 
阅读更多

1,书名

被翻译成“面向对象软件开发教程”,若不是Scott Ambler名声在外,就要错过旧书摊上这本10几块的书了,虽然错过也没太大影响

2,UML vs. Programming Language

如果图形和文本基于同一种对象模型,则它们之间可以做到无缝转换;如各种可以存为XML文档的图元,XML文档和图元都基于XML Schema,任何一种表示都可以不损失任何信息的转化为另外一种表示;然而UML不和任何一种编程语言基于同一种对象模型,并且越细节,图形和代码之间的缝隙越大,由代码逆向工程得到的序列图几乎没有任何价值,因此减少这种缝隙的方法就是:
a,要么修改UML的元模型、语义,将其变为另外一种编程语言,并开发相应的编译器
b,要么将UML做为草图来用(UML as sketch),不要当作蓝图(UML as blueprint),因为在草图阶段,与编程语言的缝隙并不大

不知原文如何,有一小节标题被翻译成“一图胜千言”,这也说明了UML的用处:用在一张图可以概括很多代码的地方,图与代码一对一的情况下,图基本上是没有用处的,至少目前如此;其实Scott Ambler对MDA基本持保留意见,与与他观点类似的还有Martin Fowler

3,软件与硬件

有一小节举了硬件生产中芯片和主板的例子,以此说明面向对象软件应有的可扩展性和可复用性,通常拿硬件来隐喻软件也大抵如此了,可硬件能带来的隐喻还不止如此,芯片和主板都不知道自己被组装到一起的过程,这一组装过程也是可复用的,可扩展的,隐喻到软件就是程序中没有显式的创建芯片和主板并将它们关联在一起的代码,而是IoC;牵强了点,暂且如此吧

4,用例与用例图

Scott说:“绘制用例图是容易的,但确定用例和参与者却是困难的部分”;可有多少人拿着鸡毛当令箭,拿着用例图当用例,建议以后书里面都不要讲用例图,只讲用例,顶多在附录里图示一下

5,扩展点

用例的扩展点实在是AOP的pointcut的始祖,这个结论已经被接受了,Ivar Jacobson关于用例扩展点的论文甚至被AOP专家认为是AOP早期论文

6,UML风格

作者在《UML风格》中提到的一些条款在本书也提到了,呵呵,一本顶两本

7,不需要编码的原型

想验证一下需求?做个原型吧!不想编码?那就扮演吧!上过外教的课,又唱又跳,不拿自己当外人,这方面国人是差点,不知有没有开发团队真的通过类似角色扮演的方法收集,验证需求等;相同的是管理层都不太接受这种方法,这是保守与自由,统治与被统治间的矛盾,内外皆然

8,信息隐藏,数据隐藏

实在是“实现隐藏”更能表达本质的概念

9,耦合

仅仅简单的说“松耦合”已不代表任何意义了,现在要区分“侵入”与“非侵入”

10,组件

Scott Ambler:组件是模块化的、封装良好的单元,组件可以单独部署
Ralph Johnson:Components are not a technology. Technology people seem to find this hard to understand. Components are about how customers want to relate to software. They want to be able to buy their software a piece at a time, and to be able to upgrade it just like they can upgrade their stereo. They want new pieces to work seamlessly with their old pieces, and to be able to upgrade on their own schedule, not the manufacturer's schedule. They want to be able to mix and match pieces from various manufacturers. This is a very reasonable requirement. It is just hard to satisfy.

11,分析

需求决定请求构建的内容,分析决定将要构建的内容

12,UI

我更倾向称之为“用户交互层”,“用户接口层”,而不是“用户界面层”,因为界面让人联想到屏幕,图形,窗口等,可UI还包括命令行,语音等,拨IP电话卡时,一步步引导你的就是UI层,可是没有屏幕,图形,窗口

13,Java风格

作者在《Java风格》中提到的一些条款在本书也提到了,呵呵,一本顶三本了

14,ctor与setter

Scott说尽量使用setter设置属性,在ctor中传参设置属性是不好的做法,可是,ctor的作用就是保证对象在使用前处于良好的状态,如果某个比较重要的属性在对象被使用前必须设置,那么最好在ctor中传参设置

15,源代码

Scott说源代码包括编程语言的源代码和SQL脚本,现在要加上各种配置文件了,它们就是各种容器的“源代码”

16,迭代与增量

我见过的大多打着迭代旗号的项目其实是增量开发,委实是“增量”这个术语应该比“迭代”更流行,就算每个增量开发项目也都是迭代的,但准确的表达会潜移默化的影响着人们的思想

17,入门

《The Object Primer SE》+《Uml Distilled 3rd Edition》+《The Java Programming Language 3rd Edition》目前为止较好的面向对象编程入门读物,只需两个月的时间.

分享到:
评论

相关推荐

    The Object Primer, Third Edition

    The Object Primer -3rd edition Agile Model-Driven Development With Uml 2.0 (-2004 Cambridge).chm

    The Object Primer 2nd Edition

    **标题**:“The Object Primer 2nd Edition” **描述**:这本书是面向对象(OO)软件的一种结构化步骤介绍,采用教学风格编写,易于初学者阅读。 面向对象编程是一种编程范式,它通过“对象”来组织代码结构。...

    The Object Primer - Introduction to Techniques for Agile Modeling.pdf

    ### 《对象入门指南:敏捷建模技术介绍》关键知识点概览 #### 一、引言 《对象入门指南:敏捷建模技术介绍》第二版是一本深入浅出地介绍了面向对象开发方法与敏捷建模技术的重要著作。本书由Ronin International...

    Object.Oriented.Thought.Process.The.2nd.Edition

    The Object-Oriented Thought Process is a concise and readable primer. Matt Weisfeld s years of programming, teaching, and writing have given him a flair for presenting highly technical topics in a ...

    MoreProcessPaterns-Delivering large-scale Systems

    他的著作还包括《The Object Primer》和《Building Object Applications That Work》,这些书籍同样关注于面向对象技术的应用和实践。 总之,《More Process Patterns》这本书对于希望掌握大规模系统开发的读者来说...

    用户界面的设计技巧与提示

    - **《对象入门第二版》(The Object Primer 2nd Edition)**:提供了面向对象设计的基本概念。 - **《构建有效对象应用》(Building Object Applications That Work)**:深入探讨了构建高质量软件的方法。 - **《过程...

    设计健壮的关系数据库持久层

    Ambler的作品,其中包括《构建有效的对象应用》(Building Object Applications That Work)、《过程模式》(Process Patterns)、《对象入门第二版》(The Object Primer 2nd Edition),以及发表在《软件开发杂志...

    C# Primer 中文版随书源码

    There are eight directories, representing the eight chapters of the C# Primer text, in which Visual Studio.NET projects are stored. These have all been compiled under a post-Release Candidate, but ...

    Javascript.Object.Oriented.Programming.pdf

    Build sophisticated web applications by mastering the art of Object-Oriented Javascript About This Book Learn popular Object-Oriented programming (OOP) principles and design patterns to build robust ...

    Matlab Primer

    Highlighting the new aspects of MATLAB(R) 7.10 and expanding on many existing features, MATLAB(R) Primer, Eighth Edition shows you how to solve problems in science, engineering, and mathematics....

    objectdesign.pdf

    - 《C++ Primer中文版(第4版)》(Stanley B. Lippman,人民邮电出版社) - 《C++程序设计语言(特别版)》(Bjarne Stroustrup,裘宗燕译,机械工业出版社) - 《C++编程思想》(Bruce Eckel著,刘宗田等译,...

    英文原版-A Primer on Scientific Programming with Python 5th Edition(解压密码share.weimo.info)

    The book teaches "Matlab-style" and procedural programming as well as object-oriented programming. High school mathematics is a required background and it is advantageous to study classical and ...

    Practical Object-Oriented Design: An Agile Primer Using Ruby 2nd

    ruby 面向对象编程第二版(2018)基于ruby 2.5 The Complete Guide to Writing Maintainable, Manageable, Pleasing, and Powerful Object-Oriented Applications

    A Primer on Scientific Programming with Python, 5th Edition

    The book teaches “Matlab-style” and procedural programming as well as object-oriented programming. High school mathematics is a required background and it is advantageous to study classical and ...

    《A Primer on Scientfic Programming with Python, Third Edition 》PDF

    The book teaches "Matlab-style" and procedural programming as well as object-oriented programming. High school mathematics is a required background, and it is advantageous to study classical and ...

    C++ CLI Primer(Apress,2016).pdf

    The C++/CLI Primer is a powerful but compact book that will guide you through that barrier. Many of today’s complex transactions and enterprise applications count on C++/CLI. Visual Studio 2015 and...

    C++/CLI Primer: For .NET Development

    The C++/CLI Primer is a powerful but compact book that will guide you through that barrier. Many of today's complex transactions and enterprise applications count on C++/CLI. Visual Studio 2015 and ...

    A Primer on Scientific Programming with Python - second edition.pdf

    The book teaches 'Matlab-style' and procedural programming as well as object-oriented programming. High school mathematics is a required background, and it is advantageou s to study classical and ...

    Perl 6 Fundamentals: A Primer with Examples, Projects, and Case Studies

    Perl 6 Fundamentals: A Primer with Examples, Projects, and Case Studies By Moritz Lenz English | PDF,EPUB | 2017 | 151 Pages | ISBN : 1484228987 | 3.46 MB Gain the skills to begin developing Perl 6 ...

Global site tag (gtag.js) - Google Analytics