首页 > 编程语言 >程序员修炼之道(2)

程序员修炼之道(2)

时间:2023-04-23 20:35:25浏览次数:31  
标签:代码 复用 一本 之道 程序员 修炼 测试 bug

看到这个书名的时候,会不自觉的想起周星驰在《喜剧之王》中的经典桥段,手拿一本《演员的自我修养》激励着很多懵懂青年。
就像这本书的自序所讲的,这是一本包含有许多朴素的经验,写给注重实效的程序员的一本“演员的自我修养”。

刚刚步入编程队伍的我,正需要这样一本书给予我经验,也因为是多年精心耕耘的结果,一时不能全盘收入囊中,只能让思想先入为主,在开发中加以理解。
如何提问?
1:确切地知道你想要问什么,并尽量明确具体;2:小心而得体地组织你的问题,记住你是在请求帮助;3:发邮件时请使用有意义的主题;4:坐回椅子上,耐心等候。

不要容忍破窗户
当你看到糟糕的设计、错误的决策和糟糕的代码时,修正它们。在工作中,很容易对源源不断的bug不耐烦,或许被自己说服侥幸绕过,以后就会有更多的直至难以修复。破窗户讲的故事是一个小区的一扇窗户没有及时维修导致整个小区陷入被更多破坏的现实,人们再想起维修时,代价巨大,治安特别好的地区也对破窗严格治理。

定期为你的知识资产投资
让学习成为习惯。编程语言、技术日新月异,小伙伴们都感受至深,幸运的是我们的知识获得比任何行业都更加容易和方便,大量的社区,教程和热心的作者。书中也给程序员提了几点建议,每年学习一门新的语言,每个季度阅读一本技术书籍等。

不要重复你自己
系统中的每一项知识都必须具有单一、无歧义、权威的表示。其实我还是不太明白这句话,目前能做的,就是尽量不写重复的代码。

让复用变得容易
如果复用很容易,人们就会去复用。创造一个支持复用的环境。将相同的功能抽离出来,可能会大量用到的方法使用静态关键字。

用曳光弹找到目标
曳光弹能通过试验各种事物并检查它们离目标有多远让你来追踪目标。这应该是最近比较流行的敏捷开发了吧,快速迭代,在实践中调整目标。

利用shell的力量
当图形用户界面无能为力时使用shell。自从用了Ubuntu,我已经习惯了命令行操作,它能解放你的右手,这种感觉相当舒服,可以帮助我们自动完成一些工作。

要修正问题,而不是发出指责
bug是你的过错还是别人的过错,并不是真的很有关系——它仍然是你的问题,它仍然需要修正。勇于承认自己的过错,这没有什么。

不要恐慌
做一次深呼吸,思考什么可能是bug的原因。记得刚入团队时,我时常会对难以捉摸,尤其是不能复现的bug感到恐惧,但细细寻找,你还是能看到蛛丝马迹。

通过合约进行设计
使用合约建立文档,并检验代码所做的事情正好是它声明要做的。规定好我们要传入的参数的类型,数量,将他们写在注释里,并对不合约定的参数进行处理。
要配置,不要集成

要将应用的各种技术选择实现为配置选项,而不是通过集成或工程方法实现。Yii框架的组件便是这一思想的最佳实践。

使视图与模型分离
要根据模型和视图设计你的应用,从而以低廉的代码获取灵活性。最近的nodejs好火,前后端分离是必然趋势,纯粹的模型测试起来也是非常方便。

测试你的软件,否则你的用户就得测试
无情的测试,不要让你的用户为你找bug

使用项目词汇表
创建并维护项目中使用的专用术语和词汇的单一信息源。这一点深有感触,为了方便,项目中通常会有一些简称,他对于业务人员是熟悉的,但编程人员却不这么想。

在你的作品上签名
过去时代的手艺人为能在他们的作品上签名而自豪。你也应该如此。坦白的说,签名之后再看这段代码会非常愉悦,有时还会陷入自我欣赏中,他其实还有一个作用,我对代码负责,我测试过并确保他的良好运行,也是一种自我监督吧

标签:代码,复用,一本,之道,程序员,修炼,测试,bug
From: https://www.cnblogs.com/zhanshuang/p/17347643.html

