设计和实现AI算法算法时有没有必要在代码中加注释,没有用必要在实现之前弄个UML图???
问题如题:
设计和实现AI算法算法时有没有必要在代码中加注释,没有用必要在实现之前弄个UML图???
今天看到一个博文:
https://www.cnblogs.com/siyuanwai/p/15432932.html
里面又怎一端话:
看了这段话后我有了一些想法。
现在的AI算法发展的十分迅速以至于很多AI算法不再只停留于算法层面,在某种意义上来说现在的很多AI算法都可以用AI系统工程或是AI工程来描述,总的来说现在的AI算法不同于传统的AI算法,不再是那种结构单一、逻辑简单、代码量较少的那种小体积的代码结构。现在的很多AI算法都是有多个组成部分,而每个组成部分又可能接着细分,最终的子组成部分可能才是传统意义上的算法,在这种情况下还用传统的算法编写方法来编写代码很难适应现在的情况,即使算法的最初面对者是学术界的,即使这些算法并没有工程方面的要求,但是这么复杂的,这么大体积的算法可能用工程项目来说更为贴切。
复杂的AI算法与其说是算法不如说是AI算法工程项目更为贴切。
就像本文题目中所说的,AI算法需要不需要在代码中加注释,需要不需要在算法代码编写之前使用UML这类的软件需求或结构设计软件进行下规划呢。(特殊说明下,这里并不是说要用UML设计一个完整的流程,因为这个用不到,再复杂的AI算法项目最终面对的往往也不是最终用户,最终面对的也还是算法本身,所以我们往往需要设计一些各个算法子组成部分间的关系结构可能就可以了)
说下个人观点:对于越来越庞杂的AI算法项目,在编写代码之前做好一定的设计分析工作,如使用UML中的类图之类的分析设计图即可,在编写具体的AI算法项目的代码时也加入适当的注释,毕竟代码量大了,逻辑复杂了,往往没有注释的情况下是难以解读的。要是以前的较短代码量的算法代码没有注释也是能够接受的,现在的AI算法项目代码量大的惊人,逻辑结构也搞的错综复杂,如果没有一点软件工程的知识来支撑是难以编写出具有可读性的AI代码的,同时现在的AI研究在学术界还是工程界都是需要不对的调参,不断的优化,不断的改进的,如果代码设计之初就没有构建清楚整个项目的代码结构,那么后期的优化改进就会变得像打补丁一样折磨人。可以说不好的项目代码架构设计,不好的编码风格,没有适当的代码注释,这些问题不仅仅是开发工程师的噩梦同时也是AI算法开发工程师的噩梦。现在的AI算法在代码量和代码变更程度上更像是开发项目而不是传统的那种小代码量的算法,因此使用适当的项目开发技术作为支撑是很有必要的。
最后给出我很认同的一句话:
编写高质量可维护的代码是程序员的基本修养。
同时我也认为编写高质量的代码不仅仅是程序员的基本要求同时也是AI工作者的基本要求,AI工作者在编写AI算法程序时保证良好的代码质量也是十分必要的。
====================================================
python 官方给出的编程规范:
https://www.python.org/dev/peps/pep-0008/
posted on 2021-10-22 23:17 Angry_Panda 阅读(90) 评论(2) 编辑 收藏 举报