写点什么

将程序记在脑子里

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

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

关注

评论

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

麒麟操作系统是什么?和linux的区别是什么?

行云管家

信创 麒麟操作系统

Bartender 4 for Mac(菜单栏应用管理软件) 中文

背包客

macos Mac 软件 mac软件下载 MacBook Pro Bartender

TiDB x Catalyst丨秒级洞悉数据价值,TiDB 帮助“客户成功 SaaS 厂商”提升用户体验

PingCAP

数据库 分布式 TiDB

软件测试 | Dalvik虚拟机是如何执行程序的

测吧(北京)科技有限公司

测试

Pycharm配置远程调试

Geek_7ubdnf

啥?PCB拼版对SMT组装有影响!

华秋PCB

PCB SMT PCB设计 PCB拼版 贴片

Bettertouchtool for Mac:触控板增强工具

背包客

macos Mac 软件 BetterTouchTool教程 Mac触控板增强 Bettertouchtool

NFTScan 与 SPACE ID 达成合作伙伴,支持 .bnb / .arb 域名搜索!

NFT Research

域名 NFT\

KaiwuDB 数据库高可用方案及落地实现

KaiwuDB

KaiwuDB 数据库高可用

清爽快速全面的网址导航(cooltools.top)

Yongqiang

人工智能 AI AIGC ChatGPT

2023 可信数据库发展大会:近百位行业大咖将出席演讲

KaiwuDB

KaiwuDB TDBC 2023可信数据库发展大会

字节算法中了80%!靠着这份GitHub上的算法小抄,成功斩获Offer

互联网架构师小马

Java 数据结构 算法 LeetCode

GitHub标星159K的Java学习手册,太香了!

互联网架构师小马

Java

深入学习 Linux 操作系统的存储 IO 堆栈

KaiwuDB

KaiwuDB Linux存储 IO堆栈

Python的离线安装

Geek_7ubdnf

连续两年!PingCAP 入选 Gartner 云数据库“客户之声”,获评“卓越表现者”最高分

PingCAP

GitHub热榜,亿级流量并发手册彻底揭开阿里高流量的秘密

互联网架构师小马

MySQL读取的记录和我想象的不一致

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 6 月 PK 榜

卡奥斯联合开放原子开源基金会倡议发起“云原生工作委员会”

Openlab_cosmoplat

开源社区 开放原子全球开源峰会

瓴羊Quick BI:商业智能工具的新标杆

巷子

百度沈抖:大模型 产业智能化时代的新引擎

飞桨PaddlePaddle

百度 算法

软件测试 | Selenium-Grid架构

测吧(北京)科技有限公司

测试

重磅再推 | 基于OpenSearch向量检索版+大模型,搭建对话式搜索

阿里云大数据AI技术

人工智能 搜索引擎 企业号 6 月 PK 榜

我的多巴胺回来了!双手奉上在rumble上下载视频的最佳秘诀!

frank

数据库的 Schema 变更实现

KaiwuDB

KaiwuDB Schema 锁表

软件测试/测试开发丨Pytest测试框架学习笔记

测试人

程序员 软件测试 pytest

华为云企业快成长安全技术创新论坛广州站举办在即 都有哪些亮点干货?

说山水

卡奥斯获开放原子开源基金会黄金捐赠人授牌

Openlab_cosmoplat

开放原子全球开源峰会

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