写这篇博文的原因是因为自己写的代码经常会因为返工,delay项目的交付日期。总结了一下引起项目delay的原因,大概有如下几点:

  1. 在没有完全深熟悉需求交互细节的情况下;诸如根据不同渠道设置不同的订单状态变更--超时提醒和订单取消功能
  2. 在没有想清楚自己代码如何实现业务逻辑的情况下;诸如对骑手排班--明天到当前周期结尾的排班及排班详情展示
  3. 是否对业务逻辑有完整的测试用例;商家详情权限功能和可逆向加密算法的测试用例

往往第一步和第二步是同时出现的,第二步的出现也在很大程度上源自于对需求交互细节的理解不到位,所以我们在开发中养成的习惯应该是这样的:

  1. 认真看需求分析,最好能复述出需求细节;构思自己代码如何实现该逻辑。
  2. 多沟通,与产品经理与前端工程师、测试工程师沟通清楚需求交互细节。

当然上面总结的还都是理论,我们在开发中应该以此为指导,慢慢养成良好的开发习惯。注解的使用。当跟别人一起开发某个功能,很可能由于方法取名的问题,写了重复的方法,在代码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文档,

附:

  1. Eclipse安装眼睛保护色主题,可以直接打开 Help -> Eclipse Marketplace 搜索Eclipse Color Theme来进行安装:安装完之后就可以在(Window->Preferences->General->Apperance->Color Theme)中找到颜色主题插件的设置界面了,在这里可以根据自己的喜好选择自己喜欢的主题了。
  2. Eclipse中设置注释标签@User的三种方式:第一种,在Eclipse安装目录中的eclipse.ini中添加一句 -vmargs -Duser.name=Sun, Wu-Kong;第二种,通过菜单 Window->Preference -> Java -> Code Style -> Code Templates 在右侧选择Comments,将其中的Types项,然后选右边的"Edit",进入编辑模式,将 @author ${user} 中的${user}改成你自己的名字即可;第三种,计算机-->管理-->本地用户和组-->用户,使用管理员账户登陆 可以任意修改用户名 ,然后重启电脑。
  3. Eclipse中的项目如何生成javadoc文档,项目列表中按右键,选择Export(导出),然后在Export(导出)对话框中选择java下的javadoc,提交到下一步,在Javadoc Generation对话框中有两个地方要注意的:javadoc command:应该选择本机安装jdk路径中的\jdk1.8.0_31\bin\javadoc.exe,destination:为生成文档的保存路径,可自由选择,按finish(完成)提交即可开始生成文档。接着可以看到Console控制台的输出。
  4. Eclipse中设置Editors的默认打开编辑器:window->preferences->General->Editors->File Associations;然后在File types中Add一个新的*.xml(如果有已经有的格式文件,就不用了),然后再在Associated editors中选中XML Editor,然后点击Default按钮即可
  5. Eclipse在使用过程中,如果从.java跳转到.xml文件,可以如下操作:最笨的方法:CTRL+H可以直接在整个项目中查找;最快的方法:CTRL+SHIFT+R可以直接打开非JAVA,CLASS的其他文件,这些快捷操作起来都是很快的。与此同时,CTRL+SHIFT+T可以直接打开BEAN的类。
  6. 更多快捷方式参考:http://jingyan.baidu.com/article/c275f6bac8e43ae33d756716.html

