当前位置: 首页 > news >正文

建湖做网站的公司wordpress悬浮小宠物

建湖做网站的公司,wordpress悬浮小宠物,微商营销技巧,网站建设国家标准《阿里巴巴Java开发手册(终极版)》免费在线阅读_藏经阁-阿里云开发者社区 前言 《阿里巴巴Java开发手册》是阿里巴巴集团技术团队的经验总结,涵盖编程规约、异常日志、单元测试等六个维度。规约分为强制、推荐、参考三类,通过“…

《阿里巴巴Java开发手册(终极版)》免费在线阅读_藏经阁-阿里云开发者社区

前言

《阿里巴巴Java开发手册》是阿里巴巴集团技术团队的经验总结,涵盖编程规约、异常日志、单元测试等六个维度。规约分为强制、推荐、参考三类,通过“说明”“正例”“反例”辅助理解。手册旨在“码出高效,码出质量”,通过统一规范提升协作效率,减少重复问题。

目录

  • 一、编程规约
  • 二、异常日志
  • 三、单元测试
  • 四、安全规约
  • 五、MySQL数据库
  • 六、工程结构

一、编程规约

(一)命名风格

  1. 强制:命名不能以下划线或美元符号开头/结尾。
    • 反例:_namename$
  1. 强制:禁止拼音与英文混合或直接使用中文命名。
    • 正例:alibabataobao
    • 反例:DaZhePromotionint 某变量 = 3
  1. 强制:类名使用UpperCamelCase风格,DO/BO等例外。
    • 正例:UserDOXmlService
  1. 强制:方法名、参数名等使用lowerCamelCase风格。
    • 正例:getHttpMessage()inputUserId
  1. 强制:常量全大写,单词间用下划线分隔。
    • 正例:MAX_STOCK_COUNT
  1. 强制:抽象类以AbstractBase开头,异常类以Exception结尾,测试类以Test结尾。
  2. 强制:数组定义使用String[] args,而非String args[]
  3. 强制:POJO类中布尔变量不加is,避免序列化错误。
  4. 强制:包名统一小写,类名可使用复数形式。
  5. 强制:杜绝不规范缩写,如AbsClass(应为AbstractClass)。

(二)常量定义

  1. 强制:禁止魔法值直接出现在代码中。
    • 反例:cache.put("Id#taobao_" + tradeId, value);
  1. 强制:long类型初始值使用大写L
  2. 推荐:按功能归类常量,避免全量维护在一个类中。
  3. 推荐:常量复用层次分为跨应用、应用内等五层。
  4. 推荐:若变量值范围固定且有延伸属性,定义为枚举类。

(三)代码格式

  1. 强制:大括号使用规范,非空代码块左大括号后换行,右大括号前换行。
  2. 强制:括号与字符间无空格,保留字与括号间加空格。
  3. 强制:运算符左右加空格,使用4个空格缩进,禁止使用Tab。
  4. 强制:注释的双斜线与内容间有一个空格,单行字符数不超过120个。

(四)OOP规约

  1. 强制:通过类名访问静态成员,覆写方法必须加@Override注解。
  2. 强制:可变参数需放置在参数列表最后,避免使用Object
  3. 强制:外部接口不允许修改方法签名,过时接口加@Deprecated注解。
  4. 强制:使用常量或确定对象调用equals方法,避免NPE。
  5. 强制:POJO类属性使用包装数据类型,序列化类新增属性时谨慎修改serialVersionUID

(五)集合处理

  1. 强制:重写equals必须重写hashCodeSetMap键对象需遵守此规则。
  2. 强制ArrayListsubList结果不可强转,避免ConcurrentModificationException
  3. 强制:使用toArray(T[] array)转换集合,避免无参方法的类型转换异常。
  4. 强制Arrays.asList()转换的集合不可修改,否则抛出UnsupportedOperationException

(六)并发处理

  1. 强制:单例对象需保证线程安全,创建线程时指定有意义的名称。
  2. 强制:线程资源通过线程池提供,禁止显式创建线程,避免使用Executors创建线程池。
  3. 强制SimpleDateFormat非线程安全,需加锁或使用ThreadLocal
  4. 强制:多资源加锁需保持一致顺序,避免死锁;并发修改记录时需加锁或使用乐观锁。

(七)控制语句

  1. 强制switch块需包含default语句并放在最后,每个case需明确终止方式。
  2. 强制if/else等语句必须使用大括号,避免单行编码。
  3. 推荐:条件判断中复杂逻辑赋值给布尔变量,提升可读性。
  4. 推荐:循环体内避免定义对象、获取数据库连接等操作,移至循环体外。

(八)注释规约

  1. 强制:类、属性、方法注释使用Javadoc规范,抽象方法需说明功能。
  2. 强制:所有类添加创建者和日期,枚举字段添加注释。
  3. 推荐:中文注释需准确清晰,代码修改时同步更新注释。
  4. 参考:谨慎注释代码,无用代码直接删除,特殊标记需注明处理人及时间。

(九)其它

  1. 强制:正则表达式使用预编译功能,velocity调用POJO属性直接使用属性名。
  2. 强制:后台输出给页面的变量加$!{var},避免null值直接显示。
  3. 推荐:视图模板不加入复杂逻辑,数据结构初始化指定大小,及时清理无效代码。

二、异常日志

(一)异常处理

  1. 强制:RuntimeException可通过预检查规避,不通过catch处理,如NullPointerException
  2. 强制:异常不用于流程控制,大段代码需区分稳定与非稳定代码进行catch。
  3. 强制:catch异常后必须处理,finally块关闭资源,禁止在finally中使用return。
  4. 推荐:方法返回值可为null,但需注释说明;使用Optional类防止NPE。

