其实一个人写的代码跟这个人的性格是大致吻合的,房间很乱的人写的代码大约率也杂乱无章,理想世界还有物理规则的限制,代码世界里为所欲为,程序员在无拘谨的代码世界里必需要提升自我涵养。

最近看到几篇讨论代码好坏的帖子,不少人的观念中,好的代码应该具备良好的可读性,明晰的注释,要契合编程标准,变量命名要具备可读性等等。

这些都对,但是假如一段代码只契合这些,那是只注重了外表功夫,一段代码质量的中心请求还是这段代码要好用,毕竟,代码是要来用的而不是拿来看的。

首先要谈的是,今天的话题所聊的程序员包含哪些人?

在说之前,不得不提到一个很有名的程序员赵劼,他有过一个观念:“坚决反对北大青鸟等机构”,以前我也很赞同这个观念,但是如今,我在“赞同的根底上”,又坚决反对以至恶感赵劼们“发表这种观念”。由于这种观念,可以协助并作用到的人群,是赵劼们最不可能遇到的基层开发人员,而这些最不可能遇到的人,却恰恰是在中国的最普遍的程序员,他们也是赵劼们最不可能以至不太愿意协助的人。假如一个高阶程序员,自恃文科根底好,逻辑性强,有过完好的言语学习阅历,就以为至少到达这样才是程序员,以至觉得其他的不学数据构造的人就不要做程序了,那真是十分的妄自绵薄。

在中国,写程序,不只仅是一种兴味,更多的时分,还是一种普通职业和营生工具

大公司有凶猛的程序员,优秀的架构师,但大量的小公司也有很多普通的程序员。在我这些年的工作阅历中,也越来越深入的感遭到普通程序员的影响和力气。关于高阶程序员,所谓八仙过海各有神通,各有各的成就,各有各的涵养,但程序员在达成较高的程度之前,有一些“自我涵养”,是最根底的,是普世的。

再谈一谈,程序员进步自我涵养是为了什么?

程序写的好有人崇拜,有妹子喜欢?还是到博客、论坛、社区发表文章停止分享取得成就?我想这是少数人的追求,也是更高的追求,在这之前

我以为,在中国,程序员进步自我涵养的目的,是为了

1、更好的融入工作,减少艰难,增加成就

2、稳步的提升才能,进步收入,达成财务自在

2、站在更高的层面对待本人的学习和工作,树立愈加合适的人生观价值观,家庭幸福,生活高兴

说的更浅显一点,就是用愈加合理的方式和办法,赚取到更多的收入

功用完备

完好的功用是第一要素,这里强调完好性,请求代码完成十条功用,一条也不能遗漏。

有人说这还不简单?其实真的不是太容易,由于大多数时分,只是程序员以为本人功用全部完成了而已,程序员本人了解的功用跟实践需求的功用常常差距很大。

比方客户想要一个美女,这个客户说想要美女的时分心里想的是林志玲,由于这个客户喜欢温婉的古典美。

程序员表示收到了,但是别看这个这个程序员是个宅男,但那只是表象,当他听到美女的时分,心理想到的却是火辣的性感女神。

当客户拿到程序员完成的美女时,内心肯定是解体的,由于客户也不晓得该喜欢好还是不喜欢好,你说性感美女不美吗?也美,但就是不能感动客户的心啊。

这只是个浅显的比喻,形成这种现象的缘由是由于对一个需求的量化原则没有停止明白的规则,靠人的觉得去做常常背道而驰,由于人和人的差别性十分大。

做过测试的同窗应该十分分明,很多问题单都是由于规格的问题跟开发人员吵来吵去,测试人员以为手机温度到达75度就应该过温维护降低CPU功耗,但是程序员以为80度才应该过温维护,为了这5度的事争论不休。

所以,真正实现一段程序的完备性并不是那么容易的,那我们应该怎么做?

**需求澄清:**好的程序员会在这个环节花费大量的时间,那些说声好嘞就去写代码的程序员一般我都会把他们叫回来跟他们谈谈人生。要想做出客户想要的林志玲,你得跟客户反复的沟通,鼻子多大嘴什么形状都得问清楚,程序员需要设计好问题去深入发掘客户这个需求的原动力是什么,明白客户的需要究竟是什么。

**快速原型:**如果有可能,最好先实现一个简单的原型让客户确认,原型最大的作用是有一个可以进行讨论的实体,而不是凭感觉泛泛而论。客户如果说对对对我就是要这个,那就继续实现这个原型的细节,如果客户说这里不对那里得修改,那请跟客户把需要修改的点讨论清楚。比如客户觉得林志玲有点瘦,胖一点就完美了,那请跟客户讨论好是胖到100斤还是102斤。

