自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 孤尽训练营打卡日记day28--第四周总结

前言 光阴似箭,日月如梭。转眼已经过去了一个月,孤尽训练营第四周也已经结束,今天我们一起来对这一周的内容做个简单回顾。第一次课 单元测试和系统安全规约什么是单元测试?对软件组成单元进行的测试,其目的是检验软件基本组成单位的正确性。测试对象是软件设计的最小单元:模块,又称模块测试为什么要单元测试?提高软件质量 促进代码优化 提升研发效率怎么单元测试?借助常用的单元测试框架,如 Junit、SpringTest等系统安全...

2021-11-22 23:51:38 2851

原创 孤尽训练营打卡日记day27--分布式锁

前言 随着公司业务的扩展,单实例逐渐都演变成的多实例,在多实例的情况下,怎么处理并发呢? 单实例加锁:synchronized关键字、Semaphore、ReentrantLock,或者我们也可以基于AQS定制化锁 多实例加锁:?什么是分布式锁 单机部署的情况下,锁是在多线程之间共享的,但是分布式部署的情况下,是多台机器,应用级锁。也就是说锁是多进程之间共享的。那么分布式锁要保证锁资源的唯一性,可以在多进程之间共享。...

2021-11-21 22:48:52 612

原创 孤尽训练营打卡日记day26--redis分布式锁

setnx 加锁expire设置超时时间加锁两个条件1、能加锁2、形成锁的互斥问题:setnx是两个命令,如果执行了setnx,expire失败 ,就会造成锁无法释放解决:使用set key value [ex ][nx]使用 lua 脚本执行,两个命令是个原子操作锁过期问题:线程一持有锁超时 20秒,执行10秒的时候,遭遇fullgGC ,SWT导致任务挂起,超过20秒,线程二开始执行,fullGC结束,线程一继续执行,导致数据混乱1、增加乐观锁,线程一

2021-11-21 01:12:53 218

原创 孤尽训练营打卡日记day25--JWT初识

前言 在前面的学习中,我们已经学过了OAuth2,是一种第三方登录授权协议,今天我们要学习的是JWT,也是一种授权协议。为什么已经有OAuth2了,还要学习JWT呢,我们一起进入今天的学习。什么是JWT Json web toke(JWT)是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准(RFC7519)定义了一种简洁的,自包含的方法用于通信双方之间以JSON对象的形式安全传递信息。因为数字签名的存在,这些信息是可信的,JWT可以使用HMAC算法或者是...

2021-11-19 22:01:39 649

原创 孤尽训练营打卡日记day24--系统安全规约

前言 现在是大数据的时代,数据是非常重要的,一张照片就有可能泄漏了你的位置信息。在我们的系统中,安全一直是老生常谈的话题,怎么维护我们的系统安全,在我们日常开发中,怎么避免出现安全问题,我们跟着Joel老师继续学习系统安全规约。权限控制之越权访问漏洞越权访问(Broken Access Control,简称 BAC)是web程序中一种常见的漏洞,由于其存在范围广、危害大,被 OWASP 列为Web应用十大安全隐患第二名。垂直越权访问:拥有...

2021-11-19 01:50:11 2543

原创 孤尽训练营打卡日记day23--单元测试

前言 在我们的开发流程中,需求调研 -> 项目立项 -> 设计产品 -> 开发 ->测试 -> 发布,测试也是非常重要的一环,只有经过严格测试的产品,才能投入使用。如果一个产品不经过测试,直接上线是有非常大的风险的,出现问题会导致公司的名誉受损,如三星的note 7 爆炸时间。今天我们跟着Joel老师一起学习一下单元测试。软件测试 指的是通过手工或工具对被测对象进行测试操作 以此来验证实际结果与预期之间是否存在差异 ...

2021-11-17 23:40:33 97

原创 孤尽训练营打卡日记day22--OAuth2实战

前言 在前面的笔记分享中,我们知道了OAuth 2是什么,他是一个第三方登录的授权协议。为什么要使用 OAuth 2,因为现在是分布式架构,对客户来说,是一个系统,但是后台实现是多个微服务,客户一次登录,应该要能访问到不同的微服务。今天我们接着学习 OAuth2 的实战。工程结构; 授权服务器:颁发和验证令牌 提供需要令牌才能访问的服务依赖<dependency> <groupId>org.springfra...

