开发随笔:快编程?慢编程!

这是一篇很有意思的文章,讨论了编程究竟要快还是慢的问题。

类似这样的话题通常会引发非此即彼的讨论。

借用练车师傅的一句话“快的起来,慢得下来”。

在整个开发流程中,一些环节确实需要慢下来:

  • 需求(2档):慢工出细活。客户提得简单,做起来却不能粗糙。不然返工的劳动量绝对可观。
  • 设计(1档):这是最需要慢的地方。甚至需要“反复”。这个环节决定了软件的质量、未来的扩展性、是否满足需求(以及未来的需求)。还需要考虑性能、框架的局限、语言的局限、操作系统的局限等等。快就会留下更多的“坑”。
  • 编码(2-3档):编码如果要快,除了经验积累,还有就是要思路清晰。开始一个功能模块之前,必须考虑清楚需求、接口的要求、异常的处理、模块之间的耦合等。考虑清楚了,再用原型验证一下技术是否可行。敲完键盘,耐心调试。最后,提交代码、代码审查、合并到仓库。
  • 测试(3-4档):根据需求和测试规格,点啊点。如果有自动话工具,自动升到(5档)。
  • 发布和bug修复:根据具体情况,可能简单改改代码。有些时候还要确认需求、设计是否合理,是否需要调整框架。各种档位都有可能。
  • 总结(1档):积累和总结,一定要慢慢来,想好了哪些是对自己有用的,哪些错误是有价值的。

快的起来,慢得下来是比较可行的一种方式。

当然,就像练车那样,这是需要不断总结和练习才能达到的。

时间: 2024-08-10 17:19:27

开发随笔:快编程?慢编程!的相关文章

让你提前知道软件开发(41):最先到达编程的正确性,其次,考虑效率

文章3部分 软件开发工作总结 编程时首先达到正确性,其次考虑效率 在实际的软件开发项目中.常常会遇到产品开发周期非常短的问题.也就是说,开发者须要在"质量"和"速度"之间做出权衡.详细到程序代码,就存在究竟是先考虑实现功能(即保证程序的正确性),还是要一步到位把事情做好(即保证程序的正确性的同一时候,兼顾其效率)? 在网上,有关这方面的讨论也非常的多.微软亚洲研究院研究员刘未鹏老师写过一篇文章<编程的首要原则>(http://mindhacks.cn/2

嵌入式linux 项目开发(一)——HTML编程

嵌入式linux 项目开发(一)--HTML编程 本文主要讲解HTML的基础知识,主要是涉及嵌入式web服务器中数据交互HTML页面表单制作部分. 一.HTML简介 HTML是Hypertext Marked Language的简称,即超文本标记语言,是一种用来制作超文本文档的简单标记语言.HTML是由WEB的发明者Tim Berners-Lee和同事Daniel W.Connolly于1990年创立的一种标记式语言,是标准通用化标记语言SGML的应用. 用HTML编写的超文本文档称为HTML文

嵌入式linux 项目开发(一)——CGIC编程

嵌入式linux 项目开发(一)--CGIC编程 一.CGIC简介 1.CGI简介 CGI(Common Gateway Interface)是外部应用扩展应用程序与WWW服务器交互的一个标准接口.按照CGI标准编写的外部扩展应用程序可以处理客户端浏览器输入的数据,从而完成客户端与服务器的交互操作.而CGI规范就定义了Web服务器如何向扩展应用程序发送消息,在收到扩展应用程序的信息后又如何进行处理等内容.通 过CGI可以提供许多静态的HTML网页无法实现的功能,比如搜索引擎.基于Web的数据库访

阿里巴巴Java开发手册上常规的编程命名总结

阿里巴巴Java开发手册上常规的编程命名总结:1.类名必须驼峰.例子:MarcoPolo / UserDO / XmlService / TcpUdpDeal / TaPromotion 2.方法名.参数名.成员变量.局部变量都统一使用 lowerCamelCase 风格,必须遵从驼峰形式.例子:localValue / getHttpMessage() / inputUserId 3.常量命名全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长.例子:MAX_STOCK_COUNT

linux应用开发-系统函数方式文件编程

linux应用开发-系统函数方式文件编程 一 系统调用 指调用系统的函数库 二 文件描述符 性质:一个数字 打开的文件对应一个数字即一个文件描述符 三 常用函数 1 打开文件 open 2 创建文件 creat 3 关闭文件 close 4 读文件 read 5 写文件 write 6 定位文件 lseek 7 复制文件描述符 dup 三 man命令查找顺序 1 命令 man read 2 系统调用函数 man 2 read 3 库函数 四 linux下main函数参数 void main(in

Node.js区块链开发 随笔

本书主要讲述了区块链的基础一集js开发工程师如何开发区块链,不仅仅是互联网思维,调用api文档进行开发,而是在基础之上进行的拓展式的开发. 本书主要讲述了,加密货币的一些特征,以及node.js的基础,服务启动如何与链进行交互,以及node.js在区块链技术领域的调查描述,并进行了案例示范,其次对源码进行解读.从架构设计的角度,层层剖析区块链的设计原理,深刻解读相关概念和技术.从项目设计的角度谋篇,从项目入口程序出发,介绍了亿书项目的整体结构,分别介绍了P2P网络.加密解密.签名和多重签名.区块

全新编程模式---站立编程--独创编程方式,可能会流行

多年来我们程序员已经习惯了编程模式--坐着编程 一来到编程办公室,我们马上坐下,打开空调,松软的旋转座椅,坐下来就可以编程.于是人们只知道世界上只有这种编程模式--坐着编程. 这个模式不是不好,可是如果坚持只用这个编程模式,会带来严重问题,坐久了屁股痛,最后没办法坐了.于是只能躺着编程. 坐着编程,身体缺少运动,每况愈下,身体不堪负重,垮了.生成各种疾病,最后竟然有的程序员英年死去,没办法编程了! 我编程十几年,曾经也是运动健将,但是因为坐着编程,身体也不行了,坐下没多久屁股就痛了.现在是左右为

CUDA C编程入门-编程接口(3.3)版本和兼容性

有两个版本号是开发者开发CUDA应用时需要关心的:计算能力-描述产品规格和计算设备的特性和CUDA驱动API的版本-描述驱动API和运行时支持的特性. 在驱动头文件的宏CUDA_VERSION可以获取驱动API的版本.可以允许开发者检查他们的应用是否要求一个比现有版本更新的版本.这很重要,因为驱动API是向后兼容的,意味着针对特别版本编译的应用.插件和库(包括C运行时)能继续在后来发行版本的设备驱动上运行,如图11所示.驱动不是向前兼容的,意味着针对特别版本编译的应用.插件和库(包括C运行时)不

Linux高性能服务器编程——多线程编程(上)

多线程编程 Linux线程概述 线程模型 线程是程序中完成一个独立任务的完整执行序列,即一个可调度的实体.根据运行环境和调度者的身份,线程可分为内核线程和用户线程.内核线程,在有的系统上也称为LWP(Light Weigth Process,轻量级进程),运行在内核空间,由内核来调度:用户线程运行在用户空间,由线程库来调度.当进程的一个内核线程获得CPU的使用权时,它就加载并运行一个用户线程.可见,内核线程相当于用于线程运行的容器.一个进程可以拥有M个内核线程和N个用户线程,其中M≤N.并且在一

代写MATLAB编程- MATLAB编程代写Design a pushdown automata (PDA)

Design a pushdown automata (PDA)1.Consider the language of all binary strings that start and end with the same symbol. (a) Write the production rules of a grammar for this language. Show some derivations to test that your grammar is correct. (b) Desi