阅读更多

10顶
0踩

编程语言

转载新闻 顶级程序员的10条最佳实践

2013-11-27 15:36 by 见习编辑 tuhaihe 评论(5) 有17282人浏览
1. 慎重选择第 1 门语言

Sam Kaufman(自由职业者,iOS 开发者,10x Management) 写道
编程语言各有不同,不过区别不大。但用语言的人区别就大了。选择了一门语言你就选择了一个群落。

Erin Parker(Spitfire Athlete 创始人兼首席开发者) 写道
如果你想快速建立原型(尤其对于希望对产品进行迭代升级的创始人来说),那就用 Ruby 或者 Javascript。


2. 你不是程序猿!

John Coggeshall(自由职业者,web 开发者,10x Management,PHP 核心贡献者) 写道
伟大的开发者能够建构并开发应用。惊艳的开发者能够在关注业务的同时做这件事。业务端的人大都不懂编码,但是肯定能够理解特定功能背后的动机。

别人说什么开发者就做什么,没有去理解为什么要这么做,导致双方均错失了机会,这样的事情太常见了。


Greg Sadetsky(Python 及 Javascript 专家,10x Management,协同办公空间 Abri.co 创始人) 写道
精通编程是一个崇高的职业目标。一旦实现了这个目标,别忘了考虑一下你自己。不要成为任何公司的奴隶或者在毫无价值的东西上浪费你的时间。

Andrew Wilcox (web 应用开发者,Meteor 核心贡献者,10x Management) 写道
要想按期完成,得在开始技术工作之前事先进行项目沟通(哪怕这并非先决条件),因为其他人的响应速度千变万化。


3. 保持敏捷,不断交付

Max Nanis(自由职业者,web 开发者,生物信息学专家,10x Management) 写道
早发布,不断发布,边说唱边发布。

Jeremy Green(自由职业者,web 开发者,专长 Ruby on Rails,10x Management) 写道
不断测试。好的测试包如保单和煤矿里的金丝雀之结合。它能帮助你在生产周期中更早地找出错误,而错误越早发现越容易解决。

Stephanie Volftsun(Knotch 联合创始人兼 CTO) 写道
快速失败。编码(及生活)时我希望尽早知道什么地方不能工作,而不是放任不管让它增殖扩散。全面放开,快速失败,修补缺陷,不断继续。

Zoran Kacic-Alesic(Industrial Light & Magic 研发主管) 写道
为所有代码编写自动测试!尽可能践行测试驱动的开发。


4. 保持对测试流程的控制

Sanjib Sahoo(tradeMONSTER CTO) 写道
许多项目深受多测试周期之苦。这会拖累项目,导致组织整体出现高级别的问题。

程序员应该专注于对自己的代码进行单元测试及半回归测试。他们比其他任何人更了解代码库,也知道自己会影响到哪些变更。有时此类变更会由于 QA 测试范围有限而缺失,因此导致生产环节出现重大问题。

Seth Purcell(Signpost 工程副总裁) 写道
要想在力所能及的情况下尽快开发出无缺陷代码,永远永远也不要把写测试放到后面。我们更清楚这一点。要检查一下测试的覆盖率,确保 100% 无死角。


5. 如果你是自由职业者,要学会说不,哪怕面对的是金钱

Ryan Waggoner(自由职业者,web 及移动应用开发者,10x Management) 写道
要对时间和成本有一个合理的评估,然后把它加倍。如果大家都说“这应该很简单,”那就做


6. 荣誉属于过去:理论是一回事,但实践更重要

James Cropcho(General Assembly 的 Ruby on Rails 专家及讲师) 写道
改进软件开发质量的最好方式就是去开发软件。许多雄心勃勃的刚入门的工程师花了很多的业务时间去读书,关于最新工具的、关于开放流程的,诸如此类的东西。

很多人都是这么消磨自己的闲暇时间的,但这样很容易就把你给耽搁了。别这样,通过尽可能用脑来强化大脑负责开发软件的那部分。

