改进了以前的一个代码统计工具,主要是加入ui。这样操作时比较方便。
主界面如下
parser配置界面如下
以下是开发时的一些体会。
1 整体架构的进化
2 该写UT的地方还是要写的
3 对ResultItem的重构
4 UI的添加
5 参考其它的同类型程序
6 保持一个简单的核心概念模型
1 整体架构的进化
刚开始的时候考虑的比较简单,只是说想统计一下写的代码.
当时用的是.net开发的,一两个源文件就做完了.
但是后来不管怎么看都不灵活,主要是感到以下三个方面不太好.
1 对统计什么文件的设置不灵活,最早只能统计一个目录,可以从命令行读该目录,也可以跳过一些特殊的子目录,
如子目录里面包含test等等,但是这个是硬编码的.
2 只能统计java源文件.
3 统计的结果的展示比较单一,直接输出在一个文件里.
针对这几个缺点,考虑引入了以下概念.
1 引入CodeFileFilter来灵活的配置要统计的文件.
2 引入CodeFileParser来灵活的根据不同的文件来进行统计.
3 引入Reporter来报告结果.
后来在引入新的Filter和Reporter的时候,感到这个架构还是挺好用的.
尤其是在引入UI的时候,只需要引入新的UI Reporter就可以工作了.
经过一段时间的挣扎,CodeFileParser从一个用户可灵活插拔的接口(用户可以提供自定义实现)演化成一个默认实现,用户可以配置。
2 该写UT的地方还是要写的
一般我会对code写一些ut的,有的code貌似比较简单或者只有方法调用,我一般称之为架构性代码,这部分的ut做的
比较少,因为这种地方错了,马上程序运行就会出错.另一些逻辑比较多的地方的UT还是一定要加的.
3 对ResultItem的重构
本来对ResultItem的内容表现是在各处分散定义的,系统中有如下处在使用,在ResultItem的toString方法,
html的生成处以及UI的table显示.如果有改动的话(增加一个显示列或者删除一个显示列,或者显示列调整次序),
各个地方都要改动.
把这个对显示列的处理更新都放在ResultItem中.提供接口让想显示ResultItem的地方在这个基础上做自己的
显示逻辑.这样以后如果对显示列的列名啊,列数啊,值啊有改动,只要改ResultItem一个地方好了.
在TableModel的显示中变成了
@Override
public String getColumnName(int column) {
return ResultItem.getColumnName(column);
}
@Override
public int getColumnCount() {
return ResultItem.getColumnCount();
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
ResultItem item = resultList.get(rowIndex);
return item.getColumn(columnIndex);
}
改到这个地方,突然发现这个重构很好,table的code又变漂亮了.
这个重构还顺带让我可以把ResultItem中的一些public方法改成private的.
对ResultItem的表示相关的值都是基于column用switch来判断的,这样当要加减一个列或者要
调整列的顺序的时候,有如下一些地方要改变。
共有多少个列,列名,列的Comparator,列的值。
很不舒服。
Refactor,增加一个集中的管理的地方,对一个列的相关内容进行集中管理,这样,当要修改的时候,
只要修改一个地方就好了。改后有点用code做配置的样子,虽然看着有点麻烦,但是前面的缺点也克服了。
4 UI的添加
这个程序在早的版本中是一个命令行程序,并不提供UI,因为最早的想法是自己用,而且如果给其他人用,
也一定是程序员用,而程序员改个配置文件之类的应该是简单的事情.
后来用的过程中,自己都觉得命令行麻烦,哎,还是加UI吧.
而且加UI的好处还有,让我时不时可以看到当前的成果,也好自我鼓励一下.可以想着添加一些高级的功能.
5 参考其它的同类型程序
开始的时候尽量不看其他的同类型程序,毕竟,自己想需求,模型,编程,调试本身是很有快乐的.
但是在做到差不多的时候,适当的参考一下其它的实现,有时候还是有一些启发的.
CodeLineCounter
竟然和我的程序的名字一样.比较简单,可以说是最小的功能了,有正则表达式支持.
GeroneSoft CodeCounterPro
界面比较好,功能也比较多,对comment的建模做的很细致,在这一级还有一个漂亮的模型.
BoomWorks 源代码统计工具
结合了测试用例和成本估计.
6 保持一个简单的核心概念模型
我的学习习惯比较偏好研究一些比较基本的概念。一旦概念掌握了,其他的就比较简单了。
编程时尽量维护一个便于理解的核心概念模型,对于自己的开发和维护而言,也是有很大益处的。
- 大小: 39.5 KB
- 大小: 167.7 KB
分享到:
相关推荐
CodeLineCounter2.0正是这样一款专为此目的设计的实用工具,它能够帮助开发者快速准确地统计代码库的行数,从而提供对项目规模的直观理解。 CodeLineCounter2.0的主要功能是统计源代码文件中的代码行数,包括空行、...
本软件用于统计软件工程源代码行数,可对指定的子目录下或整个目录树中 所有指定类型的源代码文件进行行数统计。 本软件的统计结果包含源代码中的注释行和空行,因为作者认为它们同样也 是源代码的必要组成部分。 ...
《CodeLineCounter代码行数统计工具详解》 在软件开发过程中,代码行数(LOC,Lines of Code)常被用作衡量项目规模、工作量和复杂度的一个指标。"CodeLineCounter"是一款实用的工具,专门用于统计项目中的代码文件...
程序源代码行数统计工具是一种实用的软件开发辅助工具,主要用于量化分析代码库的规模。在软件工程中,代码行数(LOC,Lines of Code)常被用作衡量项目复杂度和工作量的一个指标,虽然它并非完美的度量标准,但仍然...
源代码行数统计器 源代码行数统计器 作者:庄渭峰 版本:V1.5 类型:免费软件 功能简介: 本软件用于统计软件工程源代码行数,可对指定的子目录下或整个目录树中 所有指定类型的源代码文件进行行数统计。 本软件...
今天我们要介绍的是一款名为"CodeLineCounter"的实用工具,它能够帮助开发者快速、准确地统计代码行数,从而更有效地进行项目分析。 CodeLineCounter是一款轻量级的代码统计工具,以.exe可执行文件的形式提供,无需...
标题 "代码行数统计工具(C#或VB)" 暗示了这是一个软件应用程序,设计用于计算编程项目中的代码行数。这类工具通常被开发者、项目经理和质量保证团队用来评估项目的规模,估算开发时间,或者进行代码复杂性分析。在...
CodeLineCounter.exe很可能就是这样的一个统计工具,它可能是一个可执行文件,用户可以直接运行来分析他们的源代码目录。只需指定待分析的源代码文件或目录,该程序就会遍历所有文件并返回统计结果。这些结果通常会...
在Java编程语言中,统计代码行数是一项常见的需求,它可以帮助开发者评估项目规模,跟踪代码增长,以及在软件维护和优化时提供参考。本篇文章将详细介绍如何使用Java来实现这一功能,同时考虑到不同文件格式的支持。...
源码统计行数工具是一种非常实用的软件开发辅助工具,尤其在项目管理和代码审计时大显身手。本文将详细解析“一个源码统计行数统计工具”的特点、功能及如何使用。 首先,该工具的核心功能是统计源码行数。源码行数...
"CodeLineCounter.rar"是一个用于计算代码行数量的工具,通过其包含的"CodeLineCounter.exe"执行文件,我们可以高效地统计不同编程语言的源代码文件中的行数。本文将深入探讨代码行计数器的工作原理、应用场景以及...
在Java编程语言中,统计代码行数是一项常见的需求,特别是在软件工程中进行代码质量分析、度量和项目管理时。这个任务通常涉及到遍历指定目录下的所有文件,并针对特定格式的源代码文件(如.java、.cpp等)进行行数...
源代码行数统计器是一种工具,它用于计算编程项目中包含的源代码行数。这种统计可以帮助开发者了解项目的规模,评估工作量,进行代码审查,甚至在一定程度上预测项目的复杂性和维护成本。以下是对给定的三个源代码...
CodeLineCounter05.rar,代码行计数器.用于计算用dot NET开发的源程序代码行数. 经过小小修改即可用于计算java程序的代码行数。源于网 上他人的程序修改优化而成。 选择项目路径——>选择文件类型——>排除某些文件...
这个压缩包“源代码行数统计器.zip”包含了一个名为“CodeLineCounter.exe”的可执行文件,这表明它是一个Windows平台的应用程序,用户可以直接运行无需额外安装步骤。 在软件工程和项目管理中,了解源代码的行数...
源代码行数统计器.exe 文件类型:应用程序 描述:CodeLineCounter Microsoft 基础类应用程序 大小:204 KB (208,904 字节)
一个功能十分强大的java版代码行数统计程序,可以用来统计.java .htm .html .jsp .xml等格式的文件的代码行数。如有需要,可以对本程序稍加扩展,以支持其他格式文件(如.css .js .php等)的代码统计
CodeLineCounter是一款开源的代码行计数工具,专为开发者设计,用于统计源代码和其他相关文件的行数。这款工具不仅能够提供基本的代码行数统计,还能生成详细的HTML报告,方便团队成员理解和分析项目的结构。 ...
压缩包中包含了 CodeLineCounter, hywavesoftSCounter, LineCount 三个统计工具,功能各有千秋 用于统计软件工程源代码行数,可对指定的子目录下或整个目录树中 所有指定类型的源代码文件进行行数统计。 统计...