写java写了也12年了,不决的自己是高手,但是也体会了一些变化。总的来说,Java可以分成几个层次:

首先是需求理解层次,这个层次的coder能理解需求,把需求转化成代码;

第二个层次是单测,能够对写出的代码进行测试,单测有几个要素:构造输入,调用服务,获得输出,检验输出。初级的单测只测试最简单的逻辑,复杂单测能测试异常,边界,以及其它复杂的逻辑。

第三个层次是规范,命名,注释,需要能符合规范。符合规范的代码看起来比较专业,不会让人觉得业余。

第四个层次是可读性,代码要可读需要满足一些条件,结构合理,命名合理,以及注释的合理性。结构合理就是要遵守solid原则;命名合理,要求命名的用词准确,含义一致,含义与代码一致;注释合理,要求有意义的注释,不冗余,不缺少。

第五个层次是逻辑严密,代码需要考虑各种情况,不能只处理意料之中的情形,还要处理异常情况,边界情况等。

第五个层次围绕着代码的使用,代码需要运维,需要被别人调用,也就需要调用起来比较容易,容易维护,需要详细的日志,错误的抛出,自动重试等;

第六个层次需要考虑预防泄露,性能优化。不能使用不合理的循环,使用缓存,线程池等提高系统性能。

第七个层次,考虑变化,考虑变化有多种方式,配置文件的使用,设计模式的使用都是支持变化的方法。

Technorati 标签: java,code,技能水平,level

java coder的水平的更多相关文章

  1. JAVA Coder 的《深入分析Java Web 技术内幕》读书笔记

    本文基于<深入分析Java Web 技术内幕> <深入分析Java Web 技术内幕>,作者是 许令波,电子工业出版社.本文只是记录书本当中的精彩部分,作个人回顾和技术分享,请 ...

  2. GitHub上那些值得一试的JAVA开源库--转

    原文地址:http://www.jianshu.com/p/ad40e6dd3789 作为一名程序员,你几乎每天都会使用到GitHub上的那些著名Java第三方库,比如Apache Commons,S ...

  3. 【Java心得总结二】浅谈Java中的异常

    作为一个面向对象编程的程序员对于 下面的一句一定非常熟悉: try { // 代码块 } catch(Exception e) { // 异常处理 } finally { // 清理工作 } 就是面向 ...

  4. 零基础如何学习java更有效呢?

    零基础学java,不知道该如何入手?也不知道学习的方向,很多人会问零基础怎么样学习,有没有什么入门的书籍推荐:只要方法正确,零基础学好java也是有机会的哦. 一.理解Java思想 Java是一门面向 ...

  5. 如何接触学习java

    信息科技必将是未来的潮流,Java语言必将在时代的进步中发挥不可估量的作用,未来,掌握好一门实用而且有良好应用前景的技术是你们的首要任务. 零基础怎么学Java 多年Java教育培训经验事实表明,零基 ...

  6. GitHub上那些值得一试的JAVA开源库

    作为一名程序员,你几乎每天都会使用到GitHub上的那些著名Java第三方库,比如Apache Commons,Spring,Hibernate等等.除了这些,你可能还会fork或Star一些其他的开 ...

  7. JNI编程(二) —— 让C++和Java相互调用(1)

    自己在外面偷偷的算了下,又有将近两个月没更新过blog了.趁着今天有兴致,来更新JNI编程的第二篇文章.在第一篇里,大概介绍了JNI的特点.用途和优劣.并且做一个最简单的JNI的例子,不过说实话那个例 ...

  8. 翻译Java虚拟机的结构

    英文原版:  https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-2.html 直接谷歌翻译: Java SE规范 > Java虚拟机 ...

  9. Java JNI的具体介绍

    JNI就是Java Native Interface的简称,也就是java本地接口.它提供了若干的API实现了和Java和其它语言的通信(主要是C&C++).也许不少人认为Java已经足够强大 ...

随机推荐

  1. alter语法的简单的使用

    用alter语法来新增列名,修改列名,删除列

  2. 重新想象 Windows 8.1 Store Apps (74) - 新增控件: Flyout, MenuFlyout, SettingsFlyout

    [源码下载] 重新想象 Windows 8.1 Store Apps (74) - 新增控件: Flyout, MenuFlyout, SettingsFlyout 作者:webabcd 介绍重新想象 ...

  3. 从几篇文字得到关于web app开发的性能问题的答案

    1. http://blogs.adobe.com/creativecloud/are-mobile-web-apps-slow/ 2. http://software.intel.com/zh-cn ...

  4. NLog在.NET Core Console Apps中的简单应用

    什么是NLog? NLog is a free logging platform for .NET with rich log routing and management capabilities. ...

  5. JavaScript 中有关时间对象的方法

    ECMAScript中的Date类型是在早期 Java 中的 Java.unile.Date 类基础上构建的.为此 Date 类型使用自 UTC (Coordinated Universal Time ...

  6. 如何rename sqlserver database

    Problem Sometimes there is a need to change the name of your database whether this is because the or ...

  7. CRM Home Grid StyleSet

    用户进行到记录列表后,虽然可以通过视图来区分不同条件的记录但是不能重点突出记录的重要性.我们根据客户的需求特别定制了如下解决方案,比如根据记录的状态,字段值 在列表面上把行的背景显示成不同的着色来突出 ...

  8. Sharepoint学习笔记—习题系列--70-573习题解析 -(Q60-Q62)

    Question 60You have a SharePoint site collection that contains 100 subsites.You plan to create a Web ...

  9. android 回调函数二:应用实例

    前言:如果对android回调的概念不明白的请看:android 回调函数一:基本概念 1.定义接口 package com.app.util; public interface ZYJCallBac ...

  10. Struts2原理

    Struts 2以WebWork优秀的设计思想为核心,吸收了Struts 1的部分优点,建立了一个兼容WebWork和Struts 1的MVC框架,Struts 2的目标是希望可以让原来使用Strut ...