**测试驱动开发:**最近几年比较流行的方法,开发之前先把验收用例写好,并跟你的客户达成一致。手机过温保护就是80度,验收用例写得清清楚楚,高一度低一度都不行,其实这样程序员实现起来反而省心,因为不用去猜80度合适还是75度合适。

要写出功能完备的代码就不能偷懒,请多花点时间细致澄清你的需求,别怕浪费时间,如果你实现偏了最后返工,只会浪费更多的精力,还会导致你的客户对你的不满。

可靠性强这个要求一定要放在第二位,这比后面的要求更重要,如果说完备性决定了代码能不能用,可靠性就决定了代码好不好用。

可靠性通俗点来说就是不管你怎么折腾,程序就是不会挂,你的代码放在那里好几年都布满灰尘了,但是运行起来还是杠杠的,从来不需要人来操心。
那么怎样做好代码的牢靠性呢?

变量边境值维护:变量的边境值是触发牢靠性问题的重灾区,边境值不只仅是0和256这样的整数边境,还有大量功用上的边境。普通0和256这样的整数边境和溢出边境都维护不好的程序员我觉得应该先下岗深思,很多定位艰难的踩内存程序跑飞问题都是由于边境值溢出招致的,随手一段代码让他人熬夜定位毛病好多天。功用性的边境也需求认真思索,我见过有些电机控制程序在器件挪动到头的时分还一个劲猛转,什么样刚强的构造都挡不住金刚钻成年累月这样折腾。

处置一切程序分支:很多程序员很懒,写代码只写正常功用那一个分支,他们脑子里事物的开展只要一条途径,不存在任何的异常和干扰要素。假如理想世界都是那么单纯就好了,可惜天不随人愿。请在一切的程序分支都写上异常处置,否则一旦跑入没有处置的分支,程序就有可能解体。假如不便当一切分支都细致写异常处置,那请在函数结尾处做兜底。

完善单元测试:这么多年编程经历通知我,哪里没有测试到,哪里就肯定会出问题。写作单元测试用例是有完善的工程办法的,别由于测试用例多就偷懒,请把单元测试用例写完备,从代码的最底层就把测试做好,这些测试用例自动化以后,能够持久守护你的代码。

增强系统牢靠性测试:很多人做测试大多数集中在测试功用完备性上,按我的经历,你要想保证程序的牢靠性,需求的测试用例至少是功用测试的两倍以上。各种运用场景、各种严苛环境、跨月的长期运转测试,条件允许的话倡议都要思索。有些人可能会说这样做是不是本钱太高了?我的倡议是测试用例的思索要尽量完备,假如觉得有些没有必要能够评价后裁剪掉,那种思索都没思索全面的测试是不能满足请求的。

再次重申,程序牢靠性最考验一个程序员的良知和涵养,这是个需求大量精神才干做好的活。

性能优秀性能在目前的高性能硬件环境下并没有那么重要了,或者说大多数情况下并不是主要矛盾。

但是在特殊的应用环境下,性能要求还是非常非常高,比如春节抢红包、通讯设备大批量用户同时接入、双11抢购、国家骨干网服务器等。

可扩展性强可扩展性时常被程序员忽略,因为这是个后效性的质量品质,一般都不会当场就被检验出来,都是在用了一年半载以后,需要增加功能进行软件升级的时候,才会集中爆发。

本人就曾经遇到过一个案例,只需要将一个模块的用户数从50人修改到100人,整个软件产品竟然涉及几百个修改点,客户觉得两分钟就改完的工作,连修改待验证折腾了两个星期。

总之,想要写好一段代码也不是那么容易的,资深程序员需求在软件工程才能和计算机根底科学理论上多投入精神,干一行爱一行,努力提升作为一个程序员的自我涵养。