(二)日志规约

  1. 强制:应用依赖SLF4J日志框架,而非直接使用Log4j/Logback API。
  2. 强制:日志文件保存至少15天,扩展日志命名需包含应用名、类型和描述。
  3. 强制:日志输出使用条件判断或占位符,避免无意义的字符串拼接。
  4. 推荐:生产环境谨慎输出日志,error级别仅记录系统错误,warn级别记录参数错误。

三、单元测试

  1. 强制:单元测试遵守AIR原则(自动化、独立性、可重复),全自动执行,不依赖交互式操作。
  2. 强制:测试用例相互独立,不依赖执行顺序,避免对外部环境的依赖。
  3. 强制:测试粒度为方法级别,核心模块语句覆盖率和分支覆盖率达100%。
  4. 推荐:遵循BCDE原则(边界、正确、设计、错误),数据库相关测试需准备数据并设定回滚机制。

四、安全规约

  1. 强制:用户个人页面或功能需进行权限控制,敏感数据展示需脱敏。
  2. 强制:用户输入参数严格校验,防止SQL注入、XSS攻击等,禁止字符串拼接SQL。
  3. 强制:表单提交执行CSRF安全过滤,平台资源操作实现防重放限制。
  4. 推荐:用户生成内容场景实现防刷和违禁词过滤策略。

五、MySQL数据库

(一)建表规约

  1. 强制:布尔字段使用is_xxx命名,数据类型为unsigned tinyint,表名、字段名使用小写字母。
  2. 强制:表名不使用复数名词,禁用保留字,主键索引名pk_字段名,唯一索引名uk_字段名
  3. 强制:小数类型使用decimal,禁止float/double,表必备idgmt_creategmt_modified字段。
  4. 推荐:单表行数超过500万或容量超过2GB时分库分表,字段适当冗余提升查询性能。

(二)索引规约

  1. 强制:业务唯一特性字段建唯一索引,多表join字段数据类型一致且有索引。
  2. 强制varchar字段建索引时指定长度,页面搜索禁止左模糊或全模糊。
  3. 推荐:利用覆盖索引避免回表,组合索引区分度高的字段放最左,避免隐式转换导致索引失效。

(三)SQL语句

  1. 强制:使用count(*)而非count(列名)ISNULL()判断NULL值,避免sum()的NPE问题。
  2. 强制:禁止使用外键与级联,数据订正前先查询,避免误操作。
  3. 推荐in操作集合元素控制在1000个以内,TRUNCATE TABLE需谨慎使用。

(四)ORM映射

  1. 强制:查询不使用*,明确字段列表,POJO布尔属性与数据库字段通过resultMap映射。
  2. 强制:SQL参数使用#param#而非${},避免SQL注入,禁止直接返回HashMap/Hashtable
  3. 推荐:更新记录时同步更新gmt_modified字段,避免大而全的更新接口。

六、工程结构

(一)应用分层

  1. 推荐:工程分为开放接口层、Web层、Service层、Manager层、DAO层等,上层依赖下层。
  2. 参考:分层异常处理需记录日志,Web层跳转友好错误页面,开放接口返回错误码。
  3. 参考:领域模型包括DO、DTO、BO、AO、VO等,查询参数封装为对象。

(二)二方库依赖

  1. 强制:GAV格式遵循com.{公司/BU}.业务线.[子业务线]:产品线名-模块名:版本号
  2. 强制:版本号按主版本号.次版本号.修订号命名,线上应用不依赖SNAPSHOT版本。
  3. 推荐:依赖声明放<dependencies>,版本仲裁放<dependencyManagement>,二方库精简配置项。

(三)服务器

  1. 推荐:高并发服务器调小TCP协议的time_wait超时时间,调大最大文件句柄数。
  2. 推荐:JVM设置-XX:+HeapDumpOnOutOfMemoryErrorXmsXmx设置相同大小。

http://www.dtcms.com/a/517463.html

相关文章:

  • C++编程技巧和规范_静态对象讨论
  • 超详细的Git submodule讲解以及出现分离头指针(detached HEAD)的解决方法
  • 西宁网站建设嘉荐君博l网页版游戏排行榜传奇
  • 如何联系网站管理员购买腾讯云 做网站
  • 我的家乡网站设计模板做网站时 404网页如何指向
  • 五合一建站网站怎么做可以合法让别人充钱
  • 网站搜索排名和什么有关系网站前端工资
  • 宁德市城乡住房建设厅网站北京网站设计优刻
  • dumpsys meminfo 中的 Lost RAM 怎样计算?
  • 长沙微网站网站建设策划书ol
  • Verilator 和 GTKwave联合仿真
  • 合肥网站建设久飞汽车门户网站源码
  • RHCE-时间服务
  • 海外短剧分销系统合规避坑:GDPR/PDPA数据存储与跨境分账税务处理
  • 问题排查 | 麒麟操作系统ntp服务报错Clock Unsynchronized
  • design网站海南科技网络有限公司
  • 做任务给佣金的网站有哪些网站设计导航栏高度
  • 移动网站建站做58同城这样的网站
  • 青岛建网站的公司有哪些建立学校网站
  • 网站建设所需费用明细直播网站怎么建设
  • 网站建设实践报告建站网站模板
  • 保险网站模板做网站的企划书
  • KVM 虚拟化环境
  • 天津平台网站建设推荐公司官网怎么弄
  • 国外建设短视频网站网站开发证书
  • 视频网站建设公司网站没有备案用什么cdn
  • web开发对于svg的简单应用
  • photoshop+做网站logo有谁认识做微网站的
  • xss-labs pass-09
  • 每日两题day20