阅读更多

10顶
0踩

编程语言

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

2013-11-27 15:36 by 见习编辑 tuhaihe 评论(5) 有17308人浏览
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 ...

  • 原生js图片圆形排列按钮控制3D旋转切换插件.zip

    原生js图片圆形排列按钮控制3D旋转切换插件.zip

  • 类似c++数组的python包

    内含二维数组与三维数组,分别为list2nd,list3rd

  • 原生js颜色随机生成9x9乘法表代码.zip

    原生js颜色随机生成9x9乘法表代码.zip

  • 原生js实现图片叠加滚动切换代码.zip

    原生js实现图片叠加滚动切换代码.zip

  • 【Academic tailor】学术小裁缝必备知识点:全局注意力机制(GAM)TensorFlow

    【Academic tailor】学术小裁缝必备知识点:全局注意力机制(GAM) 注意力机制是深度学习中的重要技术,尤其在序列到序列(sequence-to-sequence)任务中广泛应用,例如机器翻译、文本摘要和问答系统等。这一机制由 Bahdanau 等人在其论文《Neural Machine Translation by Jointly Learning to Align and Translate》中首次提出。以下将详细介绍这一机制的背景、核心原理及相关公式。 全局注意力机制(Global Attention Mechanism, GAM)由 《Global Attention Mechanism: Retain Information to Enhance Channel-Spatial Interactions》提出,是一篇针对计算机视觉任务提出的方法。这篇文章聚焦于增强深度神经网络中通道和空间维度之间的交互,以提高分类任务的性能。与最早由 Bahdanau 等人提出的用于序列到序列任务的注意力机制 不同,这篇文章的重点是针对图像分类任务,并未专注于序

  • 基于SpringBoot的“篮球论坛系统”的设计与实现(源码+数据库+文档+PPT).zip

    本项目在开发和设计过程中涉及到原理和技术有: B/S、java技术和MySQL数据库等;此文将按以下章节进行开发设计; 第一章绪论;剖析项目背景,说明研究的内容。 第二章开发技术;系统主要使用了java技术, b/s模式和myspl数据库,并对此做了介绍。 第三章系统分析;包罗了系统总体结构、对系统的性能、功能、流程图进行了分析。 第四章系统设计;对软件功能模块和数据库进行详细设计。 第五章系统总体设计;对系统管理员和用户的功能进行描述, 第六章对系统进行测试, 第七章总结心得;在论文最后结束章节总结了开发这个系统和撰写论文时候自己的总结、感想,包括致谢。

  • 毕业设计&课设_iOS 商城项目,含购物与商家管理功能,用 Sqlite,有账号示例,适合 iOS 开发练习.zip

    1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。

  • 镗夹具总工艺图.dwg

    镗夹具总工艺图

  • 原生js树叶数字时钟代码.rar

    原生js树叶数字时钟代码.rar

  • 近代非线性回归分析-韦博成1989

    近代非线性回归分析-韦博成1989

  • Rust语言中冒泡排序算法的高效实现与优化

    内容概要:本文详细介绍了用 Rust 语言实现冒泡排序算法的具体步骤,以及通过设置标志位来优化算法性能的方法。示例代码包括了函数定义、内外层循环逻辑、标志位的应用,并在主函数中展示了如何调用 bubble_sort 函数并显示排序前后的数组。 适合人群:具有基本 Rust 编程基础的学习者和开发者。 使用场景及目标:适用于想要深入了解 Rust 中冒泡排序实现方式及其优化技巧的技术人员。通过本篇文章,能够掌握 Rust 基本语法以及算法优化的基本思想。 阅读建议:除了仔细阅读和理解每一部分的内容外,还可以尝试修改代码,改变数据集大小,进一步探索冒泡排序的时间复杂度和优化效果。此外,在实际应用时也可以考虑引入并发或其他高级特性以提升性能。

  • 培训课件 -安全隐患分类与排查治理.pptx

    培训课件 -安全隐患分类与排查治理.pptx

  • 1-中国各地级市的海拔标准差-社科数据.zip

    中国各地级市的海拔标准差数据集提供了298个地级市的海拔变异性信息。海拔标准差是衡量某地区海拔高度分布离散程度的统计指标,它通过计算各测量点海拔与平均海拔之间的差异来得出。这一数据对于评估地形起伏对网络基础设施建设的影响尤为重要,因为地形的起伏度不仅会增加建设成本,还会影响信号质量。此外,由于地形起伏度是自然地理变量,它与经济社会因素关联性较小,因此被用作“宽带中国”试点政策的工具变量,以研究网络基础设施建设对经济的影响。数据集中包含了行政区划代码、地区、所属省份、所属地域、长江经济带、经度、纬度以及海拔标准差等关键指标。这些数据来源于地理空间数据云,并以Excel和dta格式提供,方便研究者进行进一步的分析和研究。

  • YOLO算法的原理与实现.pdf

    YOLO算法的原理与实现

  • 机器学习用于视网膜病变预测:使用 XGBoost 揭示年龄和HbA1c 的重要性 -论文

    视网膜病变是糖尿病和高血压的主要微血管并发症。如果不及时治疗,可能会导致失明。据估计,印度三分之一的成年人患有糖尿病或高血压,他们未来患视网膜病变的风险很高。我们研究的目的是检查糖化血红蛋白 (HbA1c)、血压 (BP) 读数和脂质水平与视网膜病变的相关性。我们的主要假设是,血糖控制不佳(表现为高 HbA1c 水平、高血压和异常脂质水平)会导致视网膜病变风险增加。我们使用眼底照相机筛查了 119 名印度患者的视网膜病变,并获取了他们最近的血压、HbA1c 和血脂谱值。然后,我们应用 XGBoost 机器学习算法根据他们的实验室值预测是否存在视网膜病变。我们能够根据这些关键生物标志物高精度地预测视网膜病变。此外,使用 Shapely Additive Explanations (SHAP),我们确定了对模型最重要的两个特征,即年龄和 HbA1c。这表明血糖控制不佳的老年患者更有可能出现视网膜病变。因此,这些高风险人群可以成为早期筛查和干预计划的目标,以防止视网膜病变发展为失明。

  • RL Base强化学习:信赖域策略优化(TRPO)算法TensorFlow实现

    在强化学习(RL)领域,如何稳定地优化策略是一个核心挑战。2015 年,由 John Schulman 等人提出的信赖域策略优化(Trust Region Policy Optimization, TRPO)算法为这一问题提供了优雅的解决方案。TRPO 通过限制策略更新的幅度,避免了策略更新过大导致的不稳定问题,是强化学习中经典的策略优化方法之一。

  • Spring 应用编译为原生可执行文件.zip

    1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。

  • 1-中国各地区普通小学毕业生数(1999-2020年)-社科数据.zip

    这组数据涵盖了1999至2020年间中国各地区普通小学毕业生的数量。它为我们提供了一个深入了解中国教育领域中普通小学阶段教育水平和教育资源分配情况的窗口。通过分析这些数据,可以为制定科学合理的教育政策提供依据,同时,通过比较不同城市的普通小学毕业生数,也能为城市规划和劳动力市场调查提供参考。数据来源于中国区域统计年鉴和中国各省市统计年鉴,包含了8472个样本,以面板数据的形式呈现。这些数据对于掌握中国教育态势具有重要的参考价值。

Global site tag (gtag.js) - Google Analytics