long blogs

进一步有进一步惊喜


  • Home
  • Archive
  • Tags
  •  

© 2025 long

Theme Typography by Makito

Proudly published with Hexo

<<高效程序员的45个习惯>>-读书笔记

Posted at 2020-11-20 阅读 

如何跟上技术变化的步伐

迭代和增量式学习.每天计划用一段时间来学习新技术,无需长时间,但要频繁.记下需要学习的东西—听到不熟悉的术语或者短语时,记录下来,在计划时间中去学习

了解最新行情. 社区讨论,技术博客,查看顶尖博客作者们正在关注什么.

参加本地的用户组活动, 各种技术在很多地区都会有相关的讲座

参加研讨会议,

如饥似渴地阅读,软件开发和非技术主题的书,专业的期刊和商业杂志,大众媒体新闻

  • 你不可能精通每一项技术,没有必要去做这样的尝试.只要你在某些方面成为专家,就能使用相同的方法,很容易成为新领域的专家.
  • 你要正确把握自己投入的精力.
  • 为什么要这项新技术,解决什么问题,可以用在什么地方.
  • 在每天结束的时候,测试代码,提交代码,没有残留代码.
  • 记录客户做出的决定,并注明原因.
  • 不要随意假设低级别的问题不会影响他们的业务.如果能影响他们的业务,就是有价值的问题。

如果你自己都不清楚所谈论的东西,就根本不可能精确地描述它。

​ —- 约翰.冯诺依曼

  • 不需要开发你能下载到的东西
  • 如果你发现自己在做一些花里胡哨的东西(比如从头创建自己的框架),那就醒醒吧,闻闻烟味有多大,马上该起火了。你的代码写得越少,需要维护的东西就越少。
  • 每一门技术都会有优点和缺点,无论它是开源的还是商业产品、框架、工具或者语言,一定要清楚它的利弊。
  • 任何时候只要你没有准备好,那就是敌人进攻你的最佳时机。代码要处于可用状态,警惕每一次改动。

防止提交可能会破坏系统的代码:

  • 在本地运行测试。代码可以编译,可以通过所有的单元测试,确保系统中其他测试都可以通过。
  • 检出最新的代码。在提交之前先拉取最新的代码,避免代码冲突。
  • 提交代码。

每一改动应该可以进行持续集成,通过所有的测试用例。

  • 绝不要做大爆炸式的集成。提早集成,频繁集成。
  • 编程之前,先写测试。
  • 任何一个设计都可以被改进
  • 每一个抱怨的背后都隐藏了一个事实,找出真相,修复真正的问题。
  • PIE原则,代码必须明确说出你的意图,而且必须富有表达力。代码应意图清晰,表达明确。
  • 应该让自己或团队的其他任何人,可以读懂自己一年前写的代码,而且只读一遍就知道它的运行机制。
  • 在代码可以传递意图的地方不要使用注释
  • 解释代码做了什么的注释用处不那么大。相反 ,注释要说明为什么这样写代码。
  • 在很短的编辑/构建/测试循环中编写代码。这要比话费长时间仅仅做编写代码的工作要好得多。可以创建更加清晰、简单、易于维护的代码。
  • 简单不是简陋
  • 优雅的代码第一眼看上去,就知道它的用处,而且很简洁。
  • 开发可以工作的、最简单的解决方案。除非有不可辩驳的原因,否则不要使用模式,原则和高难度技术之类的东西。
  • 当你觉得所编写的代码中没有一行是多余的,并且仍能交付全部的功能时,这种感觉就对了。这样的代码容易理解和改正。
  • 将命令与查询分离开来,命令可能会改变对象的状态,而且有可能返回一些有用的值。一个查询仅仅提供给开发人员对象的状态,并不会对其外部的可见状态修改。
  • 绝对不能允许一个看起来无辜的”查询”去修改对象的状态。
  • Liskov替换原则:任何继承后得到的派生类对象,必须可以替换任何被使用的基类对象,而且使用者不必知道任何差异。
  • 当使用继承时,要想想派生类是否可以替换基类。如果答案是不能,就要问问自己为什么要使用继承。如果只是想要重用基类的代码,可以使用聚合,通过聚合,将责任委托给聚合的对象。
  • 保存曾遇到的问题以及对应的解决方案的日志,日志格式,这些日志可以用关键字进行搜索。
    • 问题发生的时间
    • 问题简述
    • 解决方案描述
    • 引用文章或网址,已提供更多细节或相关信息
    • 任何代码片段、设置或对话框的截屏。
  • 对问题各个击破。在解决问题时,要将问题域与其周边隔离开,特别在大型应用中。
  • 要传播不能处理的异常。
  • 程序员在拒绝设计的同时,也就放弃了思考。
  • 代码检查列表
    • 代码能否被读懂和理解?
    • 是否有任何明显的错误?
    • 代码是否会对应用的其他部分产生不良影响?
    • 是否存在重复的代码
    • 是否存在可以改进或重构的部分?

Share 

 Previous post: docker学习 Next post: C-printf显示字符颜色 

© 2025 long

Theme Typography by Makito

Proudly published with Hexo