50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

将程序记在脑子里

  • 2007-10-22
  • 本文字数:744 字

    阅读完需:约 2 分钟

最近,在一篇名为《将程序记在脑子里》的文章中,Paul Graham 认为“代码就是你对某个问题的理解。所以,只有当你把代码牢记在脑子里,才算真正地理解问题“。不幸的是,正如每个程序员所知,说起来容易做起来难:

把程序记下来不是件容易的事儿。如果你想要捡起几个月前的一个项目,并再一次真正想清楚它是怎么一回事,那可能要花上几天的功夫。即使是你手头上的一个程序,在每天开始工作时,你可能也要花上半个小时才能真正回想起来。这里有个最好的例子。那些在经典办公环境下工作的普通程序员从来不会遇到这种情况,说得更严重一些,工作在经典办公环境下的普通程序员从来没有真正地理解他们正在解决什么样的问题。

因此,开发人员怎么做才能让程序牢记在脑中呢?Graham 给出了八点建议:

  1. 避免分心
  2. 一口气做久一点
  3. 使用简洁的编程语言
  4. 持续重构
  5. 写易读的代码
  6. 小团队工作
  7. 避免多人编辑同一代码块
  8. 从小事做起

敏捷过程和实践可以看作是将创业起步阶段公司里的自发形成的做法映射成可在大组织里推行的措施。作为种子投资公司 Y Combinator 的合伙人, Paul Graham 的大部分建议是针对刚起步的小公司提出的,因此,问题就变成了以上建议如何对应到敏捷实践?当然,大多数敏捷开发者习惯于写可读性代码,持续重构,小团队工作,以及从最小却提供真正价值的小事儿做起。而且很多敏捷开发者还不断采纳更有威力的语言,如 Ruby Erlang Haskell ,甚至 Common Lisp

但是,对于不太容易映射到敏捷实践的那些建议又怎么认识呢?(1)和(2)是紧密相连的,而且有些人会认为,共享工作空间反而容易分心。另一个常见的敏捷实践就是代码集体所有制,与(7)相矛盾。这么说来,是敏捷拥趸们做错了吗?还是这些实践之间的冲突反映了大公司和小公司工作方式有某种不可避免的差异呢?

英文原文链接: Holding a Program in Your Head

2007-10-22 07:501684
用户头像

发布了 100 篇内容, 共 25.3 次阅读, 收获喜欢 5 次。

关注

评论

发布
暂无评论
发现更多内容

SLSA 框架与软件供应链安全防护

SEAL安全

SLSA 软件供应链安全

TDesign 组件库技术方案指北

TDesign

开源 Vue React 组件库

5G NR RRC连接控制

柒号华仔

5G 7月月更

老司机狂飙之路--EventBus原理简要分析

芝麻粒儿

android EventBus 7月月更

Pro 单店版和多店版,你还傻傻分不清楚?

CRMEB

《深入 Linux 设备驱动程序那和机制》读书笔记

贾献华

7月月更

iOS 中的 Category

NewBoy

ios 前端 移动端 iOS 知识体系 7月月更

面对裁员?焦虑?不如好好投资自己

沃德

程序员 7月月更

Node.js异步编程之Promise

是乃德也是Ned

node.js 前端 7月月更

Java面向对象基础

五分钟学大数据

Java 7月月更

纯CSS实现四种方式文本反差色效果

南城FE

CSS 前端 css动画 7月月更 反差色

项目git commit时卡主不良代码:husky让Git检查代码规范化工作

zhoulujun

git husky lint-stated

你想知道的数组易错知识都在这了-C

芒果酱

7月月更

Wireshark抓包分析Eureka注册发现协议

程序员欣宸

Java SpringCloud Eureka 7月月更

Qt|字符排序以及转化问题

中国好公民st

qt 7月月更

GaussDB云数据库初步使用记录

DS小龙哥

7月月更

自己搭建git服务器:linux自己Gitlab服务

zhoulujun

gitlab git私有参考 git部署 git服务端

适合初学者的 10 个JavaScript 代码整洁技巧

devpoint

JavaScript ES6 7月月更 数据操作

RocketMQ之消费者启动与消费流程

vivo互联网技术

RocketMQ 中间件 ACK

《看完就懂系列》聊聊CSS3的 calc() 函数

南极一块修炼千年的大冰块

7月月更

QT和MFC的优缺点比较

乌龟哥哥

7月月更

不习惯的Vue3起步四 の 生命周期&provide/inject

空城机

Vue3 7月月更

Qt | 串口通信 QSerialPort

YOLO.

通信 qt 串口 串口通信 7月月更

【LeetCode】奇数值单元格的数目Java题解

Albert

LeetCode 7月月更

注意!软件供应链安全挑战持续升级

SEAL安全

安全 软件供应链

图解网络:访问控制列表ACL,功能堪比防火墙!

wljslmz

防火墙 acl 网络技术 7月月更 访问控制列表

Linux 0.12 源码阅读

贾献华

7月月更

深入JS函数中默认参数的使用

猪痞恶霸

前端 js 7月月更

在线直播系统源码——开源源码

开源直播系统源码

软件开发 直播源码 开源源码 在线直播系统源码

多传感器时间同步

秃头小苏

时间同步 7月月更

QT实现 文件夹复制

小肉球

qt 7月月更

将程序记在脑子里_研发效能_Kurt Christensen_InfoQ精选文章