zoukankan      html  css  js  c++  java
  • 《代码整洁之道》--读书笔记

    《代码整洁之道》 程序员的职业素养 Robert C. Martain)第二版

     

    专业主义

    专业主义意味着责任与义务。首先,不行损害之事,避免破坏软件的功能与架构。让QA找不出任何问题,确信代码正常运行,不要破坏结构。

    了解你的领域:每个专业软件开发人员必须精通的事项:设计模式:能描述GOF书中的24中设计模式,要有POSA书中的多数模式的实战经验;设计原则:必须了解SOLID原则,深刻理解组件设计原则;方法:理解XPScrum,精益,看板,瀑布,结构化分析和结构化设计等;实践:掌握测试驱动开发、面向对象设计、结构化编程、持续集成和结对编程;工件:掌握使用UML图、DFD图、结构图、Petri图、状态迁移图表、流程图和决策表。

    坚持学习,不断练习。与他人合作。

    说不

    牺牲专业原则以求全,并非问题解决之道。舍弃这些原则,只会制造出更多的麻烦。

    说是

    专业人士不需要对所有请求都回答是。不过他们应该努力寻找创新的方法买尽可能做到有求必应。当专业人士给出肯定回答时,会使用正式的承诺,以确保各方能明白无误地理解承诺内容。

    编码

    首先要做好准备。1)代码必须能够正常工作;2)代码必须能帮你解决客户提出的问题;3)代码必须要和现有系统结合地天衣无缝;4)其他程序员必须能读懂你的代码。

    如果感到疲劳,千万不要编码,强而为之,最终只能回头返工,避免进入流态区”(自我感觉效率极高,但理性思考的能力下降)。结对编程能够帮助改善阻塞状态。

    测试驱动开发

    GOTO有害。TDD(测试驱动开发)确实可行。TDD测试代码和产品代码相互补充,同步增长。

    TDD三项法则:在编好失败单元测试之前,不要编写任何产品代码;只要有一个单元测试失败了,就不要再编写测试代码,无法通过编译也是一种失败情况;产品代码恰好能够让当前单元测试成功通过即可,不要多写。

    练习

    编程柔道场:一群程序员聚在一起练习

    卡塔:逐步练习以达到纯熟。练习不是在解决真正的问题,因为你已经知道了解决方案,而是在练习解决问题所需要的动作和决策,有利于在潜意识中构建通用问题和解决方案之间的联系。

    验收测试

    开发人员既要做好开发,也要做好沟通。要解决开发方和业务方沟通问题,可以编写自动化验收测试。本章定义验收测试为开发方和业务方合作编写的测试,目的在于确定需求已经完成。

    测试策略

    自动化测试金字塔自底向上:单元测试、组件测试,集成测试,系统测试,人工探索式测试。

    时间管理

    会议是必须的,但浪费了大量时间。—>立会:站立会议:每个人发言不超过一分钟(昨天做了什么,今天打算做什么,遇到了什么问题)  迭代计划会议:选择在下一轮迭代中实现的开发任务,应该简明扼要。

    注意力点数。时间拆分和番茄工作法。避免优先级错乱、死胡同和泥潭。

    预估

    业务方觉得预估是承诺,开发方认为预估是猜测。

    计划评审技术PERT可以帮助计算预估—>三元分析法:乐观预估,标称预估(概率最大的数字),悲观预估。

    预估任务:亮手指;规划扑克;德菲尔法。

    控制预估错误的方法大数定律:将大任务差分成小任务,分别预估再求和。

    压力

    要避免压力:在压力下保持冷静,规避压力,可以降低压力,缩短高压力期的时间。

    保持整洁:让系统、代码和实际尽可能整洁,可以避免压力。

    结对编程、寻求帮助、及时沟通可以减轻压力。

    协作

    编程意味着与人合作,结对,一定要学会交流。

    团队与项目

    形成有有凝聚力的团队需要时间。专业的开发组织会把项目分给已经形成凝聚力的团队,而不会围绕项目来组建团队。

    组建稳健的团队,让团队在多个项目中整体移动共同工作是较好的做法。

  • 相关阅读:
    sqlite遇到database is locked问题的完美解决
    Delphi使程序的窗口出现在最前面并激活
    win10 家庭版不支持gpedit.msc的解决办法
    Delphi Record To Stream
    SQL Server 查看CPU情况
    JavaScript 获取 Url 上的参数(QueryString)值
    关于EF分页查询报错(Count must have a non-negative value.)的解决方案
    调用微信退款接口时出现System.Security.Cryptography.CryptographicException: 出现了内部错误 解决办法
    Javascript中“==”与“===”的区别
    IE浏览器各版本的CSS Hack
  • 原文地址:https://www.cnblogs.com/baimt/p/9814719.html
Copyright © 2011-2022 走看看