Giter VIP home page Giter VIP logo

book-oo-principles's Introduction

简介

在本人的程序员生涯成长过程中,很多业界前辈的产品和书籍对我起着指路明灯的作用。分析方面有Martin Fowler的《分析模式》和Grady Booch的《Object-Oriented Analysis and Design with Applications》,设计方面有四人帮的《设计模式》、Martin Fowler的《企业应用架构模式》,以及模式社区的《面向模式的软件架构》五卷,实现方面有Martin Fowler的《重构》、Robert C. Martin的《代码简洁之道》、Kent Beck的《实现模式》……

在我读过的书籍中,Robert C. Martin——昵称Bob大叔——他的名著《敏捷软件开发:原则、模式、实践》对我的成长起着至关紧要的作用。从我个人的角度看,它比《设计模式》和《重构》还重要。这本书也影响着世界上的很多程序员,可以毫不夸张地说,我们目前的软件世界——包括优秀程序员和优秀产品——有很大一部分是Bob大叔的这本书塑造出来的。没有这本书,世界会大不一样。

《敏捷软件开发:原则、模式、实践》一书中最脍炙人口的部分就是对面向对象(OO)原则的彻底阐释。其中关于类设计的五条原则以其首字母的组合被合称为SOLID原则,现在已经成为OO开发的根本性准则。

由于种种原因,国内很多程序员重**“术”“道”,平时的学习也是侧重于类库、框架、工具等实现技术,却很少磨练自己的设计****,开发出来的产品往往只能在功能方面勉强达标,却在可读性、可维护性、可扩展性等内部质量方面多有欠缺。

如果我们能够深入理解掌握OO的原则,以及在它之下一层的设计模式,我们开发的产品质量必将得到巨大的提升。

由于有同事认为《敏捷软件开发:原则、模式、实践》一书还是比较深奥,不容易读懂。而且本书只对SOLID——面向类级别的五条原则——进行深入阐释,而对面向包级别的其他几条原则没有深入讲解。本人在多年的软件开发过程中对OO原则的体会较深,因此试图对每一个原则根据自己的理解和实践作进一步的阐述,期望能够对其他开发人员有所助益。当然由于水平有限,在文中一定会有错漏的地方,请大家认真鉴别,如果能够发现错误并回馈给我,将感激不尽。最后只有一句话:

光荣都属于Bob大叔,谬误都是我的责任。

香蕉皮和鸡蛋冲我来吧!

book-oo-principles's People

Contributors

dayatang avatar gdyangyu avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.