知识卡片

用"协议/IPC接口"而不是"要链接的程序库"来共享基础设施,才能让不同语言、不同社区共同受益

专业/工作

内容

KDE最终把PIM数据访问设计成客户端/服务器模式,关键考量不只是解决内存里出现多份地址簿副本的问题,更重要的是:如果这份基础设施以”协议”或”IPC机制”的形态存在(而不是一个必须用C++链接进程序的库),它就能对任何语言、任何工具链保持开放——这也是为什么GNOME的Evolution团队和KDE社区能就着同一套设计理念探讨共享的可能,尽管两边的代码栈完全不同(glib/GTK/C vs Qt/KDE/C++)。这提示一个判断”要不要把一个内部能力对外开放”时的架构选择:想让更广泛、语言各异的使用者受益,暴露成协议/接口而不是某种语言的库,是让共享突破语言边界的关键一步。

参考来源

《架构之美》第12章《当集市开始构建教堂》