如何很好的Review自己的代码的更多相关文章

  1. Delphi 自带的那个 Hand 光标很难看?没关系,一行代码解决问题:

    Delphi 自带的那个 Hand 光标很难看?没关系,一行代码解决问题: Screen.Cursors[crHandPoint] := LoadCursor(0, IDC_HAND);放在主窗体 O ...

  2. 很实用的50个CSS代码片段

    原文:50 Useful CSS Snippets Every Designer Should Have          面对每年如此多的 新趋势 ,保持行业的率先是个非常困难问题. 站点设计者和前 ...

  3. 听说图像识别很难,大神十行代码进行Python图像识别

      随着深度学习算法的兴起和普及,人工智能领域取得了令人瞩目的进步,特别是在计算机视觉领域.21世纪的第二个十年迅速采用卷积神经网络,发明了最先进的算法,大量训练数据的可用性以及高性能和高性价比计算的 ...

  4. 马拉车——Manacher一篇看上去很靠谱的理解(代码显然易懂)

    由于回文分为偶回文(比如 bccb)和奇回文(比如 bcacb),而在处理奇偶问题上会比较繁琐,所以这里我们使用一个技巧,在字符间插入一个字符(前提这个字符未出现在串里).举个例子:s="a ...

  5. 研发团队如何借助Gitlab来做代码review

    代码review是代码质量保障的手段之一,同时开发成员之间代码review也是一种技术交流的方式,虽然会占用一些时间,但对团队而言,总体是个利大于弊的事情.如何借助现有工具在团队内部形成代码revie ...

  6. Gitlab来做代码review

    Gitlab来做代码review 代码review是代码质量保障的手段之一,同时开发成员之间代码review也是一种技术交流的方式,虽然会占用一些时间,但对团队而言,总体是个利大于弊的事情.如何借助现 ...

  7. (转)dedecms代码详解 很全面

    dedecms代码研究(1)开篇dedecms 相信大家一定都知道这个cms 系统,功能比较强大,有比较完善的内容发布,还有内容静态化系统,还有就是它有自己独特的标签系统和模板系统.而模板系统也是其他 ...

  8. ReSharper的功能真的很强大主要是针对代码规范和优化,园子里介绍的也不少,如果你没有安装,那我只能表示你们会相见恨晚

    二.ReSHarper 代码规范.单元测试.... ReSharper的功能真的很强大,主要是针对代码规范和优化,园子里介绍的也不少,如果你没有安装,那我只能表示你们会相见恨晚! 1.像命名不规范,f ...

  9. dedecms代码详解 很全面

    dedecms代码研究(1)开篇dedecms 相信大家一定都知道这个cms 系统,功能比较强大,有比较完善的内容发布,还有内容静态化系统,还有就是它有自己独特的标签系统和模板系统.而模板系统也是其他 ...

随机推荐

  1. 基础才是重中之重~LazyInitializer.EnsureInitialized对属性实现化的性能优化

    回到目录 LazyInitializer.EnsureInitialized是frameworks4.0引入的新东西,实现对属性延时初始化的功能,它作用在System.Threading命名空间下,所 ...

  2. 一条Select语句丛生到死的处理过程

    以一条普通的“select * from table order by …”语句为例.图2-21中显示为该语句在数据库中各个组件之间的处理过程,各个步骤分别代表: (1)select语句通过网络传送给 ...

  3. iOS-数据持久化基础-JSON与XML数据解析

    解析的基本概念 所谓“解析”:从事先规定好的格式串中提取数据 解析的前提:提前约定好格式.数据提供方按照格式提供数据.数据获取方按照格式获取数据 iOS开发常见的解析:XML解析.JSON解析 一.X ...

  4. Lucene学习

    一.全文索引的原理 数据存在形式: 1.结构化数据: 指具有固定格式或有限长度的数据,如数据库,元数据等. 2.非结构化数据(全文数据): 指不定长或无固定格式的数据,如邮件,word文档等. 3.半 ...

  5. java之设计模式

    一.代理模式 a.抽象角色(接口):声明真实对象和代理对象的共同接口 b.代理角色:代理对象角色内部含有对真实对象的引用,从而可以操作真实对象,同时代理对象提供与真实对象相同的接口以便在任何时刻都能替 ...

  6. Hadoop学习笔记【Hadoop家族成员概述】

    Hadoop家族成员概述 一.Hadoop简介 1.1 什么是Hadoop? Hadoop是一个分布式系统基础架构,由Apache基金会所开发,目前Yahoo!是其最重要的贡献者. Hadoop实现了 ...

  7. 【.Net底层剖析】3.用IL来理解属性

    .Net底层剖析目录章节 1.[深入浅出.Net IL]1.一个For循环引发的IL 2.[.Net底层剖析]2.stfld指令-给对象的字段赋值 3.[.Net底层剖析]3.用IL来理解属性 未完待 ...

  8. JSP网站开发基础总结《十一》

    继上一篇关于过滤器连总结后,本篇为大家详细介绍一下过滤器中过滤规则的dispatcher属性的使用,在servlet2.5中dispatcher的属性有四种,其中上一篇已经为大家介绍了error属性的 ...

  9. JavaScript垃圾回收(二)——垃圾回收算法

    一.引用计数(Reference Counting)算法 Internet Explorer 8以下的DOM和BOM使用COM组件所以是引用计数来为DOM对象处理内存,引用计数的含义是跟踪记录每个值被 ...

  10. 【小型系统】抽奖系统-使用Java Swing完成

    一.需求分析 1. 显示候选人照片和姓名. 2. 可以使用多种模式进行抽奖,包括一人单独抽奖.两人同时抽奖.三人同时抽奖. 3. 一个人可以在不同的批次的抽奖中获取一.二.三等奖,但是不能在同一批次抽 ...