写点什么

将程序记在脑子里

  • 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:501297
用户头像

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

关注

评论

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

评审通过,开建!

浪潮云

云计算,

高并发下HashMap的死循环是怎么形成的,Java自学宝典pdf

Java 程序员 后端

固定QPS压测模式探索

FunTester

性能测试 测试框架 压力测试 QPS FunTester

解析鸿蒙内核消息队列QueueMail接口的哼哈二将

华为云开发者联盟

鸿蒙 接口 队列 消息队列 QueueMail

1行代码爬CSDN热榜,Python哈啤酒式写法

梦想橡皮擦

9月日更

饿了么4面(Java岗)面经分享,Java技术专家需要掌握的技能

Java 程序员 后端

饿了么4面(Java岗)面经分享,如何在面试中通过工厂模式来给自己加分

Java 程序员 后端

高并发下HashMap的死循环是怎么形成的,熬夜整理Java高频面试题

Java 程序员 后端

护理业务查房PPT模板-优页文档

momo

PT模板 T模板 优页文档

一周信创舆情观察(9.6~9.12)

统小信uos

非科班程序员求职经历分享,阿里P7亲自教你

Java 程序员 后端

一文搞懂如何使用Node.js进行TCP网络通信

华为云开发者联盟

node.js TCP 网络 网络通信 TCP服务器

产品资讯 | mPaaS 10.1.68 适配 iOS 15

蚂蚁集团移动开发平台 mPaaS

ios 移动开发 mPaaS

非科班程序员求职经历分享,Java面试知识点

Java 程序员 后端

【通知】2021年“绿城杯”网络安全大赛开始报名啦!

郑州埃文科技

CANN AICPU算子耗时分析及优化探索

华为云开发者联盟

tensorflow 测试 算子 CANN算子 算子耗时

Vue进阶(幺贰零):父组件获取子组件验证结果

No Silver Bullet

Vue 9月日更

AUTOSAR基础篇之DTC

SOA开发者

软件 汽车 OTA ADAS

Cube 技术解读 | 支付宝新一代动态化技术架构与选型综述

蚂蚁集团移动开发平台 mPaaS

支付宝 mPaaS native 客户端 cube

Python对文件的操作

在即

9月日更

孕蕾、护花、促果:展锐深耕芯片“三步曲”

脑极体

极客时间企业版|数字化转型专题讲座天津站圆满结束

InfoQ 天津

高并发下HashMap的死循环是怎么形成的,Java基础知识点汇总

Java 程序员 后端

C++20 Concepts 极简介绍

董一凡

c++

Pulsar 用户案例|消息队列上云挑战与方案:腾讯云的 Apache Pulsar 实践

Apache Pulsar

Apache Pulsar

手撸二叉树之层序遍历

HelloWorld杰少

9月日更

如何同时压测创建和删除接口

FunTester

性能测试 接口测试 测试框架 压力测试 FunTester

得物技术沙龙iOS专场

得物技术

ios 分享 周报 技术分享 技术沙龙

内部岗位竞聘报告PPT模板-优页文档

momo

模板 T模板 优页文档

书单 | 读了这10本书,再也不怕黑客攻击了

博文视点Broadview

教你用Python 编写 Hadoop MapReduce 程序

华为云开发者联盟

Python hadoop 数据仓库 Hadoop Streaming Hadoop MapReduce

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