阅读更多

2顶
0踩

非技术

转载新闻 成为优秀程序员的十个Tips

2015-07-01 15:44 by 副主编 mengyidan1988 评论(0) 有4579人浏览
理解技术债务

技术债务就像信用卡一样,会有很高的利息率,时间越长,修复所花的代价就越大,程序员对这个要有深刻的认识。同时团队应该培养一种保证设计质量的文化,应当鼓励重构、同时也应当鼓励其它有关代码质量的实践,在开发时间中应当专门抽出一部分以解决技术债务。如果没有合适的照料,代码会变得越来越复杂难懂,最后没人想碰它。

保持对原理的好奇心

不仅知道怎么用,还知道是什么原因。比如你做Android, 可以了解一下他的事件分发机制是什么样的,它的Measure/Layout是怎么work的,有时间读一读它的源代码, 看看他的原生控件是怎么实现的. 学iOS,了解一下它的内存管理,autorelease是怎么工作的,runtime是怎么工作的, runloop的原理是什么。做Server开发,可以了解一下Nginx为什么性能好,Redis的工作原理如何,有时间也可以读读其源代码。 做前端,也可以读一读 Angular 或 React 的源代码。

专注

程序员的工作效率可以相差很大,其中区别很大的一点就是是否专注,就像线程切换一样,恢复上下文有很高的代价。建议合理安排好自己的时间,尽量在上午/下午留大块的专注时间来做设计和编程,关掉IM/邮件/微信, 把面试/会议等安排在大块时间之外, 同时也建议可以尝试一下番茄工作法。

同理心

写代码时要有同理心,考虑一个有少量上下文甚至完全不了解上下文的另外一个程序员他会怎么样读这个代码,这样自然就知道怎么写出可读性好的代码,该怎么命名,什么地方该加注释。 考虑以后维护代码的这个人就是你自己,这样在偷懒做一些临时的workaround时就会三思。 交付给测试人员时也要有同理心,有没有做基本的质量保证,有没有跟测试沟通改动可能的影响范围,让测试人员可以更有针对性的测试。

谋定而后动

好的程序员不是拿到需求就开始写代码,而是先考虑清楚。 需求是否合理,是否能解决用户的问题,逻辑上是否有模糊或不完备的地方。 然后考虑设计的问题,流程图是什么样的,类图是什么样的,接口是什么样的,对架构和模块的影响是什么样的,考虑清楚后才开始写代码。

架构思维/全局思维

理解整体架构是什么样的,你开发的模块在架构中的层次,新增的改动会不会对架构有污染,是否需要调整架构,所开发的模块可否抽象成通用模块 或者可否复用已有模块,或则重构已有模块达到可复用目的。

设计语言

掌握适当的设计语言,比如 Plantuml 或 Visio,或者是一些设计模式,知道如何以简单清晰的方式去跟其他程序员描述和沟通你的设计和架构,大家理解一致了,才能更有效率的合作。

追求代码质量

代码质量是程序员的立足之本,在这一点上,要有精益求精的“匠心”。 我看到很多普通程序员做了不少项目后水平提升仍然不明显,无它,对代码质量没有精益求精的精神。 代码规范,健壮性,可读性,可维护性,无重复代码等等,都要精益求精。

代码审查

代码审查是保证代码和工程质量的最有效手段,优秀的公司(比如Facebook, Google)和优秀的团队(比如我们,欢迎关注团队公众号 mtydev)都非常重视代码审查。如果你还不能认识到它的重要性,可以查看这里

自动化

好的程序员都应该有自动化思维和工具思维,都应该会一门脚本语言,有自己的工具库。我们应该通过工具及自动化来改善我们的工作效率,以及避免一些人为的失误。

