原文是 Hacker News 最近的一篇热帖:
译文转载自:https://v2ex.com/t/881625
我必须找到一个策略来解决这个开发团队的问题,不是直接管理团队。现状如下。
-
这个代码每年产生超过 2000 万美元的收入
-
运行在 PHP 上
-
已经在生产环境直接开发了 12 年,没有源代码控制(都是这种 index-new_2021-test-john_v2.php )。
-
没有使用 composer 或任何依赖管理。都是 require_once 。
-
不使用任何框架
-
路由管理完全是在 NGInX 中重写的( NGInX 的配置大约是 10,000 行)。
-
这些年只往上堆代码,没有任何代码被删除。我想这是因为直接在生产环境开发,删东西太冒险了。
-
数据库结构也是一团糟,没有迁移,等等。当添加一个列时,由于数据量大,他们会建一个新的表,然后用 join 。
-
JS 和 CSS 也是如此。多个版本的 jQuery 互相打架,取决于你在哪个页面,甚至在同一个页面也存在。
-
当然没有 MVC 模式,或者什么模式。没有模板库。这是 PHP2003 的风格。
-
在很多地方,我看到像是 Controller 一样的文件,向它自己的 rest API 发出 curl 请求(通过域名,而不是 localhost )做 oauth 授权,等等。只是为了获得菜单项或产品列表...
-
没有缓存(但有 memcached ,但只用于 Session...)
-
团队有3个人,都是初级开发。一个后台、一个前台、一个iOS/android。改革阻力巨大。
-
生产力很差,这是可以理解的。乱七八糟的东西实在是太多了,根本没办法做新东西。
业务部门有相当积极的规划,因为管理层和总部没有真正了解这些代码上的障碍。而且在 COVID 之后,预算真的很紧张。
我知道应该全面重写,但如何抉择呢?
PHP
“聪明人只会润或者继续堆屎,自作聪明的或者绝世天才才会重写”
看样子是没有经历过这些历史久远的项目,这些项目都能够通过导入 git,建立开发、测试环境,从局部重构开始一点点建立起来,没有那么可怕,怕的是公司根本不给你重构的条件(时间)。
"每年产生超过 2000 万美元的收入"
"预算真的很紧张。"
天天si山si山的,怕脑袋里面装的都是si吧,代码带来了营收,才是金代码,天天优雅,好看,写成一朵花的代码,却带不来营收,我觉得才是装了满脑子的si
越近用户的应用代码,越需处理现实的复杂性,毕竟代码是现实的映射,它包含两类对象,物和人的欲望。优雅的项目只存在于PPT、上线初和理想主义的脑海里,PPT上的to be都是欲望驱动,没有人为工具的to be买单,除非是卖工具的,要不很难说清value。PHP 4 时代那些现在看来简单的订单逻辑脚本依然支撑了多少500强的崛起,有时技术人还需补点商业的课,或者说要经历时代。
为什么要改变每年两千万的收入?
有点意思