《软件工程综合实践专题》——阅读并评价代码

在简单查阅了如何评价一段代码后,了解到评价一段代码需要从规模、执行效率、占用空间、可读性、扩展性五方面来进行比较。其中最看重的是可读性和执行效率这两点,扩展性比较不容易把握,在不同阶段对于延展性的要求不一样。

如下代码:

 1     int arr[10] = { 2,5,15,18,7,10,13,11,9,0 };
 2     int arrSort[20] = { 0 };
 3     for (int i = 0; i < 10; i++)
 4     {
 5         arrSort[arr[i]]++;
 6     }
 7 
 8     for (int i = 0; i < 20; i++)
 9     {
10         if (arrSort[i] > 0)
11         {
12             std::cout << i << std::endl;
13         }
14     }
15 
16     system("pause");

一、规模

        规模是指代码的规模,也就是解决同样问题的程序包含的代码行数。一段好的代码既要求规模小也要求可读性高。

        就我拿到的代码来看,其可读性较好,但其规模偏大,代码行数较多,存在可以代替的更精简的代码。

二、执行效率及占用空间

        这段代码通过一个空间为20的一维数组下标进行排序,就执行效率及运行空间来说,对于空间的利用是过分奢侈的。它的特点是排序范围有多大,就需要一个多大的数组。

三、可读性

        代码规范被认为是评价代码的第一要素,我个人非常认同这点。在多次小组作业需要分工编写代码中,一段可读性的差的代码对于项目的完成可以说是灭顶之灾。由此,不论是个人作业还是组队作业,都以严格的要求规范代码书写,为了提高代码可读性,允许牺牲一些其他方面的利益。

       那么我们带着这种规范再来阅读这段代码,可以发现其可读性非常高。是一段不错的代码。

四、扩展性

      对于一些大型的、生命周期久的项目而言,扩展性相当重要。但扩展性有一个死敌就是代码量。仔细研究一下经典的23种设计模式,没有哪一个不是成倍地提高了代码量。

      对于正在接触到的设计模式在扩展性方面应当做到不为了设计模式而使用设计模式,不为了扩展性而扩展。

      那就这段代码来说,不涉及扩展性方面,因此不做过多评价。

通过学习如何评价一段代码,得到了一点启示。对于我这种初学者来说,编写代码的时候可读性是最重要的。

初学者学习编程时,最重要的一点就是能够把朴素的算法用编程语言来实现。其他的都不重要。有时,过早地追求其他四种指标会让你误入歧途。

面对一道题目的多种解法,你要去做选择首先该去钻研哪一个。是那个代码函数最少的吗?是那个运行时间最短的吗?是那个开辟空间最少的吗?还是那个扩展性最强的。这些都不是,应该是那个可读性最好的。

 

猜你喜欢

转载自www.cnblogs.com/1759103-LSJ/p/10468407.html