有什么方法可以发现被派遣的人吗?

时间:2014-09-22 17:00:14

标签: java spring intellij-idea vaadin

有时在我们的代码库中,我不知道在做某事时会调用哪些类。我的解决方案是向某人询问代码所在的位置,但是我怀疑有一种方法可以让我在单击按钮时发现正在执行哪些类。我怎么可能变得自我依赖并找出自己正在执行哪些类/方法(可能是过滤掉了以至于我可以忽略我想要修改的框架类)?

我怀疑我正在寻找类似于调用堆栈的东西,它只显示我设置某个点后发生的事情(例如我进入屏幕,单击记录堆栈,单击按钮,查看堆栈,有点像chrome开发工具记录网络请求,并比较说wirehark记录网络请求,chrome是一个更加过滤的视图),并允许我过滤它。这是一个有根据的猜测

2 个答案:

答案 0 :(得分:1)

这个问题有点模糊,但是有一些导航不熟悉的代码的一般策略。

例如,当我尝试查找单击按钮时发生的情况时,但我不知道按钮的位置,我开始的第一个地方是按钮文本。搜索文字。它可能出现在.properties(即本地化)文件中。使用该财产的地方在哪里?希望其中一个地方就是按钮。

接下来,在按钮的操作中添加一个断点。单击按钮。使用调试器逐步执行代码。您可以在没有调试器的情况下跟踪代码,但它很容易被跟踪。

答案 1 :(得分:1)

好的我咬了Vaadin,因为它是列表中最具体的一个,也许最容易从顶级方法回答,这与@kuporific建议的相反。所以你可以自己决定

鉴于您正在从IDE运行Vaadin应用程序,因此重定向到应用程序的某个起始点,现在在某些代码中间点击后,您需要调试。您应该有一些IDE,它能够快速浏览您的代码(例如,在整个项目中查找类,按住Ctrl键单击方法,查找实现,......)。

我们的示例网址:http://localhost:8080/sales/#!stats/2014

Vaadin应用程序作为servlet在容器上运行,是com.vaadin.ui.UI的子类。在sales上方的网址是应用的上下文。转到UI课程并检查子课程。在您的项目中可能会出现类似SalesUI的内容 - 此类的后代通常不多。

接下来请注意,此网址以#!stats/2014结尾。 #!用于管理视图。第一个单词(由/拆分)是视图的名称。实现com.vaadin.navigator.View的视图将添加到导航器实例中。因此,实现此接口的类将是一个良好的开端。 Sane人称他们的班级理智,所以很可能会有SalesStatsView

Vaadin中渲染的所有内容都是某种组件。因此,视图将构建它自己的内容或将其委托给一些帮助者。使用浏览器调试工具检查网站的当前内容。通过为元素设置CSS类,Vaadin非常冗长。您将快速掌握总体布局(有垂直/水平布局,一些主要标志,如表格或图表,按钮,......)。记下包含和位置的心理记录,并尝试通过代码找到自己的方法。

视图有一个enter方法,可以处理更多的参数。在这种情况下,URL中的2014是一个参数(第一个/之后的所有内容。因此,输入将处理有关此变量的一些加载。请检查此处特定于视图的加载数据。

正如评论中所述,这一切都是高度自以为是,并且是每个开发人员必须学习和建立的技能,但归结为可能是这样的:

  • 了解用于组合应用程序的基本概念,并能够导航和研究具体实现(例如,春天的Autowired:使用IDE查找具体实现并验证其实际使用情况(断点) ,伐木,......)。

  • 了解所使用技术的切入点。 (例如UI,vaadin为View,春季为(Rest)Controller

  • 了解基本的软件模式,尤其是您在应用中看到的模式。 (如果有一个SalesStatPresenter类,则视图不远,并且期望处于模型 - 视图 - 展示器模式的世界中。

如何获得这些知识?阅读Vaadin书籍,阅读spring core和web docs。你不必记住所有事情,但你知道,在哪里寻找和搜索。如果你不理解像自动装配这样的黑魔法,那么你将永远受到他们所取得的成就的影响。