网星:如何做一个好的程序员?

156人已阅读 2018-07-02 16:50:15
导读 「我不是卓越的程序员,我只不过是一个有着卓越习惯的程序员。」一位优秀的技术员曾这样说道自己。
Python培训 JavaEE培训 WEB前端培训 网络安全 嵌入式开发 Android培训 UI设计培训 软件测试培训 IOS培训

新闻详情

2018-07-02 16:50:15

网星如何做一个好的程序员

  以下是【西安网星IT】小编为大家编辑的内容,希望可以帮到大家!

新闻介绍:

  「我不是卓越的程序员,我只不过是一个有着卓越习惯的程序员。」一位优秀的技术员曾这样说道自己。

  那到底是哪些习惯成就了优秀/卓越的程序员?

  ☛尽量亲自动手去完成事情,你将会有一种直觉,知道如何去处理该事物。

  ☛积累案例,从数据表中标注着你已获得的数据开始。(关于这一点:rluhar评论补充说,这不仅适用于数据科学,也适用于解决任何数值问题。用一个电子表格(或一个R/PythonNotebook)来实现算法并获得一些结果,在过去帮助我真正理解了问题,避免走死胡同。例如,在建立一个外汇定价系统时,我能够使用电子表格来描述定价算法是如何*的,并向交易者(最终用户)解释它。在执行和部署算法之前,我们可以调整计算并确保一切都清楚。很好的建议!)

  ☛在找到通用办法之前,先找到一种能解决当前问题的办法。

  ☛让算法本身输出调试信息。你应该能够转储每一步的中间结果,并用文本编辑器或是Web浏览器手动检查它们。

  ☛不要为单元测试操心,定义出正确行为才是首要的。

  ☛检查文件的大小,*的文件总是*含了程序的实体部分,至少是指向程序实体内容的分派程序。

  ☛从主循环调度开始单步调试程序,可以学到很多关于控制流的东西。

  ☛寻找数据结构,特别是做为参数传递到许多函数中的那些。大多数程序具有一个小的关键数据结构集合,找到它们,理解代码的其余部分会变得容易的多。

  ☛写单元测试,这是确认你所理解的代码与真实代码*方式无误的*方法。

  ☛移除代码,看看什么出问题了。

  ☛在开始所有*之前,甚至是在剖析(profile)之前,建立一套代表典型现实世界的使用基准。别让性能倒退,除非你确信已经登峰造极,高处不胜寒,并且更好的解决方法还藏在世界的某个角落里无人发现(如果出现了那种情况,在版本控制系统(VCS)中标记你的分支,以便在发现错误之后回来更改。)。

  ☛许多性能瓶颈都出现在系统的交叉处。在所有RPC框架中搜集时间统计数据,并且有一些方式来传播和可视化每个服务器的请求时间,以及哪些部分的请求是并行的,哪里是关键路径。

  ☛通常,避免不必要的*可使你赢在起跑线上。缓存*的计算结果,粗略评估不常用的东西。

  ☛不要忽视常量因素。有时候一个渐进性更差的算法在实践中执行的很好,原因是其具有更好的缓存局部性。为此,你可以在多次调用的函数中识别出威胁。

  ☛不要想当然地去构建,确保你所加入的每个特性都有客户在用。

  ☛谨慎地控制依赖。为了某个效果而引入的库,可能会帮你节省一个小时,但也会导致更多地方被破坏——部署、版本控制、安全性、日志记录、意外的进程死亡。

  ☛当为个人或小团体开发的时候,把出现的问题累积起来,然后一次性全部解决(或者扔掉代码库,然后重新启动)。当为大型团队开发时,永远都不要让问题堆积,代码库应该始终处于新的开发人员可以看懂的状态,他们会说:“我知道这是做什么的,也知道如何更改它”(代码的)阅读者/编写者的比例结果是这样的:初始代码的编写多过阅读,因此可读性不那么重要,但成熟代码的阅读多过编写。

  

上一篇: 网星:编写代码的正确“新姿势” 下一篇: 网星:学习是一种积累,是一种过程——java

相关文章

推荐课程

查看全部课程
西安网星IT培训学校

西安网星IT培训学校

莲湖校区

查看全部校区 进入官方主页