让你看看什么是真正的设计!

企业动态
程序员X在一个IT咨询公司工作,这一天他的Slack收到了来自老板的一条消息,可是这个经常使用200G内存的软件又一次崩溃了,他看不到老板在说什么,于是就直接去找老板。

 程序员X在一个IT咨询公司工作,这一天他的Slack收到了来自老板的一条消息,可是这个经常使用200G内存的软件又一次崩溃了,他看不到老板在说什么,于是就直接去找老板。

[[326199]]

他打开了老板办公室的门,看到老板慌忙地把浏览器关掉, 问道:“有什么事吗?我正在工作。”

“我的Slack崩溃了,看不到你发的消息。”

“奥,是这样,” 老板说,“下星期是我外甥女的7岁生日,我姐姐想让我给她做一个庆祝生日的网站,你能帮忙吗?”

“当然,没问题!”

程序员回到了座位上,预定了第二天的会议。

“老板吩咐我们给他的外甥女做一个网站,怎么开始呢?”

“那当然得先选技术栈啊!” 另外一个程序员说到。

他们花了两周的时间来讨论用什么技术栈,最终确定了一个列表, 这里仅仅是前端列表:

 

“不错,不错,我们有前端技术了,让我们开始吧!”

三个月以后

老板坐在办公室吃三明治,这时候他想起了一件事情。

“X, 3个月前我让你给我的外甥女建一个网站,现在网站到底在哪儿?”

“先生,我们正在开发前端,我们写了测试,并且创建了后端的Mock,我们很快就会完成了!”

“什么?你在开玩笑吗?滚出去!”

程序员X知道老板为什么发火,因为老板知道他们不应该使用Fad.js,他们应该使用Even-More-Fad.js。

[[326200]]

 

项目启动6个月以后

前端完成了, 可是他们还需要一个后端, 于是程序员X又举办了一个会议。

 

“好了, 朋友们,我们得开始写后端了, 对于用什么框架,欢迎各抒己见!”

20个程序员给了20个建议,基本上,每个人都选择了自己最喜欢的,能让自己获得更好工作的框架。

经过了一周的争论,他们发现了一个新的编程语言,由Google和Facebook联合推出,新的语言叫做“顽皮小脚本”。

于是每个人都同意用这个新语言。

程序员X幻想着这个项目完成以后,他就可以到Face-oogle去工作了。

项目开始1年以后

项目进展不顺利,程序员X的头上开始冒汗了。

“顽皮小脚本” 有很多的Bug,他们不知疲倦地Fix,实际上是为Google和Facebook提供免费劳动力。

虽然他们还没有开始一行代码的编写,但是X知道再努力一下,成功就在不远处。

这个时候老板把他叫进了办公室。

“X,你这个白痴,一年前我让你给我的外甥女建个网站,你到底在干什么?”

“先生,马上就做完了,再给我两周就行!”

“算了吧。去年我外甥女自学了一点HTML和Javascript, 她自己就把网站建起来了!”

程序员X震惊了!

一个HTML网站!到底是谁做的!

“这太荒谬了, 她怎么去测试呢?她写测试用例了吗?”

“她打开浏览器,这儿点点,那儿点点不就行了?”

“但是她是怎么Mock后端数据库的?怎么集成微信、微博、QQ的?缓存呢?负载均衡呢?如果CDN挂掉了怎么办?如果她想把网站改成SPA该怎么办?!”

“滚出去,你这个白痴!”

程序员X回到了座位上,他到知乎上写了一个很长的文章,抱怨这些刚进入编程领域的孩子们不讲究任何标准,他们这样会毁掉软件产业。

文章得到了一千个赞同,每个人都同意现在入门编程的标准确实降低了。

原文链接:

https://www.pythonforengineers.com/the-attack-of-the-over-engineering-cowboy-programmers/

后记:这个小品文生动地诠释了什么是过度设计和过度工程,程序员X在没有搞清楚真正需求的情况下就贸然开始设计,选择了复杂的前端和后端,尝试了各种热门的东西,这样的项目必败无疑。

【本文为51CTO专栏作者“刘欣”的原创稿件,转载请通过作者微信公众号coderising获取授权】

 

戳这里,看该作者更多好文

 

责任编辑:武晓燕 来源: 51CTO专栏
相关推荐

2022-08-26 13:41:19

代码PythonJava

2012-03-14 09:02:47

云计算集中计算分布式计算

2015-09-02 11:44:39

视频云华为

2020-09-22 15:21:08

微信设计腾讯

2021-08-24 14:46:24

设计阿里巧思

2015-09-22 14:19:56

Cloud NativDevOps持续交付

2022-02-21 16:41:32

设计解决方案UI

2022-03-08 08:09:39

UI设计师体验

2015-03-20 16:16:56

APM应用性能管理云智慧

2021-03-04 14:39:33

Python 开发编程语言

2018-02-25 11:00:05

2017-08-23 09:05:09

交互设计UI界面

2015-03-02 10:08:09

Apple Watch

2013-11-06 09:12:35

异构计算移动计算

2022-04-15 06:47:54

敏捷开发代码开发

2009-02-02 09:04:52

MVC框架Java

2011-03-07 09:44:09

赤裸的密码密码

2019-12-25 10:45:30

Java悲观锁

2020-03-11 19:40:09

架构架构设计Java

2019-12-19 17:00:01

Java线程
点赞
收藏

51CTO技术栈公众号