`
a5728238
  • 浏览: 4007 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

做一个专业软件开发必须精通的事项

阅读更多
      这两天读bob大叔的《程序员的职业素养》,感觉作为一个专业的软件开发人员不容易,身上顿时感觉压力山大。
      bob大叔认为作为一个专业软件开发必须精通以下几点
           1、设计模式。必须能描述GOF书中全部24中模式,同时还要有POSA书中的多数模式的实战经验。
           2、设计原则。必须了解SOLID原则 ,而且要深刻理解组件设计原则。
           3、方法。必须理解XP、Scrum、精益、看板、瀑布、结构化分析及结构化设计等。
           4、实践。必须掌握测试驱动开发、面向对象设计、结构化编程、持续集成和结对编程。
           5、工件。必须了解如何使用UML图、DFD图、结构图、Petri网络图、状态迁移图表、流程图和决策图。
      自我总结:
      在bob大叔说的这几点中,我能做到几点呢?认识思想一下,发现大概有这么几点能做到:
            1、设计模式,这些年来国内很多关于设计模式的书,读大学时代看《大话设计模式》,只是把大鸟和小菜的对话当做故事书来看,很多设计模式的知识只是看了就忘记,后面工作后买了本《Java与模式》来看,发现其中设计模式的思想挺好的,作者通过讲些中国传统故事来形容和讲述设计模式,通过这本书学习到了不少设计模式的思想,但是老是就忘,后面随着编程经验的增长,了解到设计模式其实就是OO思想和设计原则的产物,设计模式不是去学的,应该是感悟的,是我们程序员通过工作经验去感悟的,感悟设计模式才能掌握设计模式的精髓,才能学会怎么去开发高可扩展性程序,设计模式不是多少种去说的,而且一种怎么开发高扩展高可维护性程序的思想和实践。说来惭愧设计模式现在24种大多数了解其思想,但是现实编程使用的不多。如果要学习重构编程法,设计模式比不可少,福勒的《重构》很多手法就是往设计模式方面靠拢。
            2、设计原则SOLID,以下这些是我这几年个人的感悟:
                  SRP The Single Responsibility Principle  单一责任原则 :当需要修改某个类的时候原因有且只有一个,让一个类只有一个职责,当这个类需要承当其他类型的责任的时候,就需要分解这个类。这也是bob大叔在《代码整洁之道》关于类这一章说的,让类小尽可能的小,承担的职责单一,这样才能保持代码的整洁性,不会让这个类经常由于其他职责的原因而需要修改,这也是达到关闭修改的方式和手段。
                  OCP The Open Closed Principle  开放封闭原则 :对扩展是开放的,而对修改是封闭的。这个原则是诸多面向对象编程原则中最抽象、最难理解的一个。其实这个原则我感觉是OO思想最核心的思想,怎么样提高程序的扩展性而又不用去修改以前的代码,这是我们变成中需要注意的问题,当然很多设计模式就可以达到这种效果,工厂、策略模式等都是为了这些而工作的。
                  LSP The Liskov Substitution Principle 里氏替换原则:所有的子类都可以替换其基类,这个原则其实是对编程语言的要求,只有实现这个原则,我们才能使用多态去创造灵活的程序。
                  DIP  The Dependency Inversion Principle 依赖倒置原则 :高层模块不应该依赖于低层模块,二者都应该依赖于抽象。抽象不应该依赖于细节,细节应该依赖于抽象。其实这些都是为了对扩展开放这个原则服务的,Spring的IOC,策略模式这类东西都通过接口去声明其实现类,达到修改和替换子类不影响现有代码的实现。一切都依赖于接口,程序直接的耦合在于其抽象而不在于其具体实现,bridge模式和抽象工厂就是其经典实现。
                  ISP The Interface Segregation Principle 接口分离原则  :不能强迫用户去依赖那些他们不使用的接口。换句话说,使用多个专门的接口比使用单一的总接口总要好。 这个原则想表达的思想和单一责任原则有点像,一个接口的方法多了,所有的子类都需要去实现它们,当有一天某几个子类需要增加一个方法时候,考虑把它放到接口里面,但是又影响了其他子类,使得其他子类需要实现这个方法,所以接口要尽可能的小。
            3、方法:XP、Scrum、精益、看板、瀑布、结构化分析及结构化设计,这些只是对瀑布、Scrum、迭代开发实践过,极限编程(XP)、精益、结构化分析及结构化设计都是了解一些皮毛,这些方面都得努力去学习和实践。
            4、实践:测试驱动开发、面向对象设计、结构化编程、持续集成和结对编程,对面向对象设计有所涉及但不深入只能说刚入门,测试驱动开发了解这种思想,只会写简单的单元测试,没有在项目中经历过测试覆盖开发的工作,其他结构化编程、持续集成和结对编程都是了解一点没用深入理解和实践过。
            5、使用过UML和流程图,其他几个图都没有用过和了解过。UML图在工作中只有半年多的设计工作中使用过,需要深入理解。
            路漫漫其修远兮,吾将上下而求索,学习技术之路很漫长。做一个专业的程序员不容易,需要多加努力,使自己成为一个专业的程序员,成为一个具备职业素养的程序员。
2
7
分享到:
评论

相关推荐

    Linux嵌入式软件开发教程pdf完整版

    30本全部奉献(12):Linux嵌入式软件开发教程pdf完整版

    精通网络视频核心开发技术

    《精通网络视频核心开发技术》由浅入深地讲解了visual c++在音频和视频领域的开发技术,并通过具体的实例来讲解其具体的实现流程。全书内容分为18章,详细讲解了使用各种软件和平台进行音/视频多媒体编程的技术,以...

    Android开发应用从入门到精通 高清版本

    讲解过程中步骤详尽、版式新颖,并在操作的内容图片上进行了标注,让读者在阅读时一目了然,从而快速掌握书中内容,能够适合作为软件开发入门者的自学用书,也适合作为高等院校相关专业的教学参考书。

    精通网络视频核心开发技术pdf

    基本信息 ...内容丰富、安排合理、工程实用性强,能够为广大数字媒体或音/视频开发人员、高等院校相关专业的课程设计、毕业设计提供参考,同时也可以作为科研单位、企业进行流媒体开发的技术指导用书。

    ArcGIS开发宝典-从入门到精通

    《ArcGIS开发宝典---从入门到精通》是为适应当前我国ArcGIS应用开发需要而编写的一本面向不同层次的开发指导教程。... 本书可作为高等院校GIS专业本科生、研究生的教材,也可作为GIS软件开发人员的参考书。

    MODBUS软件实战.zip

    阅读本书,可快速入门并精通 Modbus软件开发技术。作为软件技术开发指南的书 籍,本书不仅仅局限于 Modbus通信协议,对其他通信协议的软件开发也有很强的参考价值 本书可作为各大中专院校、工程设计院、系统集成商和...

    专业的C语言开发教程.从入门到精通

    此PPT是专业的上海微思软件开发教程,课程讲解十分细致,适合初学者起点学习.

    游戏编程入门到精通

    本书以C语言游戏编程入手,以102个实例,近200个函数较为系统地介绍了C基于...此外,对于C/C++语言的初、中级用户,业余爱好者学习与培训,以及有一定软件开发经验的程序员和专业技术人员也有很好的借鉴和参考价值。

    Spring从入门到精通 源码

    本书适用于初、中级软件开发人员,同时也可用作高校相关专业师生和社会培训班的教材。 全书共分14章,内容涵盖了Spring的基础概念、核心容器、Spring AOP、事务处理、持久层封装、Web框架、定时器、Spring和Struts...

    精通Java:JDK、数据库系统开发Web开发(实例代码)

    《精通Java:JDK、数据库系统开发Web开发》全书共分27章,内容涵盖了Java编程环境概述、基础语法、面向对象软件设计方法、线程、数据集合、网络编程、图形编程、多媒体编程以及Java Web开发。本书每一节的例子都是...

    精通Eclipse(6)

    Eclipse是一个非常优秀的集成开发环境。本书从Eclipse的基础开始,介绍了Eclipse的体系结构、技术概况以及实际应用,由浅入深全方位地向读者展示了Eclipse本书指导读者利用各种插件使Eclipse成为各种领域的工具,如...

    精通qtp自动化测试技术领航

    包括项目应用高级扩展实例精讲和QTP深入探索,学会了这些技术,读者才会有更多的底蕴,也是一个很重要的跨越阶段。第5章和第6章讲解了设计模式和自动化测试框架的内容,这两章内容是QTP测试技术精华的浓缩,如QTP...

    精通Eclipse(1)

    Eclipse是一个非常优秀的集成开发环境。本书从Eclipse的基础开始,介绍了Eclipse的体系结构、技术概况以及实际应用,由浅入深全方位地向读者展示了Eclipse本书指导读者利用各种插件使Eclipse成为各种领域的工具,如...

    Spring从入门到精通(珍藏版)

    本书最大的特色在于每章都是由浅入深,从一个简单的示例入手,让读者快速了解本章内容,然后再详细讲解本章涉及的基本原理和知识点,最后再通过一个详细的示例宋巩固所学内容。 本书每一章的例子都是经过精挑细选,...

    精通qtp——自动化测试技术领航

    包括项目应用高级扩展实例精讲和QTP深入探索,学会了这些技术,读者才会有更多的底蕴,也是一个很重要的跨越阶段。第5章和第6章讲解了设计模式和自动化测试框架的内容,这两章内容是QTP测试技术精华的浓缩,如QTP...

    Oracle11g从入门到精通2

    《Oracle11g从入门到精通》面向数据库管理人员和数据库开发人员,从实际角度出发,系统地介绍了数据库和Oracle的相关概念和原理、Oracle的数据库管理(如安装与启动,用户权限、备份与恢复等),以及Oracle的应用...

    《精通CSS与HTML设计模式》(Pro CSS and HTML Design Patterns)中文版高清扫描版[PDF](part08)

    Michael Bowers,资深Web开发专家,有18年专业软件开发经验。曾经作为首席软件工程师和架构师开发过各种项目,包括许多网站、应用程序框架、编译器、自定义语言,自动化工厂和销售管理系统。他拥有音乐理论硕士学位...

    精通Eclipse(2)

    Eclipse是一个非常优秀的集成开发环境。本书从Eclipse的基础开始,介绍了Eclipse的体系结构、技术概况以及实际应用,由浅入深全方位地向读者展示了Eclipse本书指导读者利用各种插件使Eclipse成为各种领域的工具,如...

    柒品通用微机称重管理软件v6.0免费安装版

    精通各种称重显示仪表的性能参数以及相关的静态、动态称重数据管理理念,熟悉各类衡器用户的需求习惯,确保柒品微机称重管理系统成为一套最贴近用户的专业电子衡器称重管理软件,绝不等同于一些由非衡器专业不熟悉...

Global site tag (gtag.js) - Google Analytics