介绍一个好东西:RELO, 代码分析用的

http://steeven.iteye.com/blog/370738

Eclipse Netbeans 项目管理 UML Git 
介绍一个好东西:RELO, 代码分析用的 

先说几个题外话: 
1. 饭碗掉到马桶里面还要不要用了?重要的马桶里面还有新鲜的shit。偶是做软件的,选择了重用。。 

。开水冲洗一下,然后进微波炉转转。经济危机,勤俭节约。 
2. 我们都有这样的经验:拿到一堆开源的代码,在里面看呀看呀找不到方向,看到这里忘了那里。或者 

是维护别人的代码,在一堆垃圾代码中苦苦挣扎。 
3. 有同事建议看些右脑开发的东西,他能随口说出我们的手机号码,汗!偶有心打鸣没心下蛋,下了一 

堆资料没去看。但是有个重要的概念:人脑对图形的记忆能力远远强于对文字数字的记忆。所以最好的语 

文老师要求背诵荷塘月色的时候都会极力YY一下。所以也有了UML,那玩意虽然很枯燥,总比看代码有印 

象。 
4. 最近忙得脚打后脑勺,这个题目两周前就想写,今天总算有点时间。 


正题: 
因为要解决一个比较棘手的问题,要看很多代码,一边看一遍用画图工具画下来,总觉得不方便。正好有 

同事推荐了RELO, 结果用下来发现有很多问题,仔细看看,原来2年没维护了。自己改了些bug, 终于可以 

凑合着用了。下面是用RELO分析RELO导出的图(这个导出功能是我加的,把关系线给导没了,待修): 
Elipse编译插件结构: 


对象模型:
GEF对象模型: 


RELO比较可爱的几个地方: 
1. 现有的类可以从左边的导航树上直接拖到图上 
2. 成员是根据需要展开的 
3. 同步功能,你看过的代码会自动记录到图上,很方便回过头追踪。特别是断点调试的时候,stack 

trace可以变成调用过程图。 
4. 方法的前后调用关系,可以从图上直接展开。 

RELO对代码的关系分析有两种方式(图一):ASM和AST。前者从编译后的class解析(缺省),后者利用 

Eclipse对源码树的解析。有兴趣的可以拿来好好学习一下。 

如果我们自己实现这种插件,想想要建立多少个对象呢? 

package/class/method/field/relation/memo/link/... 
relo里面利用了openrdf,这个玩意很有趣,正好也很适合描述这些复杂关系, 下章blog单独介绍RDF吧, 

这个问题有点大。 

果然是MIT出品,在设计上很有新意。但是仔细看看代码,有些混乱,可能是不同的人维护出来的结果。 

原作者vineet(好像是个印度人)现在就职另外一个公司,有商业版本relo推出,对个人免费。现在还没 

看到产品。 

我改过的代码在http://bitbucket.org/steeven/relo/上有克隆版本。这个网站很有趣,mercurial的 

eclipse插件就在这个上面。如果你对某个项目想实现自己的开发分支,或者提交一些patch, 无需提交权 

限,把原来的项目克隆成自己的,直接提交即可,如果有价值,可以要求主干维护者merge你的patch。别 

人也能看到你的分支。这些有趣的特性来自mercurial(HG)一个类似于GIT的分布式版本管理工具。 

netbeans已经正式支持。好处很多,自己慢慢研究吧。习惯windows下面玩的有对应的乌龟可用。 

OK, 如果你也喜欢这个小插件,欢迎帮忙完善它,不管文档还是代码。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/41643.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

chatgpt赋能python:Python单词怎么发音?

Python单词怎么发音? 如果你是一个Python编程语言爱好者,无论是初学者还是有10年的编程经验,你可能会问:Python单词怎么发音?这是一个非常常见的问题,如果你想在编程社区中站稳脚跟,理解这个问…

chatgpt赋能python:Python的发音

Python的发音 Python是一种广泛使用的编程语言,用于web开发、数据分析、科学计算等众多领域。然而,Python这个词汇的发音在不同的地方却存在差异。在本文中,我们将介绍Python的发音,解决大家的困惑。 发音方式 Python在英语中常…

chatgpt赋能python:Python怎么打开网站并提高其SEO?

Python怎么打开网站并提高其SEO? 在当今数字化时代,网站已经成为企业建立品牌和吸引客户的主要方式之一。为了保证网站的曝光率和品牌价值,SEO(搜索引擎优化)显得尤为重要。本文将关注如何使用Python开发并优化网站&a…

chatgpt赋能python:Python自动打开浏览器的技巧

Python自动打开浏览器的技巧 在现代互联网时代,有一个时代的特征是信息爆炸,通过浏览器访问网站成为人们获取信息的常见方式之一。特别是对于SEO优化人员、营销人员、广告投放人员、数据分析人员、网络安全人员等计算机行业人员,需要经常浏览…

arcgis for javascript api4.26 本地tomcat部署,以及解决跨域访问问题

一、配置java_jdk以及tomcat arcgis for javascript api 部署到本地服务器,可以是iis,也可以是tomcat,我这里是部署到tomcat,所以就介绍一下tomcat上部署的步骤。 如果电脑上有本地服务器的,可以跳过这一章,直接从第二章开始看 下…