相关文章

  • #yyds干货盘点# LeetCode程序员面试金典:在排序数组中查找元素的第一个和最后一个位置
    题目:给你一个按照非递减顺序排列的整数数组nums,和一个目标值target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值target,返回 [-1,-1]。你必须设计并实现时间复杂度为 O(logn) 的算法解决此问题。 示例1:输入:nums=[5,7,7,8,8,10],target=......
  • 10个让你变成糟糕的程序员的行为
    1)情绪化的思维如果你开始使用不同颜色的眼光来看待这个世界的话,那么你可能会成为一个很糟糕的程序员。情绪化的思维或态度很有可能会把自己变成一个怪物。相信你经常可以看到很多很糟糕的程序会使用下面的这些语句:我的程序不可能有这种问题。Java就......
  • 十个行为把你变成糟糕的程序员[转]
    http://developer.51cto.com/程序员当然也是分级别的,不是所有的程序员都是一个合格或是优秀的程序员。建议大家可以看看这三篇文章,《介绍PHP程序员最易犯10种错误》、《15个注意事项决定程序员的未来》和《程序员深思八种级别八种人生》。下面介绍十个不好......
  • 程序员深思 八种级别八种人生[转]
    程序员深思八种级别八种人生本文主要介绍了程序员的八种级别,阐述了八中不同的人生。希望本文能够帮助到你,认清自己,继续加油!!AD:你有没有遇到过那个经典的面试问题,“你预见过自己5年后的职位吗?”。每当有人这样问时,我就会想到TwistedSister乐队从1984年......
  • IT界那些让人尖叫的程序员
    HelloFax程序员尼克·马拉(NealO'Mara)马拉十分聪明,7岁就开始编程。他在巴克纳尔上学,住在旧金山,是在线传真服务公司HelloFax的程序员。那些最性感的程序员谷歌副总裁玛丽莎·梅耶尔(MarissaMayer)梅耶尔1999年加盟谷歌,负责地理位置和本地化服务,是谷......
  • 程序员具备的素质魅力
    如果你喜欢上了一个程序员  如果你喜欢上了一个程序员,就不用再害怕电脑中病毒QQ被盗,因为他至少尝试过10款以上杀毒软件,他知道用那款占资源最少防毒效果最好的保护你的电脑。如果你喜欢上了一个程序员,就不用担心他会外遇,因为他工作内容深奥无边,每天沉醉于业务研究之中的他,没有应酬......
  • 读书笔记 程序员修炼之道
    我们看到过整洁、运行良好的系统,一旦窗户开始破裂,就相当迅速的恶化;不要留着破窗户不修;发现一个bug就修复一个,如果没有足够的时间进行恰当的修理,就用木板先订起来;或许你可以先把代码注释起来,或是显示“未实现”的消息;采取某种行动防止进一步的损坏,并说明情形在你的控制之下;投资知......
  • 十五年程序员从零开始学C#系列之(一)——Literals 字面量
    一、概念在计算机编程中,Literals(字面量)是指在程序中直接表示数据的一种方式。它们是在代码中出现的固定值,与变量不同,它们没有名称或标识符。Literals可以用于各种数据类型,包括整数、浮点数、布尔值、字符和字符串等。下面是一些常见的Literals类型:整数(IntegerLiterals):整数L......
  • #yyds干货盘点# LeetCode程序员面试金典:搜索旋转排序数组
    题目:整数数组nums按升序排列,数组中的值互不相同。在传递给函数之前,nums在预先未知的某个下标k(0<=k<nums.length)上进行了旋转,使数组变为[nums[k],nums[k+1],...,nums[n-1],nums[0],nums[1],...,nums[k-1]](下标从0开始计数)。例如,[0,1,2,4,5,6,7]在下标3处......
  • 程序员知识点(5)
    系统总线:系统总线性能总线的带宽(总线数据传输速度):单位时间内总线上传送的数据量,即每秒钟传送的MB的最大稳态数据传输率.总线的带宽=总线的工作频率*总线的位宽/8总线的位宽:能同时传送的二进制数据的位数,或数据总线的位数。即32位,64位等总线宽度的概念。总线的位宽越宽,每秒钟数据传......