来自:Jim's blog
来自: Jim's blog
2
0
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 优秀程序员:从中学习并成为自学成才的程序员的资源集合

    优秀程序员:从中学习并成为自学成才的程序员的资源集合

  • 基本复制应用实例(转)

    基本复制应用实例。[@more@]作者:石骁騑 | 来自:不详 | 点击:253 | 发布:2001-11-8 复制是一种实现数据分布的方法,也就是说把一个系统中的数据通过网络分布到另外一个或者多个地理位置不同的系统中,以适应可...

  • 成为伟大程序员的 10 个要点

    当然,这10个要点中的所有内容并不都是完全正儿八经的,有些事情只是我的看法,你的情况可能会有所不同,所以如果出现矛盾的话,不要耿耿于怀。 这些要点是: 1.学习如何提问 提问题的程序员基本上有这些类型:...

  • 101 Tips For Being A Great Programmer (& Human)——101条成为优秀程序员的tips(上)

    分享之前看过的一条Twitter中提到的101条成为优秀程序员的tips 根据自己的理解翻译一下,相信这里面有很多对你有帮助的点。 So, let’s do it! 101 Tips For Being A Great Programmer (& Human) 1. 善于...

  • 成为一名优秀程序员的101个小建议

    点击上方 "程序员小乐"关注公众号,星标或置顶一起成长每天早上8点20分,第一时间与你相约每日英文Love fight, get treasure, Miss for...

  • 成为优秀Java程序员的10个要点

    最近我在接受采访时被问到我关于成为一名...当然,这10个要点中的所有内容并不都是完全正儿八经的,有些事情只是我的看法,你的情况可能会有所不同,所以如果出现矛盾的话,不要耿耿于怀。 这些要点是:1.学习如何提...

  • 101 Tips For Being A Great Programmer (& Human)——101条成为优秀程序员的tips(下)

    继上一篇blog,分享接下来的51条tips 101 Tips For Being A Great Programmer (& Human) 51.杀死汝爱 你编写了一些代码并不意味着你需要眷恋它。没有人愿意抛弃掉他们之前的工作结果,但是代码有他们自己的生命...

  • 成为更加优秀的程序员的10个要点

    下面,我将作为一名有着多年编程经验的专业程序员,分享一些精华——它们已经帮助我提高了我的代码质量和整体的工作效率,希望也能对你有所裨益 。 1.永远不要重复代码 不惜一切代价也要避免重复代码。...

  • 101条成为优秀程序员的建议 总结

    101 Tips For Being A Great Programmer (& Human) 善于利用谷歌搜索 中文搜索使用baidu, 英文搜索使用google, bug使用google 超时承诺和提前交付 为你的任务预留buffer,然后超额交付,建立业务或他人...

  • 如何成为一名优秀的程序员!

    链接地址:icodeit.org/2017/07/tips-for-newbies/ 简单归纳一下,总共有7条: 1、保持健康 2、编程之外的爱好 3、持续学习 4、正确应对犯错 5、不要囿于角色 6、展示你的创意 7、刻意练习手速 保持健康 三寸气在...

  • 【译】成为优秀程序员(和人类)的101个技巧

    作为一个编码者,意味着你需要搜索你问题的答案。通过有效地使用谷歌,你将节省很多开发时间。 2.承诺和交付 最好让你的团队知道一项任务将花费三周的时间,并以两种方式交付的事情。通过给予承诺和过度交付,你将...

  • 成为明星程序员的10个提示

    本文来源于我在InfoQ中文站原创的文章,原文地址是:http://www.infoq.com/cn/news/2013/12/10-tips-to-become-star-developerAndrew C. Oliver是Open Software Integrators公司的总裁与创始人,公司主要与一些开源...

  • 优秀程序员的三重境界

    不论出于哪种目的,想要成为一名优秀的IT程序员,你或许永远绕不开以下三重境界: 第一重:以提升自我IT技能为基础 没有过硬的职场技能,没有过身居一线的经历,想要晋升成为一名优秀的程序员,总是显得那么不...

  • (转)如何成为一名优秀的程序员?

    作为一个从业快10年的程序员,我想给新入行的程序员们一些建议。这些建议是我希望自己可以在毕业的时候就读到的,也希望它们可以帮助你成为一个更好的程序员。 简单归纳一下,总共有7条: 保持健康 编程之外的爱好 ...

  • 运动控制领域8轴插补运动控制源码:双DMA实现高频率脉冲输出与加减速控制

    内容概要:本文详细介绍了8轴插补运动控制系统的实现,重点探讨了双DMA技术的应用,实现了高频率脉冲输出(最高可达500kHz)。文中首先解释了双DMA的工作原理及其相对于传统脉冲输出方式的优势,即减少CPU负载并提高数据传输速率。接着阐述了8轴插补算法的设计思想,包括基于时间分割的方法来确定各轴在特定时间段内的脉冲数。此外,还讨论了加减速控制策略,尤其是S型加减速算法的应用,以确保运动的平顺性。最后,文章展示了具体的代码实现细节,涵盖DMA配置、插补算法、加减速控制等方面。 适合人群:从事运动控制系统开发的技术人员,尤其是对嵌入式系统有一定了解的研发人员。 使用场景及目标:适用于需要高精度、高频脉冲输出的工业应用场景,如工业机器人、3D打印、激光切割等。目标是帮助开发者理解和掌握8轴插补运动控制的关键技术和实现方法,从而应用于实际项目中。 其他说明:文中提供的代码示例主要基于STM32系列单片机,但相关概念和技术可以迁移至其他平台。同时,强调了硬件细节处理的重要性,如RC滤波电路的应用,以应对实际工程中的常见问题。

  • 2303040222橡胶232熊文栋(苯乙烯悬浮聚合)副本.pdf

    2303040222橡胶232熊文栋(苯乙烯悬浮聚合)副本.pdf

  • 音乐喷泉控制系统设计:基于Altium Designer的原理图与代码实现

    内容概要:本文详细介绍了音乐喷泉的设计与制作过程,涵盖了从原理图绘制到具体代码实现的各个方面。首先介绍了Altium Designer这款强大的电子设计软件,接着展示了如何利用现有文件进行设计,包括水泵控制、灯光效果和音乐解析三大核心模块的具体实现方法。文中提供了多个代码片段,如单片机控制喷头升降、PWM调速控制水泵以及灯光效果同步音乐节奏等。同时,强调了在实际制作过程中需要注意的问题,如焊接温度、布线规划、元件选择等。此外,还分享了一些实用技巧和经验教训,帮助读者更好地理解和应用相关知识。 适合人群:对电子设计感兴趣的爱好者、初学者以及有一定基础的电子工程师。 使用场景及目标:适用于希望深入了解音乐喷泉工作原理和技术实现的人群,目标是掌握如何使用Altium Designer完成音乐喷泉的电路设计,并能够编写相应的控制代码。 其他说明:文章不仅提供了详细的理论讲解,还包括了许多实战经验和技巧,有助于读者在实践中少走弯路。

Global site tag (gtag.js) - Google Analytics