现代C++的发展方向让人困惑:泛型技术的确很酷,却妨碍了模块的动态链接。没有Java Bean这样的标准组件模型可能算是C++语言最让人头疼的地方,程序员被各种编译器和操作系统的细节淹没。
大型系统里,C++到底负责哪些部分更合适?时髦的体系结构是这样的:用C++实现library层,用Java甚至更华丽的动态语言实现业务层和界面层。看起来很美,比如Eclipse和SWT。
串联质谱鉴定系统搜索引擎pFind以外的模块如何组织?一直拿不定主意。
上周去合作单位,实际操作同类的国外工业级产品,集群系统的体系结构给我留下了深刻印象:由C++实现各种独立的后台服务,无论命令行、Java GUI界面、分布式网络协议或Web界面方式,都能操作这些服务进程。的确是简明漂亮的方式。
好的解决方案往往都很简单。比如集群节点间的通讯服务,其实只需相互交换简单的消息,再利用NETBIOS或NFS共享具体数据就行了。