Andrew Waage(Retention Science CTO 及联合创始人) 写道
不断探索。我见过的许多编码者手上都有几个在进行的业务项目。做业务项目迫使你要探索新技术然后学习创建应用的方方面面。你可能需要做前端的 HTML/CSS,后端的 API 集成,数据库优化,做移动 app,还得设置自己的服务器。


7. 结对评审是你的秘密武器

Sanjib Sahoo 写道
结对编程非常必要。两个程序员联合开发同一个模块可以相互审查对方的代码。开发团队每周也要召开代码审查会议,让每一个开发者给其他人的代码提供反馈意见,解释如何更好地改进代码。这能够形成一种协作文化,把开发者的自负抛开!


8. 像躲瘟疫一样避免过早优化

Seth Purcell 写道
只有在问题和解决方案都出现在你面前时才进行重构—过早重构是时间上的巨大浪费。不要投入半年后可能被扔掉的任何东西的完善上。过早优化是罪恶之源。

Mariya Yao(Xanadu Mobile 创始人兼创意总监,移动开发者及设计师) 写道
不要过早优化!我不断看到工程师在用户还没有到 1000 的时候一再对扩充到 100 万的用户规模担心。


9. 你的代码只写一次,可别人会读它千万遍

Tracy Chou(Pinterest 软件工程师) 写道
你写的代码机器会解析执行,可其他人却需要读你的代码,理解它,摆弄它。你必须明白,你的代码会有未来的观众。代码也是一种书写形式的沟通。

Wai Ching Jessica Lam(Sugarbox 联合创始人兼 CTO) 写道
听起来很奇怪,但是你永远都得替自己的未来着想。问问自己:如果你有健忘症的话,你还能不能理解自己写过的代码?

Kitt Vanderwater(Google 软件工程师) 写道
通读你的文档。设计改动很多,有时候代码更新的时候注释不一定会跟进。保持文档的更新,未来的人(包括你自己)理解起来就更容易。我说不清有多少次我看回自己代码时总在想:“我到底在干什么?”只要我写出了好的注释,未来头疼就少很多。


10. 这是一个崇高的职业,把你的技能用到好的地方

Greg Sadetsky 写道
帮助他人是深层次的人类需求。想办法用你的工作来改善人类,你就会有成功的把握。


原文:10 best practices from top coders at Google, Pinterest & more / 翻译:36Kr
10
0
评论 共 5 条 请登录后发表评论
5 楼 transist 2014-02-25 10:51
不少工程师都有过度优化的强迫症
4 楼 ranzhengyuan 2013-12-01 21:34
nice
3 楼 showvim 2013-11-28 10:13
后面的几条觉得挺不错的,开始的几个,感觉没怎么看懂
2 楼 迟来的风 2013-11-28 09:02
very good
1 楼 kuchaguangjie 2013-11-28 01:32
说的有道理

发表评论

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

