java开发定位思维和思路

【定位思维篇】

第一步:看代码首先应该熟悉每一个功能模块,知道每个功能按钮是干什么用的,执行后程序会做出什么样的反应,一边研究每一个按钮的功能,一边思考它是如何和数据交互的和其他功能关联起来的!如果是我设计我将如何设计,思考将贯穿始终,看代码一直是思考和记忆力以及耐力的综合考量!如果你没这个勇气或者说你不想这么做,那么你的技术将永远不会提升,你也将永远的被进不到“大师”的行列!

第二步:打开“解决方案”,看到有很多项目,并且这些项目的名字几乎相同,虽然很难记,但是你仍然要用心的记下来,并且知道每个项目所负责的功能,然后打开一个项目,仔细去分析这个项目的具体实现方式!以此类推其他项目也这样做下来!

第三步:然后按照分层的方式去分析,比如说三层架构,一般都是用的三层架构:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。按照这种方式去分析项目框架及设计模式的方式!研究作为架构师的设计思路!

第四步:纵向分析-研究功能模块,当我执行某一个功能模块时,所有设计的、需要执行的代码都是哪些,怎样获取数据的、怎样把数据传过来的、怎样连接起来的、这样设计有什么好处等等等!一定多问自己几个为什么!

 

定位的目的是为了验证我们的猜想,在代码定位中,首先要明确你的定位目标是啥,想一想有哪几种导致问题的可能,思考这个功能会是怎样的实现方式。

定位具体代码的过程,学会分析判断哪些方法是重要的跟业务关联大的,定位不是每行代码走一遍,要学会抓住关键,花精力在重要的、疑点多的部分。

 

【定位思路篇】

从语言特性、业务层面、代码设计角度去思考一个问题的定位思路,可以避免你钻的太细,站在更高的角度去处理问题。

一、语言特性

1、底层

前台主要用到Swing开发,定位过程可以从JDK底层源码去触发,还有一些组件特性。

例如:按钮点击事件,底层的触发方法fireActionPerformed(ActionEvent),通过底层实现的角度找到具体代码。

找到界面类后,JTable,TableModel运用的很多,了解这2个类的设计特性,能更快定位问题。表格的设计体系比较大,针对于表格的相关类还有,JTableHeader、TableCellEditor、TableCellRenderer、RowSorter、TableColumnModel等,我们从主要的部分入手去学习其他相关类的作用就行了。

表格的设计运用了MVC设计思想,JTable负责界面交互,TableModel负责数据存放,常见方法IsCellEditor(),getCellEditor(),setValueAt()等,这几个方法跟数据交互比较多。

 

2、实现流程

例如:

(1)web项目,主要用到html、js、css,html做页面展示,css做页面样式定义,js定义交互动作。代码中实现一个Servlet,处理get和post请求方式

一个界面以html文件实现为主,引用css样式,javaScript动作,一些文件例如XML解析是放在Java代码中的,这就是主要的语言间搭配的流程,对于具体的设计就要从代码设计和架构角度思考了。

(2)前台swing界面实现

有一个界面类,添加各种组件,在组件之上,实现组件相应动作(事件),然后就是前后台业务交互流程(进程和F接口)和数据的处理,后台主要做业务处理和跟设备打交道确认规格,前台主要负责数据在界面上的展示和界面交互。

 

二、业务层面

如果对业务比较了解,在定位到具体代码后,通过业务功能指导代码定位,查看代码实现过程是否ok,每一个方法应该实现什么样功能,可以忽略语言特性和语法,关注到功能重点。对业务的理解,有两个途径:通过业务规格文档学习,另外就是从已有项目代码去了解业务。

 

三、代码设计角度

用到了那些框架,这些框架的特点和意义,使用了什么设计方式等。比如,前台资源文件统一存放描述信息,表格配置文件用于定义表格信息,让代码关注功能和业务,分离表格配置和功能实现,是另一种程度的解耦。

 

四、定位技巧总结

了解eclipse快捷键(搜索,全项目引用,本类引用,查找等),方法outline概览,debug调试技巧(条件断点,watch)提高代码定位效率

1、搜索字符串,找到定义文件,找到使用该文件的类(字符串要有唯一性,找的更精确)

2、AbsractButton类

         按钮点击查找:fireActionPerformed

         单选框、复选框查找:fireStateChanged

3、JComboBox类

下拉框下拉项被点击查找:fireItemStateChanged

JTabbedPane等类可类似找通知方法

注:有些时候通过事件找具体类比较复杂,可以加上构造函数辅助定位

4、  菜单类问题定位

(1)菜单类继承自AbstractButton,通过该类定位到菜单

(2)菜单类有创建菜单方法,通过资源文件加载菜单项text,并可以在资源文件中找到对应的方法

(3)菜单事件回调,找到监听类,查找菜单方法

5、通过局部类——》大类

(1)通过debug找到局部类,再查找引用该局部类的类(更大的类)

(2)快捷键+分析

(3)搜索层级多,记录关键操作

(4)带着目的读代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值