程序员的自我涵养,写好代码的实战经历分享相关推荐

  1. 千万不要相信程序员在加班时间写的代码!

    其中最重要的就是这条:不要相信一个程序员在加班时间写出来的代码. (软件工程的学说表明,连正常时间好好写的代码,也不要太相信.不过这不是本文的重点,略过不提.) (不懂代码的人,看到本文中的Java代 ...

  2. 不要相信程序员在加班时间写的代码

    http://www.cocoachina.com/programmer/20161215/18359.html 不要相信程序员在加班时间写的代码 2016-12-15 00:01 编辑: suili ...

  3. java开发有不加班的吗_千万不要相信程序员在加班时间写的代码!

    作为一个最底层的程序员,我先记录一些只有底层程序员才会知道的事情.如果多年后,我违背自己进入这个行业的初心,走上管理岗位,也能回想起一些禁忌,避免一些错误. 其中最重要的就是这条:不要相信一个程序员在 ...

  4. (转载)不要相信程序员在加班时间写的代码

    作为一个最底层的程序员,我先记录一些只有底层程序员才会知道的事情.如果多年后,我违背自己进入这个行业的初心,走上管理岗位,也能回想起一些禁忌,避免一些错误. 其中最重要的就是这条:不要相信一个程序员在 ...

  5. 成年人的崩溃只在一瞬间,程序员凌晨三点写的代码竟被女友删了...

    对于恋爱中的情侣来说,吵架是很正常的事情,就算是再怎么亲密,也难免会出现意见不合的时候. 吵架不可怕,可怕的是,受吵架情绪的影响,做出一些比较"极端"的事情. 之前某社交平台上一位 ...

  6. 某程序员动了公司祖传代码屎山,半年没改完,惭愧后交辞职报告

    前段时间,有这样的一个话题,非常的火热,那就是关于程序员的,新入职程序员吐槽老员工写的代码就像是"一坨屎"!这样的言论瞬间就引起了程序员们的讨论. 有程序员认为,别看现在像是一坨屎 ...

  7. java程序员一天多少行有效代码,持续更新~

    Java程序员应该知道的20个有用的库经验丰富的优秀Java开发人员的一个特点是对API(包括JDK和第三方库)有广泛的了解.今天分享一些Java开发人员应该熟悉的最有用.最基本 程序员经常会因为不编 ...

  8. 在华为写了十几年代码,一个程序员的自我修养

    以下内容来自公众号逆锋起笔,关注每日干货及时送达 本文来自<华为人>徐宏伟,转载请注明出处 一天晚上,我和老婆聊天,说部门要我写个"大咖谈软件"的文章,老婆斜了我一眼, ...

  9. 别以为程序员的工作就是写代码

    大家好,我是鱼皮,今天给大家分享一个开发小经验. 很多没有实际工作过的同学,可能都会认为程序员的工作只有写代码 + 和产品经理 "拉扯",也会习惯性地用代码量来评价一个程序员的工作 ...

最新文章

  1. Oracle RAC 常用维护工具和命令
  2. python中实例方法分类_python方法的分类(实例方法、类方法、静态方法)
  3. Ansi与Unicode及慎用W2A等
  4. a股历史30年的大盘价_[最新]回顾A股历史上的大井喷行情
  5. jQuery解决高度统一问题
  6. C++继承体系下的对象构造
  7. ZkServer服务启动的逻辑-NIOServerCnxnFactory.configure
  8. fluent瞬态计算终止条件在哪里设置_Fluent案例7【圆柱绕流】
  9. 玩转算法第七章-二叉树与递归
  10. 如何利用 Webshell 诊断 EDAS Serverless 应用
  11. Magento 自定义分页代码 How to change pagination design in product listing page in magen
  12. 自然语言处理 —— 困惑度
  13. 计算机网络信息安全理论与实践教程-蒋建春
  14. AI+Science系列(一) :飞桨加速CFD(计算流体力学)原理与实践
  15. 信息系统安全思维导图
  16. snapchat注册不到_如何将链接添加到您的Snapchat快照
  17. 中译英提升:准译员如何“假装”自己很地道?丨打死个翻译官2.4
  18. python外星人入侵代码_Python外星人入侵完整代码和注释(一)
  19. 方格分割 (dfs+思维)
  20. 我们为什么需要实时数据库?

热门文章

  1. [OAuth2.0三方登录系列文章-1]OAuth2.0与三方登录的端到端方案
  2. 只需一步,永久白嫖!请低调使用!
  3. MIT 18.02 多变量微积分总结(Part I)
  4. 51单片机免冷启动下程序不用断电重启也能下载
  5. 基于c语言实现的个人理财系统,基于Android的个人理财系统—设计和实现-论文最终版.doc...
  6. 【高等数学】抛物线图像的画法
  7. 俄罗斯黑客挑战美国国家网络安全
  8. MOOS程序解析记录(6)uSimMarine解析2
  9. python学习-调用邮件接口发送邮件
  10. Python数据分析-numpy