阿里巴巴Java开发手册———我的追加的看法和补充(四)

前言

手册在(一)中有原版下载,在(三)中有在线版本,建议对照手册食用。html

在本文发布的时候前几天好像阿里作出了修改,在(一)中的地址下载的版本为1.0.2可能对一些以前的改动和修改。前端

本文依旧仍是针对1.0.0的版本写的,不过出入应该不大。linux

有关编程规范(一)http://www.cnblogs.com/linkstar/p/6413402.html程序员

有关异常日志(二)http://www.cnblogs.com/linkstar/p/6415788.htmlweb

有关数据库的(三)http://www.cnblogs.com/linkstar/p/6429770.htmlredis

该说的我以为(一)里面我都说完了,那么就直接进入正题吧。sql

 

工程规约

对于工程来讲,其实规范不少,细节要注意的地方不少,并且这些规范其实不少都不是我的本身学习的,而是看见别人这么作,你也这么跟着模仿,最终造成的,保持工程的统一不只是对于在编程的时候对可读性有帮助,并且对于重构的时候,特别是对于非项目组成员来帮忙的时候有很大的帮助。数据库

 

一、下面是手册中给出的图编程

image

这边其实给的已经算很全了,不过根据项目的不一样,里面的层也会根据实际状况进行删减的,可是大体确定是这样没错。分层的思想应该在一开始作项目的时候就很好的创建起来的习惯,而且须要一直保持。windows

下面就几个层中比较难理解的进行说明。

1、开放接口层,PRC:不少人看见这个缩写就懵逼了,由于没见过,由于确实在简单小的项目中不常见,RPC是远程调用的简称,它是一种协议,若是很差理解,你能够理解为HTTP,这个用的多是最多的协议了,或者webService均可以,这些都是一些接口的定义,而PRC的好处在于,在一些分布式的应用程序还有在一些不一样语言所编写的组件须要互相通讯的时候,PRC就颇有优点了。

2、终端显示层,velocity:这个是一个工具,是用于辅助先后端分离:后端接口开发人员能够专心于提供数据、前端人员可使用占位符(模板文件)暂时代替数据。我在手册前面就看见过,由于生成的文件后缀为.vm,因此习惯称为vm,可能阿里的工程师用这个比较多。由于公司前端能力和人手不足,因此没有用过,由于暂时先后端尚未作到彻底分离,因此如今仍是使用的jsp,若是有机会完成先后端分离的话会考虑使用。

3、manager层:说实在话,这层在咱们的项目中是没有的,可是有和他功能类似的层,主要是用于处理缓存和第三方的。这里手册中说的特别好的一点就是对DAO的业务通用能力进行封装,这对于程序员在写代码的时候思想的注意就有关了,我见过有不少厉害的人,封装和共用的思想很厉害,不少时候他写的代码可能少,可是已经足够用了。

4、DAO层:这里主要注意的点是,缓存的数据访问也是放在这里的,我习惯把redis这种缓存的数据访问也放在DAO,由于它也是属于数据的存放和访问。

 

二、这点和我如今可能有些出入,其1、我DAO是不抛异常给上层,咱们的原则是层的异常当层解决,出现异常后返回给上层应该是对应的错误码和没有查询到数据的结果。其2、个人DAO是打印日志的,由于在前期Debug的时候,DAO的日志最能准确的定位到那一句sql出现了问题,而上层的日志的话只是在业务逻辑上面出现问题的时候才打印日志。不过也只是做为参考。

 

三、我在(一)里面已经对模型都进行了说明,须要请在最上面的连接查看。

 

二方库规约

首先解释一些什么是二方库,不少人会奇怪这个名字。一方库:本工程的模块互相的依赖。二方库:公司内部的依赖库。三方库:公司以外的开源依赖库。

一方库就很少说了,二方库主要是我见过不少公司开发项目的时候,采用的是jar包的方式,不少模块开发完成以后会打成jar包而后进行使用,因此须要规约。三方库的话如今流行使用的是maven进行管理,后面会提到的。

而后装了B以后赶忙回来,嘻嘻,本人尚未使用过二方库,主要是考虑到几个点,惧怕jar包冲突,这个真的很坑,在没有maven的时候,每次导入jar的时候到会仔仔细细的,报错以后也是不停的查,究竟是哪里冲突了,因此历来没有使用过,给不出很好的建议和补充,可是这也提醒了我,以后会学习使用的,由于毕竟当项目大了以后封装原来使用过的模块能增长开发的效率。

 

服务器规约

我总以为不知道是否是写手册的人有点偷懒了,仍是真的太多了来不及写了,总之一句话,服务器规约比这个多的去了。。。我还很是但愿有高级的服务器运维工程师来说讲经验,由于服务器这东西,哇塞,出的问题你没有经验真的很难解决。这里我也只能就这几点讲讲我所遇到的一些重要的,不能列举出所有,本人毕竟经验有限。

首先服务器的选择:除非是。NET开发,不要用windows服务器,坑死你不偿命。

服务器存放文件规则:前期必定要定义好文件的存放规则,由于不少人玩linux,真的是玩会的,装不少软件的时候都是为所欲为的放,这样会让后来维护服务器的人形成维护上面很大的困难,特别是当一些软件的安装路径不一样时,环境变量和配置文件也会变化。

防火墙:看到不少偷懒的,一上来就把防火墙关掉的数不胜数,别告诉我你也是,防火墙是能够配置规则的,只要开放你须要的端口就能够了,否则被黑是早晚的事情。

注意各类软件的配置:不少软件在服务器上面的版本是和windows默认配置差别很大,即便你自己的开发平台并不是windows,仍是有差别,因此,对于任何软件都请先查询而且修改你须要的配置。这边举几个例子,如tomcat,你须要配置项目路径,端口,日志。还有很容易忘记的JVM配置,手册中也提到了,OOM这个错误有时是不会在项目的日志中出现,而会在tomcat这样的容器的日志中出现,当项目的小的时候,默认的内存固然够用,可是当项目大了以后,内存确定是不够用的,当出现问题再去修改配置的话可能就晚了。

除非是测试服务器,正式服不容许出现任何测试性质的软件或工程。因测试工程而致使主服务器宕机,那真是要不得的。

服务器权限:有能力最好作一下权限的管理,服务器权限分的细,这样真正出现问题的时候才好去追究责任,不是说必定要有人背锅,只是不但愿别人只是由于有了服务器的密码而当替罪羊。另外,服务器的操做最好每次都有记录。

文件的权限:linux文件的权限可厉害了,不要只知道777,有时候权限不够会致使一些问题,注意就好。

注意备份:注意备份文件,数据库等,在服务器上的数据都是很重要的,不备份,出问题,你找谁?

常常监控服务器:包括服务器的性能,日志等各个方面,预防问题的发生。

都是比较大的点,细的我这里就不一一列举了,由于我也不是专业的服务器运维工程师,上面也只是经验之谈罢了。

相关文章
相关标签/搜索