如何很好的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 系统,功能比较强大,有比较完善的内容发布,还有内容静态化系统,还有就是它有自己独特的标签系统和模板系统.而模板系统也是其他 ...
随机推荐
- 知方可补不足~SqlServer自动备份数据库及清理备份文件
回到目录 对于SQLSERVER这个关系型数据库来说,为了保持数据的安全,备份是必须的,当你的一个误操作导致数据丢失,这可能是灾难性的,是不被允许发生的,这时,我们必须要做好定期的备份工作,如我们可以 ...
- 锋利的JQuery —— JQuery性能优化
大图猛戳
- Atitit.java图片图像处理attilax总结 BufferedImage extends java.awt.Image获取图像像素点image.getRGB(i, lineIndex); 图片剪辑/AtiPlatf_cms/src/com/attilax/img/imgx.javacutImage图片处理titit 判断判断一张图片是否包含另一张小图片 atitit 图片去噪算法的原理与
Atitit.java图片图像处理attilax总结 BufferedImage extends java.awt.Image 获取图像像素点 image.getRGB(i, lineIndex); ...
- fir.im Weekly - 技术人也要苦练“七十二变”
一年又一年,Code,Build,Run.多少技术人像"孙悟空"一样,日复一日苦练"七十二变",笑对"八十一难",最后能"取经成功 ...
- KnockoutJS 3.X API 第二章 数据监控(2)监控属性数组
监控属性数组 如果要对一个对象检测和响应变化,会使用监控属性.如果要对一个序列检测并监控变化,需要使用observableArray(监控属性数组).这在你显示或编辑多个值,需要用户界面的部分反复出现 ...
- 手把手教你实现一个完整的 Promise
用过 Promise,但是总是有点似懂非懂的感觉,也看过很多文章,还是搞不懂 Promise的 实现原理,后面自己边看文章,边调试代码,终于慢慢的有感觉了,下面就按自己的理解来实现一个 Promise ...
- ASP.NET MVC删除数据
Index.cshtml @model IEnumerable<MvcExample.Models.Category> <script type="text/javascr ...
- 使用supervisor提高nodejs调试效率
如果你有PHP 开发经验,会习惯在修改PHP 脚本后直接刷新浏览器以观察结果,而你 在开发Node.js 实现的HTTP 应用时会发现,无论你修改了代码的哪一部份,都必须终止 Node.js 再重新运 ...
- Sybase 数据库bcp out备份重要表数据
bcp相当于逻辑备份,bcp out导出的文件,bcp in可以导回去. 环境:RHEL 5.5 + Sybase客户端软件 需求:在客户端(Linux)备份服务端(HP-UX)重要配置表数据 1.b ...
- C++程序设计之四书五经[转自2004程序员杂志]--下篇
C++程序设计之四书五经(下篇) 作者:荣耀 我在上篇中“盘点”了TCPL和D&E以及入门教程.高效和健壮编程.模板和泛型编程等方面共十几本C++好书.冬去春来,让我们继续C++书籍精彩之旅. ...