Langchain-ChatGLM:基于本地知识库问答

文章目录 ChatGLM与Langchain简介ChatGLM-6B简介ChatGLM-6B是什么ChatGLM-6B具备的能力ChatGLM-6B具备的应用 Langchain简介Langchain是什么Langchain的核心模块Langchain的应用场景 ChatGLM与Langchain项目介绍知识库问答实现步骤ChatGLM与Langchain项目特点项目主体结构项目效…

别再为练习接口测试和JMeter压测烦恼了,我为你们搭建了一个环境快来看看(最后还规划了自动化测试的学习路线)

目录 前言 福利来了 详见接口文档 其它 最后再给大家分享一下自动化测试的学习路线,希望可以帮助到初学的朋友。 一、学习自动化测试之前,必须学会一门编程语言 二、熟悉被测系统,掌握前端的知识,数据库的学习 ​四、自动…

Cursor攻略,吃个螃蟹

Cursor攻略,吃个螃蟹 1.1 工具下载与安装1.2 工具的原理 2、Api key生成与配置2.1 生成Api key2.2 设置Api key 3、工具插件多元化使用手册3.1 汉化插件3.2 SpringBoot、Maven插件(ctrl shit x)3.3 Git插件(ctrl shit x&#…

无代码玩转GIS应用,我也在行

您好,我是码农飞哥(wei158556),感谢您阅读本文,欢迎一键三连哦。💪🏻 1. Python基础专栏,基础知识一网打尽,9.9元买不了吃亏,买不了上当。 Python从入门到精通…

【nvidia jetson】AGX ORIN 开箱配置

目录 SDK managerjtopDeepstream SDKDeepstream pythonBase dependenciesInitialization of submodulesInstalling Gst-pythonBuilding the bindingsinstalling the pip wheel Reference 为了方便我直接用nvidia 提供的 SDK manager 进行安装 SDK manager 首先在你的电脑(ubu…

旅游信息管理系统的设计与实现

开发环境: Eclipse/MyEclipse、Tomcat8、Jdk1.8 数据库: MySQL 适用于: 课程设计,毕业设计,学习等等 系统介绍

十一假期旅游如何规划路线,让python带你玩转各景点

livandata 数据EDTA创始人,没有之一 现担任数据EDTA个人公众号董事长兼CEO兼财务兼创作人 口号:让大数据赋能每一个人 前言 数据EDTA的读者们,大家好~ 国庆将至大家有没有安排出行呢? 有没有翻遍了网站,为出行计…

2021地理设计组一等奖:面向游客的旅游路线优化设计——以丹霞山景区为例

作品简介 一、背景与意义 随着旅游业的快速发展与人们对旅行质量要求的提升,旅游者对旅游服务的内容要求也越来越高,其中的旅游导航便是一项需求率极高的服务。然而传统的导航服务多是基于时间或距离成本进行网络分析而提供的路径设计,极少考…

python去哪儿网的旅游景点信息

爬取过程分析: 1、网站url:‘https://piao.qunar.com/ticket/list.htm?keyword北京&page1’ 2、http请求方法为get方法 3、用beautifulsoup提取所需要的信息 4、将爬取的信息存至本地 具体代码如下: import requests from bs4 import B…

基于python+django框架+Mysql数据库的旅游景区景点售票系统设计与实现

项目背景和意义 目的:本课题主要目标是设计并能够实现一个基于web网页的景区景点购票系统,整个网站项目使用了B/S架构,基于python的Django框架下开发;管理员通过后台录入信息、管理信息,设置网站信息,管理会…

基于微信小程序的旅游社微信小程序

文末联系获取源码 开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7/8.0 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包:Maven3.3.…

基于大数据分析的旅游平台的设计与实现

摘 要 随着旅游业的发展,旅游平台作为旅游行业的重要组成部分已经逐渐受到了越来越多的关注。在这样的背景下,基于大数据分析的旅游平台应运而生。本文旨在研究基于大数据分析的旅游平台。 本文根据旅游行业目前的发展趋势,提出了一种可…

用Python爬取了全国近5000家旅游景点,分析国庆去哪玩

双节同庆,小长假如约而至 我想今年大家在家都憋坏了 这么长的假期,当然是出去 玩玩玩! 每当长假的时候,有没有想起被人山人海支配的恐惧! 该去哪些地方呢? 我用 Python 爬取了全国近 5000 个旅游景点&#…

景区旅游管理系统

1、项目介绍 基于SSH的景区旅游管理系统6拥有两种角色:管理员和用户 管理员:景点管理、酒店管理、客房管理、用户管理等 用户:查看搜索景点、酒店景点预定、订单查看、评论打分等 2、项目技术 后端框架:SSH(Strut…

基于大数据架构实现景点游客数据分析平台,全国景点游客数据管理系统

随着最近几年旅游行业的兴起,越来越多的景区景点将传统模式的线下统计模式变更成为了线上分析统计模式,线上对景区游客数据的管理与监督的新型模式。很多的景点采用游客数据分析平台系统,在线上对不同景点内部的游客数据进行管理,…