如何很好的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 系统,功能比较强大,有比较完善的内容发布,还有内容静态化系统,还有就是它有自己独特的标签系统和模板系统.而模板系统也是其他 ...
随机推荐
- [Java面试三]JavaWeb基础知识总结.
1.web服务器与HTTP协议 Web服务器 l WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. l Internet上供外界访问的Web资源分为: • 静 ...
- Piwik 扩展获取客户端IP地址
piwik 数据库浏览记录存放在piwik_log_visit表中 piwik_log_visit 表有个location_ip字段,该字段存储为Byte[]字节 解析出来后的IP地址为 XXX.XX ...
- C#获取文本文件的编码,自动区分GB2312和UTF8
C# 获取文本文件的编码,自动区分GB2312和UTF8 以下是获取文件编码的一个类 using System; using System.IO; using System.Text; /// < ...
- cordova编译报错:Execution failed for task ':processDebugResources'
cordova编译报错:Execution failed for task ':processDebugResources' 引发这个错误的最扩祸首就是一个中文命名的文件,不知道什么时候加入的,我写了 ...
- hibernate(三) 一对多映射关系
序言 前面两节讲了hibernate的两个配置文件和hello world!.还有hibernate的一级缓存和三种状态,基本上hibernate就懂一点了,从这章起开始一个很重要的知识点,hiber ...
- hdu3635 Dragon Balls(带权并查集)
/* 题意:有N个城市, 每一个城市都有一个龙珠(编号与城市的编号相同),有两个操作 T A ,B 将标号为A龙珠所在城市的所有的龙珠移动到B龙珠所在城市中! 思路:并查集 (压缩路径的时候将龙珠移动 ...
- Razor基本语法
前言: Razor引擎的核心是识别@符号及尖括号: 1.<...></...> 2.<.../> [之所以说是"尖括号"而非& ...
- Node.js的学习--使用cheerio抓取网页数据
打算要写一个公开课网站,缺少数据,就决定去网易公开课去抓取一些数据. 前一阵子看过一段时间的Node.js,而且Node.js也比较适合做这个事情,就打算用Node.js去抓取数据. 关键是抓取到网页 ...
- C/C++定义全局变量/常量几种方法的区别
在讨论全局变量之前我们先要明白几个基本的概念: 1. 编译单元(模块): 在IDE开发工具大行其道的今天,对于编译的一些概念很多人已经不再清楚了,很多程序员最怕的就是处理连接错误(LINK ER ...
- Lagrange插值公式
朋友@耗子突然问起我一个 Lagrange 插值公式的问题,发现几年没碰差不多要忘干净了,于是找了本教科书来翻了翻,顺便把几个要点整理成文,以备日后查阅. 作者: peghoty 出处: http:/ ...