QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

将程序记在脑子里

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

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

关注

评论

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

Spring AOP

武师叔

7月月更

后端实战教程:如何使用 Node.js 开发 RESTful API 接口(Node.js + Express + Sequelize + MySQL)

蒋川

node.js MySQL 后端开发 Express

Envoy与Nginx的八大对比

阿泽🧸

envoy 7月月更

刨析Scoped原理

猪痞恶霸

CSS 7月月更

微服务治理框架对比

穿过生命散发芬芳

微服务框架 7月月更

动态注册广播流程源码解析

北洋

Andriod 7月月更

跟着官方文档学 Python 之:基础语法

甜甜的白桃

Python 数据类型 7月月更

IPA应用探索:基于客户意图交互让业务受理更有“温度”

鲸品堂

运营商

关于FAQ页面的一些制作技巧

Baklib

漏洞挖掘之文件漏洞后利用姿势【网络安全】

网络安全学海

网络安全 安全 信息安全 渗透测试 漏洞挖掘

小程序基础内容组件

小恺

7月月更

如何优雅的告诉老板软件的研发成本?

涛哥 数字产品和业务架构

企业架构 Archimate

HTTP的前世今生

技术小生

HTTP 7月月更

企业知识管理过程中常见的误区与解决方法

Baklib

Flutter 构建三维空间动画效果

岛上码农

flutter ios 前端 安卓开发 7月月更

任务拆分中的「敏捷刺客」,你中招了吗?

LigaAI

团队管理 敏捷开发 需求管理 垂直拆分 需求梳理

知乎基于 Apache Doris 的 DMP 平台架构建设实践|万字长文详解

SelectDB

Apache 数据库 数据仓库 广告系统 Doris

AIRIOT物联网平台助力油库自动化升级 实现业务场景全覆盖

AIRIOT

低代码 物联网 低代码,项目开发

Hive表类型

五分钟学大数据

hive 7月月更

Java数组最大长度

okokabcd

Java

都有哪些较好用的项目管理软件?

爱吃小舅的鱼

项目管理 项目管理软件

Spring Security用户定义

急需上岸的小谢

7月月更

企业钟情于混合App开发,小程序容器技术能让效率提升100%

Speedoooo

微信小程序 APP开发 跨端开发 小程序容器

带你认识数仓的“规格变更”

华为云开发者联盟

数据库 后端 集群 数仓

【Java】中的String、StringBuffer和StringBuilder的区别

工程师日月

Java’ 7月月更

5G NR Paging 寻呼

柒号华仔

5G 7月月更

Klocwork部署的安全最佳实践

龙智—DevSecOps解决方案

klocwork 静态代码分析 SAST工具

全面掌控!打造智慧城市建设的"领导驾驶舱"

华为云开发者联盟

云计算 后端 智慧城市 智慧屏

一个月后,我们又从 MySQL 双主切换成了主 - 从!

悟空聊架构

MySQL 悟空聊架构 征文活动 7月月更

影响分析:RubyGems未授权访问漏洞(CVE-2022-29176)

龙智—DevSecOps解决方案

rubygems 漏洞

基础设施 NFTScan 正式发布 Solana 网络 NFT 浏览器

NFT Research

区块链 NFT

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