跳到主要内容

关于技术债

权衡是一个很难的事情,因为越是重要的项目,对于权衡来说就越难,因为一个项目的发展是面向未来的,但是未来是无法预测的,所以这样的东西面对起来就天然是一个很困难的东西。 拿一个项目来说吧,在开发的时候为了能快一点,用了两种框架,一个Vue,一个React,但是又没有用微前端的方式来开发,只是用了iframe的方式来层层嵌套,这样导致了以下的后果:

  1. Iframe之间通信困难,本来对于前端来说组件间的通信就是一个比较复杂的问题,尤其是比较大的组件和比较复杂的组件,然而对于这样的组件来说就更困难了,组件里不得不充斥着window.postMessage这样的代码,有时候就为了一个全局的弹窗和跳转一个路由都不得不写很多这样的代码,postMessage肯定是有用的,否则也不会设计出来,但是他不好调试,也无法判断,所以在开发过程中一个很小的问题也需要两方人去不断的调试。看起来前期节省的时间就在这里慢慢的消耗掉了。
  2. 开发过程中无法看到整体的情况,因为是iframe嵌套的,所以开发过程中都会只开着自己的页面,这样就无法看到自己的页面中在整体展现到用户那里的时候是怎么样的,只能在发布到测试环境中才能看到,这样看完之后再去一点点修改整体中看着不够满意的地方,也是一个很浪费时间的地方。
  3. 诚然,微前端框架中也有一些是用iframe开发的,但是他们是基于一个基座项目中引用了其他的iframe,有一个统筹的框架来做一些框架之间调度的事情,这样虽然不是最好的方案,但是也在一定程度上解决了一些的问题。如果只是单纯的iframe嵌套是不配称为微前端的。

技术债也是债,这是我之前在看一个文章的时候看到的,虽然技术债不像钱的债务那样明显,那样急切,但是当债务累积起来之后也足以拖垮一个团队。因为既然是债如果这个项目一直在发展,那么最终肯定是要还的,除非break了,那就不需要还了,这个跟人是一样的道理。 所以最好的就是不要引入技术债,但是上面也说了,所谓的技术债,其实很多时候是在面向未来的时候预测不准导致的,因为在使用的时候不知道未来的发展——一个是不知道技术的未来发展;一个是不知道在选择了某个技术栈之后这个技术的发展。所以这些事情天然就是困难,一个团队也无法保证自己的实现都是最佳实践,这对于一个团队来说近乎天方夜谭了,尤其是一个比较大的团队。 所以在发现自己的技术债之后,要想办法解决,解决的越早,对于项目的发展就越好,一直拖着就像债务会有利息一样,技术债也有利息,利息就是越来越慢的开发进度,和越来越复杂的非业务逻辑,一些简单的逻辑需要用到复杂的技术去解决。最后慢慢的变成一个混沌系统,无法挽救。

Loading Comments...