在 2025 收官前,看清 Data + AI 的真实走向,点击查看 BUILD 大会精华版 了解详情
写点什么

将程序记在脑子里

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

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

关注

评论

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

3dmax的常用功能和使用方法

Finovy Cloud

3D渲染 3DMAX

实现“无感知”的网络运维,新华社融媒体流量分析平台的创新之路

智维数据

大数据 防火墙 数据可视化 智能运维 运维安全

模块6 拆分电商系统为微服务

KING

可靠、安全、稳定,开源高质量项目 | 亚马逊的开源文化

亚马逊云科技 (Amazon Web Services)

中国人寿业务稳定性保障:“1+1+N” 落地生产全链路压测

TakinTalks稳定性社区

软件测试 | 元素定位方式与隐式等待

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

测试

4道数学题,求解极狐GitLab CI 流水线|第2&3题:父子流水线 + 多项目流水线

极狐GitLab

ci DevOps pipeline 极狐GitLab 流水线

软件测试 | App控件定位

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

测试

软件测试 | 高级定位技巧

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

测试

理论+实践,揭秘昇腾CANN算子开发

华为云开发者联盟

人工智能 AI 华为云 企业号 2 月 PK 榜 华为云开发者联盟

拜占庭将军问题和 Raft 共识算法讲解

京东科技开发者

算法 分布式系统 拜占庭将军问题 raft共识算法 日志同步

ChatGPT搜索风暴

OneFlow

人工智能 深度学习

谈JVM参数GC线程数ParallelGCThreads合理性设置

京东科技开发者

线程 JVM cpu GC线程 ParallelGCThreads

软件测试 | adb命令的组成

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

测试

软件测试 | Appium架构介绍与环境配置

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

测试

Slurm集群调度策略详解(2)-回填调度

慕冰

Slurm 回填调度

【2.10-2.17】写作社区优秀技术博文一览

InfoQ写作社区官方

热门活动 优质创作周报

基于 Flink 的小米数据集成实践

Apache Flink

大数据 flink 实时计算

@所有人,OceanBase DevCon • 2023来啦!

OceanBase 数据库

数据库 oceanbase

机器学习洞察 | 一文带你“讲透” JAX

亚马逊云科技 (Amazon Web Services)

ChatGPT 最好的替代品

图灵社区

机器学习 Transformer BERT ChatGPT

Wallys|QCN9074/QCN6024/ 5G 802.11ax|Does QCN9074-5G module support W56?

Cindy-wallys

QCN9074 QCN6024

怎么编写接口测试用例?

Liam

测试用例 如何编写测试 测试用例设计

袋鼠云产品功能更新报告04期丨2023年首次,产品升级“狂飙”

袋鼠云数栈

软件测试 | App控件交互

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

测试

软件测试 | App常见Bug解析

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

测试

OceanBase 4.0解读:兼顾高效与透明,我们对DDL的设计与思考

OceanBase 数据库

数据库 oceanbase

ChatGPT 最好的替代品

图灵教育

机器学习 BERT ChatGPT

软件测试 | 录制Appium测试用例

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

测试

信通院发布“2023可信AI案例 知识计算应用优秀案例”, 百度知识中台三大案例入选

极客天地

设计模式第七讲-外观模式、适配器模式、模板方法模式详解

C++后台开发

设计模式 后端开发 Linux服务器开发 适配器模式 C++开发

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