云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

云解析_阿里云微博_新用户

小七 141 0

有些东西我觉得绝对上瘾。除了代码美,干净的代码和教育,我觉得很有趣,我也是游戏化和可视化的超级粉丝。

我想了解游戏化在ABAP编程环境中是如何工作的,因此启动了GLADIUS项目,在那里你可以用代码来解决ABAP问题。

SAPGUI中的可视化不是很容易,因为图形化条件非常有限。有一些UI5组件可以更好地用于可视化数据和图形,比如这个UI5演示。在SAPGUI中也可以进行一些可视化,但通常非常复杂。

可视化有一个非常有趣的方面和一些特殊的数据:源代码。有些人还试图可视化源代码依赖项或代码的特殊方面,如代码行、类的方法或属性的数量等等。

我将尝试概述现有的项目和想法,我已经…抱歉这篇长文章。我想分为多个职位,但决定一个更大的文章可能更好。阅读愉快!

度量

在可视化源代码之前,您需要有一些可以应用于显示对象的度量。因为对一个对象的不同度量和可显示数据的数量有限制,所以您必须根据您的意图定义一些视图。

使用最多的度量之一可能是LOC–代码行。这个指标非常简单,但在类似的情况下很有用。其他指标可能是

每行代码的注释数类的方法数类的属性数依赖项数(使用位置列表)代码覆盖率更改次数年龄贡献者数量

这些指标或多或少都很容易被发现。还有其他一些指标更难确定,有时也不能直接与代码一起存储,比如:

性能安全问题发行数量此函数导致的短转储数交易数量

您还可以考虑添加美容指标:

漂亮打印机执行?缩进代码备用行的数量

我知道干净的代码和美观取决于个人观点,但如果你在上面运行Lars Hvam的abapOpenChecks,有些代码可能是可以计算的……

有一个由NDepende提供的代码度量的良好概述。

使用度量进行可视化

如果你想可视化代码,你的选择是有限的,因为你只能使用其中的一些用于构建对象的现有度量。如果你对宽度和长度、高度和颜色使用三个度量,那么你就完成了。其他指标只能通过标记或附加标记来显示,但不能真正可视化。当然,你可以有一个仪表板这样的东西来显示所有的指标,但这不是我所理解的可视化。

在这篇文章的最后,我会告诉你一些想法,如何一次显示更多的指标。

代码可视化项目

这里是我在代码可视化搜索中发现的项目和例子。有许多项目似乎相当活跃,虽然演示网站关闭。有些项目已经有些年头了,似乎不再维护了。

我第一次接触代码可视化是与Moose和Rainer Winkler对它的贡献。Moose提供了一些非常好的代码图片,比如Moosetechnology.org网站:

用Moose可视化代码

可以用Moose查看源代码部分,租用服务器,获得对象数量及其依赖关系的概述。一个对象的代码行越多,它就越大。私有方法为红色,受保护方法为蓝色(反之亦然)。黑点是属性。或者类似的。对不起,我记不清了。依赖关系用线条表示。

Rainer Winkler写了一些关于它的博客文章,人工智能包含哪些方面,并将其用于他的日常工作,以理解和记录遗留代码。

另一个伟大但可能已停止的项目是Richard Wettel的代码城。代码城市以城市的形式可视化源代码。每个类是一个块,每个方法是一个建筑。一个方法的行数越多,建筑就越高。

代码城市

代码城市也使用Moose作为平台。

前景:Eclipse市场上有一个Codecity Eclipse插件。我假设它不会与ABAP一起工作…

Codecity Eclipse插件

更多链接:

https://wettel.github.io/download/Wettel08a-icse-tooldemo.pdf

代码是美丽的量化代码项目提供了一些非常有前途的截图:

代码是美丽的

一些源代码在github上,但无法访问演示。

在这个网站上一些代码可视化工具被命名,并提供了一些进一步的链接。

代码雷达是一个项目,可视化代码类似代码城市,还提供了一个功能,比较两个不同版本的代码库,物联网概念,你可以在演示中探索。

代码雷达

也很有趣的是项目Softvis3d。也看起来非常有趣虽然github项目看起来相当活跃,但不幸的是一些演示没有运行。试用此演示。

Softvis3d

公司NDependen提供了一套完整的代码度量、代码可视化等工具。

NDependen代码可视化仪表盘

未来

上述项目非常棒,对理解和记录代码非常有帮助。但在我儿子圣诞节得到一个Oculus Quest 2虚拟现实耳机后,我有了在虚拟现实中探索代码的梦想。耳机和在这个虚拟现实中的体验是如此惊人,我可以想到很多事情和选择做那里。一件事是遍历类并进入代码。至少我不是唯一一个想到这个的人…

佛罗里达州奥兰多的ICE或ISUE实验室,在这个主题上已经做了一些研究。

他们建立了一个代码显示为三维世界的世界,可以通过从一个班级走到另一个班级来探索。

代码公园:班级建筑

在每个班级里你可以看到它的代码:

代码公园:在一个班级里

关于这个项目的信息也很少。该网站显示,有很多事情正在进行,但没有关于代码公园项目。有一段视频是我截图的地方。