相关推荐

  • 顶级程序员的 10 条最佳实践

    1. 慎重选择第 1 门语言Sam Kaufman(自由职业者,iOS 开发者,10x Management) 写道编程语言各有不同,不过区别不大。但用语言的人区别就大了。选择了一门语言你就选择了一个群落。Erin Parker(Spitfire Athlete ...

  • 埃森哲制药企业数字化转型项目顶层规划方案glq.pptx

    埃森哲制药企业数字化转型项目顶层规划方案glq.pptx

  • 华为OD机试D卷 - 机场航班调度程序 - 免费看解析和代码.html

    私信博主免费获取真题解析以及代码

  • 基于FPGA读取设计的心电图代码源码+全部资料齐全.zip

    【资源说明】 基于FPGA读取设计的心电图代码源码+全部资料齐全.zip基于FPGA读取设计的心电图代码源码+全部资料齐全.zip 【备注】 1、该项目是高分课程设计项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过mac/window10/11/linux测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(如软件工程、计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也可作为课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!

  • 基于Hadoop平台的分布式搜索引擎的设计与实现+部署文档+全部资料 高分项目.zip

    【资源说明】 基于Hadoop平台的分布式搜索引擎的设计与实现+部署文档+全部资料 高分项目.zip基于Hadoop平台的分布式搜索引擎的设计与实现+部署文档+全部资料 高分项目.zip 【备注】 1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!

  • 华为OD机试D卷 - 数的分解 - 免费看解析和代码.html

    私信博主免费获取真题解析以及代码

  • 基于Hadoop的智能购书系统的设计与实现+部署文档+全部资料 高分项目.zip

    【资源说明】 基于Hadoop的智能购书系统的设计与实现+部署文档+全部资料 高分项目.zip基于Hadoop的智能购书系统的设计与实现+部署文档+全部资料 高分项目.zip 【备注】 1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!

  • setuptools-27.2.0.zip

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

  • 基于 python 在树莓派上面实现摄像头视频人脸识别

    【作品名称】:基于 python 在树莓派上面实现摄像头视频人脸识别 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【项目介绍】:基于 python 在树莓派上面实现摄像头视频人脸识别

  • setuptools-28.4.0.zip

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

  • setuptools-16.0.zip

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

  • setuptools-68.2.0-py3-none-any.whl

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

  • 基于MQTT的校园新闻APP原生Android源码.zip

    基于MQTT的校园新闻APP原生Android源码.zip基于MQTT的校园新闻APP原生Android源码.zip基于MQTT的校园新闻APP原生Android源码.zip基于MQTT的校园新闻APP原生Android源码.zip基于MQTT的校园新闻APP原生Android源码.zip基于MQTT的校园新闻APP原生Android源码.zip基于MQTT的校园新闻APP原生Android源码.zip基于MQTT的校园新闻APP原生Android源码.zip

  • setuptools-0.9.8-py2.py3-none-any.whl

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

  • 电压检测系统(含VB上位机+下位机程序)proteus仿真+程序资料

    【作品名称】:电压检测系统(含VB上位机+下位机程序)proteus仿真+程序资料 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【项目介绍】:电压检测系统(含VB上位机+下位机程序)proteus仿真+程序资料

  • 第三讲python基础day03.zip

    第三讲python基础day03.zip

  • 电子周跟踪:AI市场竞争加剧,AIPC加速落地,关注联想4月18日科技创新大会.pdf

    电子元件 电子行业 行业分析 数据分析 数据报告 行业报告

  • 华中科技大学电信专业 课程资料 作业 代码 实验报告-操作系统-内含源码和说明书.zip

    华中科技大学电信专业 课程资料 作业 代码 实验报告-操作系统-内含源码和说明书.zip

  • 基于Hadoop的VGI矢量空间数据管理方法研究.docx

    本研究提出了基于Hadoop的VGI矢量空间数据管理方法,旨在解决VGI数据管理中的诸多挑战。通过利用Hadoop的分布式计算平台,实现了对VGI数据的高效管理和分析,提高了数据的准确性和一致性。 适用人群:本研究的方法适用于地理信息系统领域的研究人员、空间数据管理者、以及对VGI数据感兴趣的社会学者和政策制定者。 使用场景及目标:该方法可以应用于处理大量VGI数据的管理和分析,为地理信息系统的应用提供更准确、更及时的数据支持。在实际场景中,可以用于城市规划、交通管理、环境监测等领域的数据处理和分析工作,促进社会各个领域的发展和进步。 其他说明:通过实验和案例分析验证了基于Hadoop的VGI矢量空间数据管理方法的有效性和可行性,展示了其在实际应用中的优势和潜力。该方法对于推动VGI数据的管理和应用具有重要的意义,为地理信息系统和空间数据管理领域的进步提供了新的思路和方法。

Global site tag (gtag.js) - Google Analytics