阿里Java代码参考 阿里巴巴java代码分层

阿里巴巴 用什么java框架1、现在的大公司都是有很多积累的,他们都拥有适合自己的框架技术,这些全靠积累 。所以阿里巴巴的主流Java框架是自己写的 , 同时结合了大量open source的资源 。2、WEB层 —— 使用webx框架 。主要利用velocity模板技术来展现页面 。3、业务层 —— 主要使用command模式实现 。WEB层通过command dispatcher的调用来使用业务逻辑 。4、数据访问层 —— 使用DAO(Data Access Object)模式 。底层使用iBatis来访问数据库 。数据采用的是Oracle 。数据库操作的SQL语句需要你手工书写相关的SQL代码(对于复杂的SQL语句需要通过DBA的评审) 。5、开发工具,采用IDE和命令行相结合的模式 。在命令行上,阿里Java代码参考我们用antx工具来组织项目、build项目、发布项目 。但我们多数时间会在eclipse集成环境上,开发、调试应用 。6、版本控制,采用了Subversion 。但部分项目因为历史的原因,暂时使用CVS,将来必然会迁移到Subversion上 。Subversion有很多种操作方式阿里Java代码参考:通过命令行、通过TortoiseSVN集成工具、通过WEB、通过Eclipse插件 。总结:在所有层次上,他们都广泛使用了Spring framework 。因此您需要对Spring有一定的了解才行 。阿里面试时非常考验基础知识的,因为他们有自己的技术积累,框架技术已经趋于成熟,所以面试都是一些基础知识与算法知识 。现在的阿里技术或许已经更加成熟,
为什么阿里工程师代码写的好?看看他的代码规范就知道了 曾经与一位从阿里出来的Java工程师一起工作过一段时间,他的技术说不上非常厉害,但是,他的代码写的的非常好,凡是他做的功能很少出现Bug。我就很好奇,于是经常向他请教一些代码设计的原则,然后他告诉了我阿里Java手册 。并且 , 他将这个手册进行了修改,也成为了我司Java程序员的开发手册 。这篇文章就让我们看一看这个手册中比较重要的原则 。
【强制】代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束 。
反例:_name / __name / $name / name_ / name$ / name__
【强制】类型与中括号紧挨相连来表示数组 。
正例:定义整形数组 int[] arrayDemo; 反例:在 main 参数中,使用 String args[]来定义 。
【强制】POJO 类中布尔类型变量都不要加 is 前缀,否则部分框架解析会引起序列化错误 。
说明:表达是与否的值采用 is_xxx 的命名方式,所以,需要在 设置从 is_xxx 到 xxx 的映射关系 。
反例:定义为基本数据类型 Boolean isDeleted 的属性,它的方法也是 isDeleted() ,  RPC 框架在反向解 析的时候 , “误以为”对应的属性名称是 deleted,导致属性获取不到,进而抛出异常 。
【推荐】在常量与变量的命名时,表示类型的名词放在词尾,以提升辨识度 。
【推荐】接口类中的方法和属性不要加任何修饰符号(public 也不要加),保持代码的简洁 性,并加上有效的 Javadoc 注释 。尽量不要在接口里定义变量,如果一定要定义变量 , 肯定 是与接口方法相关,并且是整个应用的基础常量 。
正例:接口方法签名 void commit();
接口基础常量 String COMPANY = "alibaba";
反例:接口方法定义 public abstract void f();
说明:JDK8 中接口允许有默认实现,那么这个 default 方法,是对所有实现类都有价值的默认实现 。
【参考】枚举类名带上 Enum 后缀,枚举成员名称需要全大写,单词间用下划线隔开 。
说明:枚举其实就是特殊的类,域成员均为常量,且构造方法被默认强制是私有 。
正例:枚举名字为 ProcessStatusEnum 的成员名称:SUCCESS / UNKNOWN_REASON 。

推荐阅读