我在一个部门工作,在这个部门,人们创建(或选择)算法,在小型软件中实现这些算法,以优化一些与领域相关的目标。我的大多数同事对数学建模和求解的了解比编程更多。
我个人有几年开发C++类模板的经验。我几乎知道如何设计表示算法的类模板,但我不能设计我的同事编写的所有软件(没有足够的时间,没有足够的兴趣)。
因此,我的目标是教我的同事如何将他们所考虑的功能和算法转化为类模板。模板参数要么是结构类型,要么是策略类。我觉得我需要制定一套“做/不做”的规则,但我似乎无法发明它们。
对我来说,一个好的类模板设计的目标是最大限度地提高可读性。
你个人是否有规则来设计好的类模板?是否有从功能描述到类模板设计的正确过程?
编辑
是的,很难让人们使用模板进行编程。我正在开发一个框架,使模板实例化尽可能图形化,并指导原则(并提供日常帮助),使模板编程尽可能容易。但这里的问题只是关于设计,我认为这是一个完全不同的问题。
发布于 2009-03-31 12:45:16
在您的情况下,我将开发一种框架,让您的同事只考虑公式,数学和求解。
我认为所有的“擅长数学”的家伙--如果他们的工作不仅仅是实现数学功能--应该知道“设计模式:可重用的面向对象软件的元素”。
你也可以让你的同事注意到boost算法。有一个可以用于满足项目需求的图库。
发布于 2009-03-31 12:48:16
我不想打扰你的阅兵式,但根据我的经验,试图让非程序员(或那些编程不是他们的主要“事情”的人)对一些比较神秘的事情感兴趣,比如用C++编写好的模板代码是一项西西班的任务。
见鬼,我在一个拥有大量优秀C++程序员的部门工作,即便如此,让组织承诺采用新技术并不总是件容易的事。如果你的家人是优秀的数学家,并且知道足够多的编程来过活,那么试图把他们需要编写通用C++的强制要求强加给他们,这将是一个非常困难的推销。
我会努力遵循Mykola的建议,并试图想出一些通用的算法框架,将他们需要做的原始模板编码降到最低;这可能是克服不可避免的感觉的最好方法,即你只是在为它们付出更多的努力。
https://stackoverflow.com/questions/700735
复制相似问题