如何很好的Review自己的代码
写这篇博文的原因是因为自己写的代码经常会因为返工,delay项目的交付日期。总结了一下引起项目delay的原因,大概有如下几点:
- 在没有完全深熟悉需求交互细节的情况下;诸如根据不同渠道设置不同的订单状态变更--超时提醒和订单取消功能。
- 在没有想清楚自己代码如何实现业务逻辑的情况下;诸如对骑手排班--明天到当前周期结尾的排班及排班详情展示。
- 是否对业务逻辑有完整的测试用例;商家详情权限功能和可逆向加密算法的测试用例。
往往第一步和第二步是同时出现的,第二步的出现也在很大程度上源自于对需求交互细节的理解不到位,所以我们在开发中养成的习惯应该是这样的:
- 认真看需求分析,最好能复述出需求细节;构思自己代码如何实现该逻辑。
- 多沟通,与产品经理与前端工程师、测试工程师沟通清楚需求交互细节。
当然上面总结的还都是理论,我们在开发中应该以此为指导,慢慢养成良好的开发习惯。注解的使用。当跟别人一起开发某个功能,很可能由于方法取名的问题,写了重复的方法,在代码Review的时候,可以在方法上添加@Deprecated的注解,表示该方法是过时的,当有应用调用该方法的时候,会报错。
<!-- 注解的使用示例 --> public class AnnotationTest extends Test
{ @SuppressWarnings("deprecation")
public static void main(String []args)
{ <!--这句话是程序命令。执行的操作是当程序结束的时候运行垃圾回收-->
System.runFinalizersOnExit(true) ;
sayHello();
AnnotationTest t=new AnnotationTest() ;
t.show() ;
} <!--在方法上使用该方法,在使用该方法处会报错-->
@Deprecated
public static void sayHello()
{
System.out.println("hello ,world!");
} @Override
public void show()
{
System.out.println("super class");
} } public class Test {
@Deprecated
public void show()
{
System.out.println("super class");
}
}
上面是使用@Deprecated、@SupressWarning、@Overrider三个注解的示例,注解会被javac所识别,解析为注解类,编译器会根据不同的注解,编译出不同的结果,@Deprecated注解表示过时的方法,在使用低版本的JDK中方法的时候会出现;@SurpressWarning("deprecation")注解是抑制过时API的警告 ,这个可以放在调用过时的API的方法外部或者调用方法之前,那么在编译的时候javac遇到这个标识,即使知道API过时那么也不会输出过时API的提示。
<!--使用频率80%-->
Alt + '/' 代码提示
sysout + Alt + '/' 自动补全“System.out.println();”
public void AnnotationTest 双击类名Annotation,点击Run As->Java Application,即可以运行该测试类
Ctrl + '/' 为光标所在的行添加注释"//",不需要事先选中该行,取消注释也是Ctrl + '/'
Ctrl + Shift + '/' 添加注释"/* */",需要事先选中该行,取消注释使用Ctrl + Shift + '\'
Ctrl + Shift + 'C' 添加多行注释"//",取消注释同样使用Ctrl + Shift + 'C'
Ctrl + 'D' 删除当前行
Ctrl + 'M' 最大化和最小化当前光标所在的IDE窗口
Ctrl + 'L' 跳转到指定的所输入的行标数
Ctrl + Shift + 'T' 查找工作空间内的指定类名
Ctrl + Shift + 'O' 慎用,因为有时候import的包不是你所需要的包
Alt + '<-' 和 Alt + '->' 跟踪光标的上一个位置和下一个位置 Alt + Shift + 'J' 添加注释,该注释方便Eclipse生成API文档,
附:
- Eclipse安装眼睛保护色主题,可以直接打开 Help -> Eclipse Marketplace 搜索Eclipse Color Theme来进行安装:安装完之后就可以在(Window->Preferences->General->Apperance->Color Theme)中找到颜色主题插件的设置界面了,在这里可以根据自己的喜好选择自己喜欢的主题了。
- Eclipse中设置注释标签@User的三种方式:第一种,在Eclipse安装目录中的eclipse.ini中添加一句 -vmargs -Duser.name=Sun, Wu-Kong;第二种,通过菜单 Window->Preference -> Java -> Code Style -> Code Templates 在右侧选择Comments,将其中的Types项,然后选右边的"Edit",进入编辑模式,将 @author ${user} 中的${user}改成你自己的名字即可;第三种,计算机-->管理-->本地用户和组-->用户,使用管理员账户登陆 可以任意修改用户名 ,然后重启电脑。
- Eclipse中的项目如何生成javadoc文档,项目列表中按右键,选择Export(导出),然后在Export(导出)对话框中选择java下的javadoc,提交到下一步,在Javadoc Generation对话框中有两个地方要注意的:javadoc command:应该选择本机安装jdk路径中的\jdk1.8.0_31\bin\javadoc.exe,destination:为生成文档的保存路径,可自由选择,按finish(完成)提交即可开始生成文档。接着可以看到Console控制台的输出。
- Eclipse中设置Editors的默认打开编辑器:window->preferences->General->Editors->File Associations;然后在File types中Add一个新的*.xml(如果有已经有的格式文件,就不用了),然后再在Associated editors中选中XML Editor,然后点击Default按钮即可。
- Eclipse在使用过程中,如果从.java跳转到.xml文件,可以如下操作:最笨的方法:CTRL+H可以直接在整个项目中查找;最快的方法:CTRL+SHIFT+R可以直接打开非JAVA,CLASS的其他文件,这些快捷操作起来都是很快的。与此同时,CTRL+SHIFT+T可以直接打开BEAN的类。
- 更多快捷方式参考:http://jingyan.baidu.com/article/c275f6bac8e43ae33d756716.html
如何很好的Review自己的代码的更多相关文章
- Delphi 自带的那个 Hand 光标很难看?没关系,一行代码解决问题:
Delphi 自带的那个 Hand 光标很难看?没关系,一行代码解决问题: Screen.Cursors[crHandPoint] := LoadCursor(0, IDC_HAND);放在主窗体 O ...
- 很实用的50个CSS代码片段
原文:50 Useful CSS Snippets Every Designer Should Have 面对每年如此多的 新趋势 ,保持行业的率先是个非常困难问题. 站点设计者和前 ...
- 听说图像识别很难,大神十行代码进行Python图像识别
随着深度学习算法的兴起和普及,人工智能领域取得了令人瞩目的进步,特别是在计算机视觉领域.21世纪的第二个十年迅速采用卷积神经网络,发明了最先进的算法,大量训练数据的可用性以及高性能和高性价比计算的 ...
- 马拉车——Manacher一篇看上去很靠谱的理解(代码显然易懂)
由于回文分为偶回文(比如 bccb)和奇回文(比如 bcacb),而在处理奇偶问题上会比较繁琐,所以这里我们使用一个技巧,在字符间插入一个字符(前提这个字符未出现在串里).举个例子:s="a ...
- 研发团队如何借助Gitlab来做代码review
代码review是代码质量保障的手段之一,同时开发成员之间代码review也是一种技术交流的方式,虽然会占用一些时间,但对团队而言,总体是个利大于弊的事情.如何借助现有工具在团队内部形成代码revie ...
- Gitlab来做代码review
Gitlab来做代码review 代码review是代码质量保障的手段之一,同时开发成员之间代码review也是一种技术交流的方式,虽然会占用一些时间,但对团队而言,总体是个利大于弊的事情.如何借助现 ...
- (转)dedecms代码详解 很全面
dedecms代码研究(1)开篇dedecms 相信大家一定都知道这个cms 系统,功能比较强大,有比较完善的内容发布,还有内容静态化系统,还有就是它有自己独特的标签系统和模板系统.而模板系统也是其他 ...
- ReSharper的功能真的很强大主要是针对代码规范和优化,园子里介绍的也不少,如果你没有安装,那我只能表示你们会相见恨晚
二.ReSHarper 代码规范.单元测试.... ReSharper的功能真的很强大,主要是针对代码规范和优化,园子里介绍的也不少,如果你没有安装,那我只能表示你们会相见恨晚! 1.像命名不规范,f ...
- dedecms代码详解 很全面
dedecms代码研究(1)开篇dedecms 相信大家一定都知道这个cms 系统,功能比较强大,有比较完善的内容发布,还有内容静态化系统,还有就是它有自己独特的标签系统和模板系统.而模板系统也是其他 ...
随机推荐
- rabbitmq消息队列——"发布订阅"
三."发布订阅" 上一节的练习中我们创建了一个工作队列.队列中的每条消息都会被发送至一个工作进程.这节,我们将做些完全不同的事情--我们将发送单个消息发送至多个消费者.这种模式就是 ...
- Android Activity 常用技巧
1.设置 Activity 背景色为透明 在style.xml里面声明: <style name="TranslucentActivityStyle" parent=&quo ...
- Android后台保活实践总结:即时通讯应用无法根治的“顽疾”
前言 Android进程和Service的保活,是困扰Android开发人员的一大顽疾.因涉及到省电和内存管理策略,各厂商基于自家的理解,在自已ROOM发布于都对标准Android发行版作为或多或少的 ...
- require.js笔记
笔记参考来源:阮一峰 http://www.ruanyifeng.com/blog/2012/10/javascript_module.html 1. 浏览器端的模块只能采用“异步加载”方式 = ...
- Mysql存储过程语法
一口气弄完了! 一.条件语句if-then-else: create procedure demo_1(in param int) begin declare var int; ; then inse ...
- 深入理解CSS定位中的偏移
× 目录 [1]定位 [2]包含块 [3]偏移属性[4]绝对定位[5]格式化 [6]auto 前面的话 CSS有三种基本的定位机制:普通流.浮动和绝对定位.利用定位,可以准确地定义元素框相对于其正常位 ...
- poj1062昂贵的聘礼(Dijkstra**)
/* 题意: 物主有一个物品,价值为P,地位为L, 以及一系列的替代品Ti和该替代品所对应的"优惠"Vi g[u][i] 表示的是u物品被i物品替换后的优惠价格!(u>0, ...
- 决战JS
经过这几日的学习,测试和摸索,算是了解了一些关于javascript 的相关知识吧.学习过程中做出了一些小DEMO,现总结一下实现这些DEMO的基本思路,如有不妥或更为简便的方法,还希望大神拍砖,共同 ...
- Dagger2 生成代码学习
接上一篇文章介绍了Dagger2的初步使用,相信刚接触的人会觉得很奇怪,怎么会有很多自己没有定义的代码出现,为什么Component的创建方式是那样的.为了搞清楚这些东西,我们需要查看一下Dagger ...
- Windows Azure Active Directory (2) Windows Azure AD基础
<Windows Azure Platform 系列文章目录> Windows Azure AD (WAAD)是Windows Azure提供的一个REST风格的服务,为您的云服务提供了身 ...