Programming Intuition
Reference: https://amasad.me/intuition
这篇文章讲了一些编程上容易发生的直觉错误。
Programming is an intellectually challenging task, but luckily we invent tools to make it manageable.
这里讲的是编程难度会逐渐因为人们的工具发明而变低。同样的,越容易掌握的编程语言/工具/岗位,就会有越多的低级开发者涌入。
对于框架来说,直接的表现就是越来越多的人开始在stackoverflow上提问如何使用某某框架干某某事情。
比较典型的例子就是月均过万的下载包redux-thunk。这是一个只有14行的包,里面的代码就是返回一个lamda,这个lamda以dispather为参数,再在lamda里面把将要执行的上下文传递进去。
这个时候就会进入到框架的负面空间。当初学者发现他们处在负面空间的时候,他们就会让框架/库开发者把他们放回原来的直觉空间中来。这就是为什么现在火热的框架总有那么多人去帮他们维护生态系统、插件和拓展,从而保证他们可以覆盖越来越多人的舒适区。这看上去并没有什么错误,但是会导致以下的问题:
越来越多的人依赖作者开发库的生态系统。
增加更多的技术负担,从而让框架的架构变得越来越模糊和难以维护。
让新手觉得他们应该永远相信自己的直觉。
此外,由于现在的依赖管理机制,库的作者越来越倾向于在原有的包之上开发生态系统。这种情况将导致包管理系统失去控制,并引发更多的安全问题--比如最近的flatmap-stream问题,这个包导致针对event-stream的供应链攻击,数百万的项目遭受影响。
最后作者认为解决这个问题的方法是教育(迫真)。