史上最最佳软件开发实践指导

标签: 技术技巧 | 发表时间:2013-03-01 00:09 | 作者:Aqee
出处:http://www.aqee.net

每过一段时间,我都能读到一些好东西,它是如此的深刻见解,写的如此的清晰,如此的条理,我必须把它收录进我的个人“史上最佳”圣物集里。最近,我新收录了一篇,非常棒的一篇叫做《 Best Practices for Scientific Computing》的文章,我希望每个来读本文的读者都找个时间读读它。我在这里列出它的要点,是要鼓励你去阅读完整的全文。写的真是非常好。

  1. 给人写程序,而不是给计算机。
    1. 一个程序,对于阅读它的人来说,不应该要求读者一次性的在大脑里加载过多的背景/相关知识。
    2. 命名需要一贯、明确、有意义
    3. 代码风格和格式要统一一致
    4. 软件开发中的各种工作都要分割成1小时左右的任务
  2. 重复性的工作自动化。
    1. 让计算机去做重复性的工作
    2. 把最近使用过的命令存到一个文件里,以备复用
    3. 使用编译工具来自动化系统流程
  3. 用计算机做历史记录
    1. 用软件工具来自动跟踪计算机的工作
  4. 逐步改进。
    1. 每次做一小步,及时获得反馈,及时纠正
  5. 使用版本控制。
    1. 使用一个版本控制系统
    2. 所有由手工创建的东西都要放到版本控制系统里
  6. 不要重复自己(或他人)。
    1. 系统中的每一段数据都要有一个权威的单一的存在
    2. 代码应该模块化复用,而不是考来粘去
    3. 复用代码,而不是重写代码
  7. 准备好对付错误的方法
    1. 在程序中增加断言,检查它们的各种操作
    2. 使用现成的单元测试框架
    3. 测试程序时借鉴所有的可用的经验
    4. 把bug做成测试用例
    5. 使用一个有代码指令的调试工具
  8. 只在软件能正确的工作后才可优化。
    1. 使用监控工具找到瓶颈
    2. 尽可能的用高级语言写程序
  9. 文档里描述的应该是设计思路和目的,而不是技术细节。
    1. 描述接口和原因,而不是实现
    2. 重构代码,而不是注释解释运行原理
    3. 引用其它程序时嵌入其它程序的文档
  10. 协作
    1. 代码合并前进行代码审查
    2. 当帮带新成员或解决特别诡异的问题时使用结对编程

我要额外提到的是这个:

11. 维新旧代码。

如果你还在犹豫不决是否去看那篇文章,那你先去看看它里面列出的引用67部关于计算机的著作和文章。正如我说的,这篇文章是“史上最佳”。


本文由 外刊IT评论网( www.aqee.net)原创发表,文章地址: 史上最最佳软件开发实践指导

相关 [软件开发 实践] 推荐:

史上最最佳软件开发实践指导

- - 外刊IT评论
每过一段时间,我都能读到一些好东西,它是如此的深刻见解,写的如此的清晰,如此的条理,我必须把它收录进我的个人“史上最佳”圣物集里. 最近,我新收录了一篇,非常棒的一篇叫做《 Best Practices for Scientific Computing》的文章,我希望每个来读本文的读者都找个时间读读它.

软件开发人员的最佳实践

- - CSDN博客综合推荐文章
        最近在一个网站上看到一篇写关于软件开发人员应该有的几项实践,感觉写的非常的好. 下面将列举下文章中提到的几个方面.         首先文章中提出,软件开发人员需要不断的练习,什么是练习,为什么要练习,练习意味着什么. 练习是一种习惯,练习是一个过程,练习并不意味着记住,练习需要不断的实践,练习需要专心致志的付出.

软件开发中的最佳实践是什么?

- - 博客园_新闻
英文原文: What Is a Best Practice in Software Development?. 刚才,我在 Pluralsight 网站发布了一个教程,标题为“ 促成商业交易的最佳实践”. (如果你想阅读、但没有 Pluralsight 账号,请注册右边侧栏中的邮件列表,我将给你发送一份免费的 30 天订阅).

软件开发的核心

- - 博客园_知识库
  「我们一直这样做开发,时间做久了,便忘了当初的本意.   有关软件系统开发,我们谈些什么.   我们谈过程,编码规范、开发流程、同行评审、结对编程、持续集成,从瀑布到敏捷再到极限编程.   我们谈架构,企业级、J2EE、容器化、SOA(面向服务架构)、Microservices(微服务化).   我们谈规模,大容量、高并发、大数据.

软件开发的“三重门”

- - 酷壳 - CoolShell.cn
自从上次写了“ 程序员技术练级攻略” 以来,就觉得似乎还有很多东西没有谈到,但当时没有继续思考了. 而春节前有人问我,是做底层技术,还是做业务. 这问题让我思考了很多,不由自主地回顾了一 下我这十多年的软件开发经历,并顺着整理分类了一下自己解决过的若干问题,还发散想了很多,经过了一个春节假期的发酵,产生了下面这篇文章.

软件开发的人文关怀

- - 博客园_知识库
  几年前,我从温伯格的《技术领导之路》中学到一点:技术人员往往更喜欢和机器打交道,因为他们“认为”自己更适合和机器打交道;但是,优秀的技术人员必须(也必然)具备好的沟通能力. 所以,温伯格鼓励各位技术人员多加练习和其他人打交道的能力. 温伯格的这个观点我是非常赞成的,好的技术人员一定需要“勇敢”面对他人,不能被“自实现的预言”局限在机器的世界里.

软件吞噬软件开发

- - PingWest中文网
软件蚕食世界,自互联网特别是移动互联网连接线上线下服务后,已成为不可逆的趋势. 每一项实用的服务可以由小团队来完成. 以WhatsApp为例,这款被高调收购的IM应用,拥有4.5亿月活跃用户,70%的日活跃率,至今还保持每天新增用户1000万的速度. 但这些服务居然由32名工程师支撑下来了,所以有了业界八卦“每位员工价值20亿”的说法.

软件开发中的两种态度

- - 外刊IT评论网
一种态度认为,应该对程序员在软件开发中的行为进行约束( DirectingAttitude). 持这种态度的人认为大部分的程序员水平都不高(谣传说有50%的人低于平均水平),所以应该对他们所做的事情进行管教约束. 要防止他们做一些可能会给他们正在开发的系统带来危害的事情. 通常,这种态度体现在一些系统设计和工具中时,你会发现它们会试图阻止程序员去做某些事情,限制程序员的一些做法,以此避免他们陷入过于复杂的境况.

软件开发的人文关怀

- - 极客公园-GeekPark
我是极客公园黑板报认证值日生. [核心提示]软件可以没有活力,而软件开发却不能没有活力;程序可以像机器一样,程序员却不能像机器一样. 要改变这种状态,就应当增添更多的人文关怀,把开发人员当成活生生的人,而不是视为程序或者工具. 编辑注记:本文来自余晟的博客 乱象,印记. 作者从自己的经验出发,提出了一些给软件开发人员提供人文关怀的可行措施.

软件开发模型综述

- - CSDN博客推荐文章
                     软件开发模型概述. 最早出现的软件开发模型是1970年W·Royce提出的瀑布模型. 软件开发模型(Software Development Model)是指软件开发全部过程、活动和任务的结构框架. 软件开发包括需求、设计、编码和测试等阶段,有时也包括维护阶段.