知识卡片
拒绝复用一个现成方案时,要分清"技术上真的不合适"和"单纯不想用别人的东西"
内容
KDE社区讨论是否直接采用GNOME的Evolution Data Server(EDS)时,最终选择自己重新做一套,给出的理由里混杂着两种性质完全不同的东西:一种是站得住脚的技术判断(EDS基于CORBA且用C写成,和KDE的C++/Qt世界在思维模式和API风格上格格不入,硬接进来大概率得到一个不优雅、不可靠的缝合怪);另一种则是团队自己也承认的、带有偏见的情绪(不喜欢C语言实现、觉得”这样做没有创新”)。这提示一个做技术决策时值得养成的习惯:在拒绝一个现成方案之前,主动把”技术上不兼容”和”单纯的不情愿”分开写出来——前者是应该被认真对待的理由,后者则值得警惕,因为情绪化的抵触很容易伪装成技术判断的样子,混在一起会让决策失去说服力。
参考来源
《架构之美》第12章《当集市开始构建教堂》