2021-11-17 00:16:12 415

原创 孤尽训练营打卡日记day21--第三周总结

前言 半城烟沙,兵临城下,金戈铁马,为谁争天下。有人说,杀人太多,就会失去自我,而总是着急赶路,就会错过风景。今天一起来回顾一下我们第三周学了那些内容。第一次课无尘老师给我们介绍了一些java中容易踩的坑。Java中浮点数据的处理 浮点数在计算机中是一个近似的数,因为计算机本身是二进制的,在十进制转二进制的时候,有一些数会出现无限小数,所以浮点数在Java中是个近似数。所以我们在使用金额计算的时候,要使用int,如果一定要使用小数的话,使用BigDecim...

2021-11-15 23:34:46 714

原创 孤尽训练营打卡日记day20--HashMap 源码浅析

前言 在前面的文章里,我们知道了HashMap 是什么,今天跟大家分享下HashMap的源码关键源码:常量/*** The default initial capacity - MUST be a power of two.*/static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16/*** The maximum capacity, used if a higher va...

2021-11-15 03:08:12 536

原创 孤尽训练营打卡日记day19--OAuth2基础

前言 我们现在的系统架构都是微服务的架构,也就是说,一个完整的功能,是由后台多个工程一起完成的。那么就会有一个问题,明明是多个工程,但是我们只需要登录一次,这是怎么实现的呢?今天我们跟着刘雪松老师一起学习一下OAuth2第三方登录授权协议OAuth2 是什么? OAuth(开放授权)是一个开放标准,允许用户授权第三方移动应用访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方移动应用或分享他们数据的所有内容。比如在微信上打开京东的小程序,这个时候...

2021-11-13 23:19:35 1249

原创 孤尽训练营打卡日记day18--HashMap初识

前言 Map是我们平时开发时候经常用到的一种数据结构,我们都知道他是一种 <key,value> 的模型。Map中最常用的是HashMap,因为他是线程安全的,为什么他是线程安全的呢,他和Map的区别在哪呢,为什么线程安全推荐使用CurrentHashMap,今天我们一起来学习一下HashMap的源码。HashMap是什么?HashMap是一种常用的java容器,它继承了AbstractMap,实现了Map,Cloneable,Serializable; HashMa...

2021-11-12 21:54:51 859

原创 孤尽训练营打卡日记day17--面向对象

前言 Java是一门面向对象的语言,那么问题来了,有人会问,老师,我没对象,我该怎么办,老师会发么还是要自己带,此对象非彼对象,今天我们一起来学习一下面向对象的编程思想。面向对象编程(Object-Oriented Programming,OOP) 是划时代的编程思想变革,推动了高级语言的快速发展和工业化进程。OOP 的抽象、封装、继承、多态的理念使软件大规模化成为可能,有效地降低了软件开发的成本、维护成本和复用成本。面向对象编程思想是大型软件的开发就像搭积木一样...

2021-11-11 23:09:59 267

原创 孤尽训练营打卡日记day16--Java代码避坑指南

前言 在我们日常开发中,代码有很多细节都是我们不曾注意的,比如金额应该使用 double 还是 float,或者是int;时间格式化里的yyyy代表什么,使用 大写YYYY 行不行。很多东西我们一直都是看前人这么写的,我们就跟着写,没考虑过为什么。今天,跟着无尘老师我们一下学习一下代码中一些常见的坑。浮点数据处理浮点型:double、float浮点数是属于有理数中某特定子集的数字表示,在计算机中用以近似表示任意某个实数整型:int计算机中...

2021-11-11 00:15:59 627

原创 孤尽训练营打卡日记day15--项目实战乘客管理爬坑

前言 即使是在老师给了基础代码的情况下,还是走了不少弯路,特此记录问题1、ticket-service 报 异常Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failureThe last packet successfully received from the server was 2milliseconds ago. The last p...

2021-11-09 01:35:45 723

原创 孤尽训练营打卡日记day14--第二周总结

前言 光阴似箭,日月如梭!跟着孤尽老师学习的第二周也即将结束,训练营的日子也已经过去了一半。古人云,学而不思则罔,思而不学则殆。今天我们来对第二周的学习做个总结。内容回顾day08首先,孤尽老师对上一周的作业做了一个标准解答:用例图核心:用户 + 行为,有哪些用户角色,使用了系统什么功能 类图核心:模型的抽象、模型之间的关系 时序图核心:对象之间的协作、随着时间线,做了什么 状态图核心:有哪些状态、什么条件触发状态变化 活动图核心:有哪些系统参与了协...

2021-11-08 17:59:58 736

原创 孤尽训练营打卡日记day13--mybatis-plus 自动生成代码

前言 在我们开发项目的时候,controller、service、serviceImpl、mapper、entity每次都要手动敲一遍,太不方便了,所以本次我写了一个mybatis-plus 自动生成代码器,提供开发效率。依赖 <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-gen...

2021-11-08 00:34:43 173

原创 孤尽训练营打卡日记day12--代码规范

前言 软件质量,不仅依赖于良好的架构设计及项目管理,还和代码质量紧密相关。你是否也曾被糟糕的代码坑过,没有注释、和约定的不一致、方法和变量名称随意命名,调用起来不找到对面开发根本不知道调用哪个方法,使用哪个变量。今天我们跟着孤尽老师一起学习一下代码规范。为什么需要代码规范1、熵增定律:任何系统在没有外力的有序干预下,一定会往混乱无序的方向发展。代码如果没有一个有效的管理,最终也会变得混乱不堪。2、破窗理论:窗户破损了的建筑让人觉得似乎无人照管。于是别人也不再关心,他们放入窗户继...

2021-11-06 23:36:52 222

原创 孤尽训练营打卡日记day11--底层项目搭建爬坑

前言 在孤尽训练营的三十天里,需要完成一个类似12306的购票网站,实现从查票、下单、付钱、通知的主流程。今天就和大家分享一下搭建底层项目时候遇到的一些坑。nacos 启动闪退我们都知道,从jdk8起,在安装jdk的时候,我们不手动配置环境变量也是可以运行起来Java程序的。因为在用户变量的 Path 里面就有Java路径生成,而在映射的路径文件夹中已经存在了可执行的java.exe,也就是说在安装的时候就已经自动为我们添加好了环境配置。所谓环境...

2021-11-05 23:40:11 177

原创 孤尽训练营打卡日记day10--技术选型

前言 在我们开始开发一个系统之前,我们需要先做一件事,就是技术调研,专业的叫法就叫 技术选型。如果技术选型选不好,就容易给自己埋下一大推坑,对系统的后续维护,版本升级都是很不友好的。那我们如何选择呢,成本和效率都是我们需要考虑的问题。为什么需要技术选型降低开发成本 提高研发效率 系统可维护性微服务架构三部曲巨石应用 第一代单体应用,将所有模块打包到一起部署运行。优点:易于部署、调试、运维方便,维护成本低缺点:不可靠,一个模块的bug就...

2021-11-05 00:50:58 334

原创 孤尽训练营打卡日记day09--网络协议 TCP/IP

前言网络协议为计算机网络中进行数据交换而建立的规则、标准或约定的集合。有了这些协议,计算机和计算机之间才能连接在一起,用一些共同的东西进行交流,发挥更强大的作用。TCP/IP在多个不同网络间实现信息传输的协议簇iso 七层模型物理层:主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流(就是由1、0转化为电流强弱来进行传输,到达目的地后在转化为1、0,也就是我们常说的数模转换与模数转换),这一层的数据叫做比特。 数据...

2021-11-03 00:07:18 105

原创 孤尽训练营打卡日记day08--项目搭建规范

前言 在我们平时的开发中,可能分配到手上就是一个简单的需求,公司不一定有充足的实例给每一个需求新建工程,导致我们总是停留在业务代码层面,无法从一个项目的底层技术去了解一个项目。今天这节课,我们学习了怎么从零搭建一个项目,怎么设计项目结构。作业回顾用例图核心:用户行为类图核心:模型的抽象 模型之间的关系时序图核心:对象之间协作 随着时间推动,做了什么状态图核心:关注多少个状态 触发系统状态变化的条件活动图:多少个系统,参与了协作 每个处理流程的瞬间判...

2021-11-02 23:45:11 157

原创 孤尽训练营打卡日记day07--第一周总结

前言 人生就是一条旅程,我们每一个人都是行者。旅途不仅有终点,还要一路的风景,每一站,都有不同的景色。孤尽老师的训练营已经过去了一周,今天给大家回顾一下这周的成果。day 01 怎么分析需求 `以人为本,从人性出发,用户的述求是什么,怎么解决用户的诉求。什么人在什么场景下,需要解决什么问题。要分辨哪些是伪需求,哪些是无效需求,避免产出比低的需求 设计原则 六大设计原则:单元职责原则、里氏代换原则、接口隔离原则、组合...

2021-11-01 23:56:58 169

原创 孤尽训练营打卡日记day06--日志规范

前言在程序中打错误日志的目的是为了排查问题和解决问题提供重要的线索和指导,在测试环境我们可以debug,但是生产问题无法如此调查。在实际中打的错误日志内容和格式变化多样,错误提示上可能残缺不全、没有相关背景、不明其义,使得排查解决问题成为非常不方便或者耗时的操作。如果结果并非所愿,那就在尘埃落定前奋力一搏! --《夏目友人帐》参考文献:Joel老师的ppt...

2021-10-30 22:14:36 240

原创 孤尽训练营打卡日记day05--异常初识

你总是这样轻言放弃的话,无论多久都只会原地踏步。--《哆啦A梦》

2021-10-30 19:58:53 95

原创 孤尽训练营打卡日记day04--MySQL优化

前言如何根据需求创建表需求1、乘客通过网站注册登录2、实名认证通过mork实现3、铁路部门管理员有如下功能车次、车厢、经停站、时刻表的增删改查 用户管理:用户增删改查、黑名单管理,为用户分配角色 角色管理:角色增删改查,为角色分配相应的功能 菜单管理:菜单增删改查4、定时任务:生成火车票5、普通用户拥有如下功能修改信息:密码、住址、电话、邮箱 代沟功能:录入其他乘客信息,合并下单支付 余票查询:可以通过车次、出发站、到达站、日期等条件查询 购买车票下单:

2021-10-29 21:53:09 282

原创 孤尽训练营打卡日记day03--MySQL 设计规范

前言: 数据库对我们一个系统来说是非常重要的,数据库的相关信息是公司的核心数据信息,其内容的规范性会直接影响到公司的业务发展。我们每个人在使用数据库上有这不同的习惯,这对团队协作来说,不是那么友好。对数据库内部进行合理的规范设计,团队的所有人遵守这个规范,不仅能够降低系统的维护难度,同时一定程度上也可以提高系统的运行性能。数据库对象命名规范1、基本通用命名原则命名使用带有含义的英文单词,避免以数字开头,多个单词组成时,禁止使用连字符。 只能使用小写英文字母、数字和下划线...

2021-10-29 01:50:51 163

原创 孤尽训练营打卡日记day02--架构图

目录前言架构图是什么?架构图分类为什么要画架构图?如何画架构图?UML(Unified Model Language)UML分类用例图:类图:对象图:序列图:协作图:状态图:活动图:构件图:部署图:图的差异比较1.序列图(时序图)VS协作图2.状态图VS活动图3.活动图VS交互图前言 在上一篇文章里,我们已经学习了架构的含义,我们现在已经有了一个系统的抽象架构,那我们该怎么去表达出来呢?由此,诞生了一个新...

2021-10-28 02:40:56 301

原创 孤尽训练营打卡日记day01--需求、设计原则、架构初识

目录前言一、需求分析需求是什么为什么要分析需求怎么分析需求怎么应对需求二、设计原则单一职责原则里氏代换原则接口隔离原则组合复用原则依赖倒置原则迪米特法则开闭原则三、架构架构是什么?为什么要架构?如何做好架构KISS 原则(Keep it simpe and smile)DRY原则(Don't Repeat yourself)总结前言在我们的日常开发中,可能很多时候都是接到需求就开始编...

2021-10-27 00:47:18 410

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除