我正在寻找有关数字软件设计模式和原则的资源,可能但不一定关注面向对象的数字代码方法。
我知道文本,编写科学软件:良好风格指南,但这仍然涉及浮点问题、如何以及何时优化等问题。
我正在寻找有关设计数字代码的更大图景的信息,而不是任何涉及算法等的信息。
我希望有这方面的资源,而不是仅仅通过一个又一个库,特别是因为除了我自己对 C++ 中良好习语和实践的了解之外,没有关于哪些事情正确设计的指南。
(这不是特定于语言的,但如果有任何特定于语言的内容,我更喜欢 C++。)
我正在寻找有关数字软件设计模式和原则的资源,可能但不一定关注面向对象的数字代码方法。
我知道文本,编写科学软件:良好风格指南,但这仍然涉及浮点问题、如何以及何时优化等问题。
我正在寻找有关设计数字代码的更大图景的信息,而不是任何涉及算法等的信息。
我希望有这方面的资源,而不是仅仅通过一个又一个库,特别是因为除了我自己对 C++ 中良好习语和实践的了解之外,没有关于哪些事情正确设计的指南。
(这不是特定于语言的,但如果有任何特定于语言的内容,我更喜欢 C++。)
我推荐这个 Matthew G Knepley。用于科学计算的编程语言。arXiv 预印本 arXiv:1209.1711, 2012 ( https://arxiv.org/pdf/1209.1711.pdf )
我还建议查看和阅读其他代码,例如,triangle、PETSc、MoAB、deal.II、fenics 和许多其他代码。并非所有解决方案都适合您,但最终,应对和向他人(经验丰富的开发人员和成功的代码)学习是如何设计代码的最佳课程。
此外,我认为加入现有项目并成为贡献者或开发人员会更好。有时你喜欢开始一些新的东西,但你必须有坚实的论据才能做到这一点。