程序员常见的思维是提供"可扩展性", 这个可扩展性是程序员根据其职业生涯遇到的泪与汗得出的原则, 是一种保护罩. 可是, 这种思维导致其在做产品时, 会有一些不好的经典效果.
例如, 程序员做的系统, 一般出发点就是做关系数据库表的增删改查. 不管做什么产品, 就是那几样 - 显示列表, 条件查询, 新增, 删除, 更改. 就这几招, 无所不能, 简直没有程序员做不了的系统. 如果你是程序员, 相信你有体会, 这种"无所不能"不会给你带来任何好处.
我经常见到一些婴儿型程序员, 婴儿型程序员是我发明的一种人类标签, 主要是指那些像婴儿喜欢糖果一样喜欢某项技术的低级程序员, 这种喜爱完全是基于生物本能, 是生物的应激反应, 所以是低级的. 例如, 某些婴儿型程序员因为某语言用缩进方式来表示代码块, 突然就要认干爹了, 这种喜好让人反感.
我遇到过无数的 PHP 开发框架, 每一个的卖点几乎都是它们能快速地做数据库表的增删改查(CRUD), 好像他们做的东西就是 phpmyadmin, 没有一丁点行业产品特性一样.
事实上, 增删改查属于那种"无所不能", 但大多数情况下又是"一无是处"的东西. 就像给你一些铁锭作为原料, 你好像能做无数的东西, 但是, 当你想做有用的东西时, 你会发现铁锭一无是处.
举一个例子, 提供了 URL 网址输入框的浏览器从技术角度上看是无所不能的, 能打开好几亿网站呢, 数量吓人吧? 是不是某种程度上的无所不能? 可是, 对于多数人, 这样一个空白浏览器就是不如入口为 hao123 的浏览器好用. 是的, 你能, 你啥都能, 你可以拿世上最好的赞美诗来赞美自己, 但你一无是处!
将一个无限集中的有限元素抽取出来, 组成一个新的集合, 这个集合可能是无所不能的.