【外评】我是程序员,我很笨

我写代码赚钱已经有 15 年了。我尝试过其他角色–产品管理、分析、测试–但都没有坚持下来。这些年来,我发现自己很笨。很不幸。

我没有被诊断出患有任何特殊疾病,但我的智力非常有限。我发现即使是简单的 Leetcode 问题也很有挑战性。阅读有关基本共识算法的内容会让我头大。我无法真正理解代码库中复杂的依赖关系。我学不会 Rust 这样的花哨语言(我试过,但说实话,太难了)。我讨厌微服务和现代前端,因为它们有太多可移动的部分,我无法一一掌握。

那我该怎么办呢?

我使用最简单的主流语言(Go)和最基本的 Python。我写的代码简单(虽然有时会很冗长),易于理解和维护。我避免深度抽象,总是选择组合而不是继承或混合。我只在绝对必要时使用泛型。只要有可能,我更喜欢扁平数据结构。

我尽可能少地引入外部依赖性(理想情况下为零)。我设计的模块具有清晰的 API(不是罗伯特-马丁定义的 “清晰”),但几乎从不将其提取为微服务。我使用 JSON-over-HTTP API,但从不使用 GraphQL。我花时间学习 SQL,并经常使用它。我采用基本的弹性模式,如超时、断路器和反向压力。

我尽量少用软件组件。理想情况下,只使用应用程序本身、SQLite 或 PostgreSQL 进行数据存储,以及 Docker 和少量 shell 进行部署。根据需要使用 Nginx/HAProxy。无 API 网关、无分片、无分布式缓存、无消息队列、无 NoSQL/NewSQL/Graph/whatever 数据库、无服务发现、无联盟、无云原生、无 FAANG 级最佳实践。

我画依赖关系图和顺序图来理解遗留代码。我写注释来提醒未来的自己,为什么某个函数要这么做,或者为什么某个 if 分支是必要的。我编写文档,力求简洁易读。我写例子,写很多例子。有时甚至是交互式3。

我构建的软件似乎还能正常运行。它不会给谷歌工程师留下深刻印象,这是肯定的。但它能很好地为用户和企业服务。

所以,做个傻瓜对我来说也挺好。

本文文字及图片出自 I'm a programmer and I'm stupid

你也许感兴趣的:

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注