查看原文
其他

快速上手:24小时掌握企业级接口开发

涤生-莫哥 涤生大数据
2024-12-05

  

1. 编程规范

【强制】代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束

【强制】代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式

【强制】类名使用UpperCamelCase风格,但DO/BO/DTO/VO/AO/PO等例外

【强制】方法名、参数名、成员变量、局部变量都统一使用 lowerCamelCase风格

【强制】常量命名全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长

【强制】抽象类命名使用 Abstract或 Base开头;异常类命名使用 Exception结尾;测试类命名以它要测试的类的名称开始,以Test结尾

【强制】包名统一使用小写,点分隔符之间有且仅有一个自然语义的英语单词。包名统一使用单数形式,但是类名如果有复数含义,类名可以使用复数形式

【推荐】接口类中的方法和属性不要加任何修饰符号(public也不要加),保持代码的简洁性,并加上有效的 Javadoc注释。尽量不要在接口里定义变量,如果一定要定义变量,一定是与接口方法相关,并且是整个应用的基础常量

【参考】枚举类名建议带上 Enum后缀,枚举成员名称需要全大写,单词间用下划线隔开

【强制】在long或者 Long赋值时,数值后使用大写的 L,小写容易跟数字1混淆

【强制】大括号的使用约定。如果是大括号内为空,则简洁地写成{}即可,不需要换行;如果是非空代码块则

【强制】采用 4个空格缩进,禁止使用 tab字符

【强制】Object的equals方法容易抛空指针异常,应使用常量或确定有值的对象来调用equals

【强制】构造方法里面禁止加入任何业务逻辑,如果有初始化逻辑,请放在 init方法中

【强制】Java类库中定义的可以通过预检查方式规避的 RuntimeException异常不应该通过catch的方式来处理,比如:NullPointerException,IndexOutOfBoundsException等等

【强制】有 try块放到了事务代码中,catch异常后,如果需要回滚事务,一定要注意手动回滚事务

【强制】不要在 finally块中使用 return; finally块中的 return返回后方法结束执行,不会再执行 try块中的 return语句

【强制】应用中不可直接使用日志系统(Log4j、Logback)中的 API,而应依赖使用日志框架SLF4J中的 API,使用门面模式的日志框架,有利于维护和各个类的日志处理方式统一

【强制】对 trace/debug/info级别的日志输出,必须使用条件输出形式或者使用占位符的方式

正解: logger.debug("Processing trade with id: {} and symbol : {} ", id, symbol);

强制】SimpleDateFormat不能多线程使用

 

2. 搭建Spring Boot项目

 

2.1 Git创建空项目

2.2 Idea创建项目

 

2.3 Maven配置


2.3.1 父项目

2.3.2 子项目

 

2.4 Spring Boot 相关依赖

2.5 Spring Boot 配置文件

2.5.1 激活指定环境配置

1. 对应潜龙发布系统,添加配置参数-Dspring.profiles.active=dev

2. IDEA激活指定环境(RUN -> Edit Configurations)

2.5.2 其他配置文件

2.5.2.1 Application Config

1. 配置文件类

*** Service会加载该配置文件,若不配置会报错

2.5.2.2 logback.xml(日志配置文件)

日志目录规范

/data/weblog/java/{项目名} java stdout

/data/weblog/tomcat/{项目名} java stdout

/data/weblog/business/{项目名} 业务日志

以上目录定时清理,单个日志文件大小不能超过200MB

常用命令

/etc/init.d/java {项目名}  (start/stop/restart)

/etc/init.d/tomcat {项目名}  (start/stop/restart)

/etc/init.d/nginx (start/stop/configtest/reload/force-reload)

 

2.6. 自定义Mapper(Mybatis)

2.6.1 创建配置文件

2.6.2 加载Mapper路径

2.6.3 编写DAO接口

2.6.4 编写Mapper文件

 

2.7 注解

2.7.1 Lombok

2.7.2 RestController

1. @RequestMapping

2. @ PathVariable

3. @ RequestBody (同上,JSON)

4. @ RequestParam : 参数

2.7.3 其他注解

1. @Slf4j: 日志2. @Service(“****”):启动服务3. @Autowired:自动加载4. @Scheduled:定时器5. @PostConstruct: 与Service配合使用,启动并运行6. @Transactional: Spring-Mybatis事务7. @Mapper : 定义Mybatis接口


涤生大数据往期精彩推荐

1.企业数仓DQC数据质量管理实践篇

2.企业数据治理实战总结--数仓面试必备

3.OneData理论案例实战—企业级数仓业务过程

4.中大厂数仓模型规范与度量指标有哪些?

5.手把手教你搭建用户画像系统(入门篇上)

6.手把手教你搭建用户画像系统(入门篇下)

7.SQL优化之诊断篇:快速定位生产性能问题实践

8.SQL之优化篇:一文搞懂如何优化线上任务性能,增效降本!

9.新能源趋势下一个简单的数仓项目,助力理解数仓模型

10.基于FlinkSQL +Hbase在O2O场景营销域实时数仓的实践

11.开发实战角度:distinct实现原理及具体优化总结

12.涤生大数据实战:基于Flink+ODPS历史累计计算项目分析与优化(一)

13.涤生大数据实战:基于Flink+ODPS历史累计计算项目分析与优化(二)

14.5分钟了解实时车联网,车联网(IoV)OLAP 解决方案是怎样的?

15.企业级Apache Kafka集群策略:Kakfa最佳实践总结

16.玩转Spark小文件合并与文件读写提交机制

17.一文详解Spark内存模型原理,面试轻松搞定

18.大厂8年老司机漫谈数仓架构

19.一文带你深入吃透Spark的窗口函数

20.大数据实战:基于Flink+ODPS进行最近N天实时标签构建

21.数仓面试高频-如何在Hive中实现拉链表

22.数仓面试还不懂什么是基线管理?

23.传说中的热点值打散之代码怎么写? 

24.列转行经典实现,细谈hive中的爆炸函数

25.玩转大厂金融风控体系建设

26.实际开发中:如何有效运用Spark Catalyst的执行流程

27.数据开发优化实战案例:Group by数据倾斜

28.数据开发优化实战案例:Join 数据倾斜

29.深入分析大数据存储格式:Parquet、Avro 和 ORC 的性能和成本影响



继续滑动看下一个
涤生大数据
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存