- 博客(14)
- 收藏
- 关注
原创 孤尽T31之终章总结
培训内容 培训以知识加上项目实践结合,从理论走向实践,从实践中复习理论并深化理论。 项目是以12306网站功能为大概的项目实践,包括了一般项目的基础内容(类似用户管理、基础配置、授权管理)和网络主流业务模块(类似支付)等。整体流程包括用户登录后的购票流程。整体的内容包括如下二、基础知识篇章 基础知识包括三部分:1.java的集合框架2.常用的基础类的底层实现存储方式以及常用可能的坑3.常用的数据结构。1.java的集合框架图谱如下:三、代码规范...
2021-12-01 21:58:05
349
原创 孤尽T31之系统健壮性
代码评审代码的恶性循环:1没有时间codeRevew2 业务崔的紧直接写代码3 没时间填坑,却不断挖坑好的程序员第1个星的程序员写出计算机可以理解的代码。 第2星写出自己未来可以理解的代码。 第3星写出别人都可以自我理解的代码。 程序员的自我修养 1.写出好的代码 2技术水平不断提高 3帮助别人成长 代码的评审 维度包括...
2021-11-27 20:37:38
1333
原创 孤尽T31之Redis分布式锁
Redis分布式锁介绍1.1分布式锁常见的场景 如果是在同一个jvm的时候可以使用Synchronized或者Lock的方式加锁解决。如果是分布式情况下可以使用分布式锁。分布式锁分析1.2Redis分布式锁分析使用setnx lock “123”命令,返回1则表示设置锁成功,返回0则表示被别人锁住了。但是setnx 和expire2个命令不是原子操作可以在设置锁同时设置过期时间,则该操作是原子的。还有个办法使用lua脚本。蓝色的是lua的表...
2021-11-20 22:07:13
576
原创 孤尽T31之用户系统实现
JWT结合Oauth2Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可直接被用于认证,也可被加密。通过JWT来实现生成令牌秘钥,秘钥使用非对称加密方式,由授权中心生成私钥,将
2021-11-20 14:23:06
597
原创 孤尽T31之单元测试与系统安全规约
单元测试1.1单元测试定义 单元测试是对软件组成单元进行的测试,其目的是检验基本单元的正确性。单元测试对象是软件设计的最小单元称为模块,所以又叫模块测试。整个测试阶段分为单元测试、集成测试、系统测试三步骤,其范围从小到大。1.2单元测试的原则原则一:AIR原则 本原则是指可重复性(Repeatable)、独立性(Independent)、自动化(Automatic)原则二:BCDE原则指测试满足B(Border)边界测试;C:Corr...
2021-11-16 23:49:45
2622
原创 孤尽T31之Oauth2
Oauth2授权Oauth2的优点短期的,自动失效。 可以撤销,撤销立即生效 有权限范围,如只能进一个门。Oauth2的一般应用场景 为第三方系统授权登陆,比如京东使用qq的授权登陆。选择后跳转到qq网站 录入qq的登陆信息,得到令牌 得到令牌后同意授权qq信息登陆京东京东使用令牌可以访问qq系统成功后,实现跳转。其过程如下OAuth2 的参与方1客户端:京东2资源服务器和授权服务器:QQ,持有资源,发放令牌3OAuth2:授权协议因为客户端...
2021-11-13 23:13:57
327
原创 孤尽T31之集合与并发编程
T31系统功能功能梳理用例图关注:关注角色、角色功能,将需求再次结构化。功能树:关注功能模块,哪些模块干什么,功能树是对用例图再次重新聚合。例如T31的功能树如下作业,部署图关注部署的关联元素,包括微服务,数据库等以及关联元素。集合2.1集合规约 集合定义:集合就是数据结构的载体首先是Clllection接口,下面有Set和List接口 Map接口,ConcurrentMap是线程安全而且高效。数据结构与时间复杂度数据结构:指逻辑意...
2021-11-11 23:27:46
368
原创 孤尽T31之java代码避坑指南
控制语句 1.switch 每个分支必须要有结束,break/continue/return; 如果判定条件使用字符串时需要进行null判定,否则npe default必须在最后。 2.在if/else/for/while/do语句块中必须使用大括号。3.不要在控制条件中执行复杂语句 1)不要在其他表达式中插入赋值语句。 2)不要在条件判定中执行其...
2021-11-09 23:37:03
617
原创 孤尽T31之编码规约与前后端设计规约
编码规约1.1规约缘起 软件系统是一个协作的产物,而为了能更好更高效的完成多人协作,则需要所有的参与者都在一个共同的认知基础上,这个共同的认知应该是大家的认可的公认的优秀的理论和规则。所以为了更好的完成软件协作需要大家订立一个共同遵守的规约来指导具体的开发工作。在协作的过程中通常会出现类似帕金森琐碎定律的情况。帕金森琐碎定律介绍 帕金森琐碎定理(英语:Parkinson's Law of Triviality),又译为帕金森氏凡俗法则,或称芝麻蒜皮定律、芝麻绿豆定律,由...
2021-11-06 22:26:16
299
原创 孤尽T31之技术选型
技术选型技术选型是一件很重要的事情。技术选型的原因降低开发成本 提高开发效率编程语言排行今天9月份推出的jdk17版本了。2.微服务架构产生 架构的历史包括如下几个时代第一代单体应用 把所有的应用都打包为一个war包到tomcat下运行,这种模式叫做巨石因公第二代SOA(Service Oriented Architecture) 面向服务架构,它是一种设计方法,服务间使用松耦合...
2021-11-05 08:02:16
244
原创 孤尽31天之工程结构规约
应用分层1.1分层目的 应用分层的目的主要包括分工协作的效率更高;分层后更容易扩展和维护。比较经典的分层结构有MVC等,MVC主要分为Model,Controller、View三层。1.2最佳实践根据实践的推荐的应用分层为DAO层、Service层、Web层、开放接口层4层。DAO层: 异常类型很多,不需要打印日志。Service层必须记录出错日志到磁盘,尽可能带上参数信息,保护案发现场,方便出现异常时定位解决问题。 Web层...
2021-11-03 00:26:39
1604
原创 孤尽31天之异常与日志处理
一、异常处理java的异常处理分为很多异常,1.1java异常体系 java的异常处理流程和机制是比较完善的,如果能很好的处理异常机制,则是一个稳定软件和系统的重要表现。1.1.1异常的重要的作用之一就是为系统安全护航 优秀的异常处理应当遵守:异常应当描述导致当前异常发生的原因 根据异常栈快速定位到异常发生的位置 结合异常描述和异常栈解决异常 异常返回的值应该与常规的值有明显区分 可以不用调用方来分析异常1.2异常处理 java...
2021-10-30 23:30:30
355
原创 孤尽31天之架构与设计
T31项目简介1.1项目简介 类似12306售票网站,主要模拟售票流程和商品支付主流程。项目基本涉及了大部分系统包括的基本功能模块和部分主流的模块,基本模块比如:登陆、用户管理,大部分系统都必须包括的基本模块;主流模块比如:车票订单和支付流程是当前大部分互联网系统必备的主流模块,具有典型的代表。二、需求分析2.1对于需求的定义:需求是理解和挖掘用户的诉求、以及背后的逻辑,转化成可行性的分析结果。从非结构化到结构化,确定系统的职责、模块的过程。2.2需求分析过程:在进行需求...
2021-10-30 16:12:50
192
原创 孤尽31天之Mysql规约设计
一、规约2.1建表规约 为了在所有成员之间建立一种共识的约定,以便大家一起沟通在共同的基础上。 2.1.1表、字段命名1.名字规范:必须使用小写字母或者数字所有的字段使用字母时应都使用小写的,不要用大写。 禁止出现数字开头禁止2个下划线中间只出现数字 不使用复数名词 禁止保留字 是与否的概念的字段必须使用is_xxx的方式命名2.数据类型选择小数类型为:decimal 货币数据:使用最小货币单位比如人民币最小单位为分则数据库存储...
2021-10-30 11:05:03
224
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人