zoukankan      html  css  js  c++  java
  • 《程序员修炼之道:从小工到专家》阅读笔记一

      第一章:注重实效的哲学

      一.我的代码让猫给吃了

      在编程中,我们需要对我们编写的每一个功能,每一行代码,每一个变量负责,但事实是,我们害怕去负责,我们害怕遇见被指责这一类负面现象。但是一名软件工程师,我们要做到的不仅是设计一个功能,更需要的是遇见未曾发生的事情,我们也许没有办法去解决这个问题,但是我们需要提供解决方案,而不是一味地逃避去面对责任。勇敢诚实地去承认错误,并设法给出各种选择,而不应该将责任转移或是寻找借口。这个现象其实在代码语法中也可以看出,在if没有判断到的情况中,我们可以用else代替,在switch中没有预料到的情况,我们可以设置default选项,如果我们没有办法预支危险可能,就应该提供避险方案。

      二.软件的熵

      当软件中代码无序增长时,程序员称之为“软件腐烂”,的确,软件中代码量在不断增长,却没有有效的管理,那带来的结果必然是无序。阻止软件的熵不断变大的办法只有一个,那就是在代码量没有足够大的时候及时的去管理。破窗子带给我们的启示就是:不能容忍破窗户,发现一个破窗户便立即修复,避免影响扩大。在编写课程助手APP的时候,我总是喜欢在将按钮的监听器一个个写出来,这样一来,代码就显得十分的冗余,不如switch语句显得干净利落,而且一开始也不喜欢写工具类,调用的时候也不是很方便,知道后来才有这个意识,而且写一段时间之后就需要对代码进行整合,这些都是由一个个破窗子积攒产生的。如果你的代码简洁漂亮,那么你也会继续保持这种优秀的编码风格。

      三.石头汤和煮青蛙

      作为团队的领导者,我们需要一步步地激励自己的团队成员,给他们以诱惑,促使大家都行动起来,为了一个更好的产品,领导者需要成为这些变化的催化剂,但是即使有催化剂,但是结果并不是团队成员十分急需的时候,也很难调动大家的积极性。反过来,要想使团队变得越来越差,也只是需要一个人慢慢地拖累大家,打击团队的士气,同样也可以使一个团队崩溃。

      四.足够好的软件

      可以说世界上没有完美的软件产品,但是一定有足够好的,就像一件艺术品一样,变成需要知道何时止步,这里的止步便是要懂得平衡软件完成功能的代价,在时间与空间上有足够的平衡,就像计算机网络的孟凡老师在课上说过,每个算法都需要一定的代价。而工程师需要做的就是平衡这些代价,让用户感到舒服即可。

      五.你的知识资产

      计算机科学的知识更新换代太快,老知识一定是落伍的,就拿java来说,以前的不少方法都已经被弃用了,不学习,只能被淘汰,当然这也是对于编程而言,如果脱离编程的岗位,那么软件构造的知识是否也需要更新呢?当然,学习是一个批判的过程,在过去的十八年里,我们所学到的知识都被标榜是正确的,但是以后呢?仔细回味一下,到底是否是全部正确,如果选择了另一个方向,我们会走向成功吗?未来都将会是人生的挑战,谁也不知道会怎么样。

      六.交流

      这无疑是软件工程中极其重要的一部分,不管是团队中还是和你的客户,优秀的交流让对方知道我们需要什么,让自己明白对方要什么,当然,交流本身就是一个极具艺术的行为,我们需要恰当的时机场合,用恰当的方式风格来进行。

  • 相关阅读:
    仿联想商城laravel实战---6、自建配置文件和缓存(如何读取自己创建的配置文件的信息)
    php中相对路径和绝对路径如何使用(详解)
    英语影视台词---绿皮书(2)(利普 我以为你要把那家伙打死了)
    仿联想商城laravel实战---5、无刷新的增删改查(动态页面更新的三种方式(html))
    英语发音规则---ea字母组合发音规律
    英语发音规则---ir字母组合发音规律
    仿联想商城laravel实战---4、验证(lavarel的表单验证如何使用)
    android adb 不同的方式使用特定的解释
    Spring aop 小例子demo
    SPOJ 15. The Shortest Path 堆优化Dijsktra
  • 原文地址:https://www.cnblogs.com/heiyang/p/10961054.html
Copyright © 2011-2022 走看看