对于引入第三方组件的问题我有一些个人看法:
首先,为什么要引入第三方组件?
引入第三方组件不外乎两种原因:
第一、公司没有这方面的开发能力,公司人员现有技术能力无法解决的问题。
此时,则必须要引入第三方组件来解决。不过,这方面还有另外两种解决办法:一是外包给高手完成,二是修改需求和用户协商进行这方面功能的避免。
第二、降低成本!
通过引入第三方组件可以大幅度的降低开发成本,提高开发效率,缩短项目周期,这是必然的,否则,就不如自行开发,也就没有人引入她了。
虽然这样可以解决这个项目当前的问题,但是必然会带来负面效应,下面同样按照上述两种方式进行分述:
第一种方式的采用分为两种情况:
外聘高手或者外包给高手开发虽然给公司解决了当前问题,但是无法解决项目后续的升级开发问题,如果根据需要对这些组件进行二次开发,同样还需要外包给这些高手来继续完成,这对于公司来说,是一种束缚,如果双方合作愉快,则事情必然很好解决,如果有一方希望能够获得更大的利益而对另一方施压,则结果是很明显的,必然会引起双方合作的不愉快,或者带来其他不方便的事情(目前国内手机行业就面临着类似的问题)。
而采用变更的方式避免这个技术问题的话,这个问题只是被延后了,而不是被彻底解决了。用户到了项目的中后期仍然可能提出同类的问题,或者在第二个版本上提出同样的问题要求解决。这个时候,仍然会面对上述情况。
第二种方式的采用也将分为两种情况:
第一种是采用了可靠的有持续升级和服务的第三方组件,如果这个组件的提供者属于某一个民间组织或者个人,其状况将类似于第一种方式的第一种情况。
第二种是不付费的采用了免费的第三方组件,这个时候,项目组面临的问题将是在升级或者新版本的开发中面临与第一种情况的第二种方式相类似的现象,但是,这个时候用户提出的问题往往会高于前一阶段的要求,也就是说需要在这个免费的第三方组件上进行二次开发。此时,就需要研究这个第三方组件的源代码,以便于重新改写或者补充服务内容。但,如果这个组件的原始开发者无法联系或者别人不愿意提供源代码供参考,那么就面临着这个功能将无法被提升的困境而不得不回复到这个问题的初始状态。重新安排人员编写也势必会影响到整个项目的进度安排,因为你还需要把第一期的功能重新实现一遍。既是对方提供了源代码,而代码的可读性比较差,或者根本不具有可读性,也同样会面临重新撰写的困境。
所以,我个人认为在项目中引入第三方控件的方式需要考虑清楚产品的定位和这段代码所带来的负面效应,不能盲目引入。不过,如果你的产品只打算开发这一期,套现后就直接走人,而不准备进行后续研发,那我建议你可以大量的采用第三方控件来实现尽可能多的功能,因为这是最廉价最快捷的实现方式。
一口气说了这么多,欢迎大家品评批判指导。小子恭聆教诲。