自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 限制上传文件为竖版A4格式

文件上传限制格式为竖版A4,使用的是MultipartFile传递

2023-10-11 16:37:24 102

原创 Java将docx转换为html格式字符串

docx文件转换为html格式的字符串,类似于"xxxxxxx"

2022-07-28 22:34:55 2193 3

转载 计算机通信——五层协议参考模型

应用层:使用DNS 域名解析协议将域名转换成ip地址 传输层:建立端口到端口的通信(也可以说是进程到进程之间的通信)。常见协议:TCP 协议和 UDP 协议 网络层:把运输层产生的报文段或用户数据报封装成分组和包进行传送。使用IP协议。使用ARP 地址解析协议实现由IP地址得到MAC地址 数据链路层:1.发送端将ip数据报封装成帧,接收端就可以根据帧的首尾标记识别帧的开始与结束;2.通过MAC地址(链路层地址)区分计算机,从而唯一寻找、传送计算机的数据。 物理层:使用传输介质/物理媒介来连接两台计算

2022-01-20 16:17:54 393

转载 数据包在网络中是如何传输的

探究:一个数据包在网络中到底是怎么游走的? (qq.com)https://mp.weixin.qq.com/s/07zloKKMUl-RHN6tWqZIJQ

2022-01-20 16:01:17 180

原创 D27——spring Cloud Alibaba

为什么要使用Spring Cloud Alibaba?Spring Cloud Alibaba也被纳入Spring体系的一员,提供的组件和功能与netflix的类似。但是netFlix已宣布进入维护模式(即意味着Spring Cloud团队将不再向模块添加新功能)主要功能服务限流降级:默认支持WebServlet、WebFlux、OpenFeign、RestTemplate、Spring Cloud Gateway、Zuul、Dubbo和 RocketMQ限流降级功能的接入,可以在运行时通过

2021-11-25 17:13:11 1233

原创 2021.11.23 孤尽训练营D29 ——系统健壮性设计

大纲:代码评审、健壮性与鲁棒性、混沌工程代码评审如何做CR(code review)统一的编码与设计规范 完整的技术架构说明与事例 不定期的Review会议 小项目(3个月内)可以10天/次,大项目(6个月以上)15天/次,前期可以安排密集一些,后期考虑1月/次推荐工具:Phabricator:Facebook开源的代码审查工具 Gerrit:非常强的CR + 代码托管工具 CheckStyle:代码规范检查工具CR建议PR内容一定要少 至少一条正面评价 对事不对人

2021-11-25 13:56:06 201

原创 2021.11.20 孤尽训练营D26——分布式锁

大纲:分布式锁简介、Redis分布式锁分析、Redisson分布式锁、分段锁简介在同一个JVM内部,大家往往采用锁过期问题STW问题解决方案:1.乐观锁,增加版本号2.watch dog自动延期机制:不会侵入业务代码,redisson就是采用这种方案逻辑:客户端1一旦加锁成功,就会触发watch dog看门狗机制。这是一个后台线程,会每隔10秒进行检查,如果客户端1还持有锁key,那么就会不断延长锁key的生存时间Redisson分布式锁Redisson是基于

2021-11-22 15:40:30 702

原创 2021.11.17 孤尽训练营D23——用户登录

登录流程前端提交⽤户名、密码 ⽤户微服务得到⽤户名密码 ⽤户微服务组织数据包括:client_id:client_secret、组织、Basic Authorization、⽤户名、密码等参数 ⽤户微服务使⽤RestTemplate发送HTTP请求给授权中⼼微服务 授权中⼼微服务校验通过颁发令牌 前端将令牌令牌存储到sessionStorage中,下次访问资源服务器通过Header携带访问配置在nacos中对admin-service-dev.yaml进行配置security.

2021-11-21 16:52:12 276

原创 2021.11.18 孤尽训练营D24——授权管理

JWT概念Json Web token,是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准。定义了一种简洁的、自包含的方法用于通信双方之间以JSON对象的形式安全的传递信息。因为数字签名的存在,这些信息是可信的,JWT可以使用HMAC算法(对称加密算法)或者是RSA(非对称)的公私密钥对其进行签名。JWT组成Header头部:算法 & token类型Payload负载:数据(非安全的,不能放敏感数据)Signature签名:验证签名。签名过程:(以上图.

2021-11-21 15:46:02 2936

原创 2021.11.19 孤尽训练营D25——授权管理实操

一、私钥公钥生成1.使用java提供的keytool证书管理工具生成公钥私钥证书创建一个文件夹,在该文件夹下执行如下命令:keytool -genkeypair -alias kaikeba -keyalg RSA -keypass kaikeba -keystore kaikeba.jks -storepass kaikeba-alias:密钥的别名 -keyalg:使⽤的hash算法 -keypass:密钥的访问密码 -keystore:密钥库⽂件名 -storepa.

2021-11-21 15:42:57 502

原创 2021.11.16 孤尽训练营D22——单元测试与系统安全规约

认识单元测试单元测试是对软件组成单元进行的测试。其目的时检验软件基本组成单位的正确性。测试对象时软件设计的最小单元:模块,又称为模块测试。单元测试的AIR原则A:自动化地关闭、开启单元测试 I:每个模块都没有相互的依赖 R:如果没有代码的修改、或者功能的添加删除,则该单元测试代码可在后续测试重复利用单元测试编写的BCDE原则B:Border 边界值测试 C:Correct 正确的输入,并得到预期的结果 D:Design 与设计文档相结合 E:Error 证明程序有错功...

2021-11-16 22:21:20 3112

原创 2021.11.15 孤尽训练营D21——第三周一周总结

开发过程中,有许多常踩但没意识到的坑,老师总结了一部分并在课中教给了我们。比如,具有精度丢失问题的浮点数据应该如何处理?对于金额等需要精确表示小数的数据,存储使用decimal类型,对应java中时BigDecimal类。 浮点数之间的等值判断,基本数据类型不能用==判断,包装数据类型不能用equals判断,而应该采用“两个浮点数的差值在某一个误差范围内”作为相等的判断依据。 BigDecimal的等值比较应使用compareTo方法,而不用equals方法,因为equals会比较精度。 禁止

2021-11-16 15:05:25 407

原创 2021.11.12 D18——设置placeholder颜色和内置图

场景:有些组件例如el-cascader级联选择器无prefix-icon时如何设置icon实现代码:<el-cascader :optons="options" placeholder="报表列表" :props="props" collapse-tags clearable></el-cascader>.el-cascader { display: flex; border: 1px solid #382E67; border-ra.

2021-11-15 17:30:09 844

原创 2021.11.14 D20—自学vue,select下添加checkbox

开发过程中总会遇到一些奇奇怪怪的设计,比如以下这个。说明:使用element-ui框架,它有以下组件:el-checkbox与el-select目标:在el-select的option前面添加checkbox,达到下拉并能多选的目的具体实现:<el-select v-model="submitForm.role" collapse-tags clearable multiple @change="changeSelect" @visible-change="visi.

2021-11-15 17:10:44 2094

原创 2021.11.13 孤尽训练营D19——OAuth2

OAuth2是什么OAuth2是目前最流行的授权协议,用来授权第三方应用,获取用户数据。令牌 vs 密码:令牌短期的,自动失效 可以撤销,撤销立即生效 有权限范围,如只能进2号门密码长期有效 一般不允许他人撤销 密码一般是完整权限为什么要用OAuth2单体架构:cookie session机制分布式架构方案:session共享分布式架构方案:基于tokencookie session和token的区别cookie不能跨域,前后端..

2021-11-14 16:10:45 120

原创 2021.11.11 孤尽训练营D17——集合与并发编程

大纲:T31系统功能树、集合规约、并发处理T31系统功能树梳理用例图:关注有哪些角色,角色能够干什么?功能树:关注有哪些大的功能模块,功能模块能够实现什么能力。先有用例图,再有功能树。功能树是对用例图的重新聚合。集合规约集合是数据结构的载体聊聊数据结构与时间复杂度数据结构:指逻辑意义上的数据组织方式(线性结构、树结构、图结构、哈希结构)及其相应的处理方式(增删改查)数据结构的优化与运算规模有关,也与调用频率有关O(1)>O(logN)>O(N)&gt.

2021-11-12 16:31:40 418

转载 2021.11.10 孤尽训练营D16——学习java设计模式

什么是设计模式模式:在某些场景下,针对某类问题的某种通用的解决方案。设计模式(Design Pattern)是前辈们对代码开发经验的总结,是解决特定问题的一系列套路。它不是语法规定,而是一套用来提高代码可复用性、可维护性、可读性、稳健性以及安全性的解决方案。学习设计模式的建议:对于初学者以及职场新人来说,首先专注于当前项目,读懂代码,知道接口、抽象、继承、复合、多态等是怎么运行的,闲下来再看看数据结构、算法之类的书,最后再看设计模式,因为若是没有一定代码量的积累,就算看懂了设计模式也不懂如何

2021-11-11 17:04:14 92

原创 2021.11.9 孤尽训练营D15——java代码避坑指南

大纲:浮点数据的处理、日期数据的处理、控制语句的避坑规范、优雅的面向对象浮点数据处理:在计算机中,用浮点数近似表示任意某个实数,它无法精确表示一个数据,整型数据才可以精确表示一个值。货币数据类型的选择:任何货币金额均以最小货币单位且整型类型来进行存储。0.1默认是double类型浮点数据类型的问题:精度丢失单精度存储示例:(5.2)首先转换整数部分,即 5 变成二进制101 小数部分相当于是2^(-1)一直到2^(-N)的和乘二取整法:我们可以把十进制的小数部分乘以2.

2021-11-09 22:09:28 497

原创 2021.11.8 孤尽训练营D14——一周总结

开发一款软件也是在管理一个项目,事项的确定需要经历从全局再到细节、从整体到局部的过程。这个过程也是软件的生命周期。软件生命周期包含可行性研究阶段、需求分析阶段、软件设计阶段(包括概要设计和详细设计)、编码阶段、测试阶段、运行与维护阶段。上周完成了需求分析与一部分的设计(数据库设计,日记、异常、错误码之类在开发上的全局设计),本周则学习软件设计阶段的其他内容,包括架构选型以及开发过程中所需工程结构、规则与规范等较详细的设计确定。架构选型对于研发过程的效率和后续的维护至关重要,一个好的架构能够让团队

2021-11-09 17:18:36 381

原创 2021.11.7 孤尽训练营D13——前后端设计与规约

前后端联合开发的纠结点:接口名称与风格 如果空集合,返回null还是空集合 json组装格式 后台异常的失败提示 错误信息与用户信息透出前后端交互的API,需要明确协议、域名、路径、请求方法、请求内容、状态码、响应体JAVA与JS对数字类型变量处理方式不同,如果数字太大或者有精度要求,最好使用String类型...

2021-11-08 14:22:57 289

原创 2021.11.6 孤尽训练营D12——编程规约

熵增定律:若是没有外力的干预,万物都会往混乱的方向走去,代码也是如此。java规约缘起:帕金森琐碎定律:开会的时候,鸡毛蒜皮的事情,每个人都会发表意见,但是核心的问题就不会有什么人讲。即80%的时间都花费在无效和琐碎的事情上。编码规约存在的意义:减少代码的维护成本; 改善可读性; 提高团队开发的合作效率; 锻炼出更加严谨的思维; 身心愉快代码格式与命名风格——两个要求命名体现代码元素特性:抽象类命名使用Abstract或Base开头 异常类命名使用Exception结尾

2021-11-07 14:53:57 79

原创 2021.11.5 孤尽训练营D11

影响一个项目开发快慢的因素,除了团队水平、规范是否统一等,还有项目架构选型的因素。一个项目的架构若是选的不好,从开发到上线的一系列过程都有可能受到影响。对于开发架构,若是选择巨石框架或是SOA框架,相比起微服务框架来说,就显得比较笨重、不灵活,在扩展性上也差了很多,在开发过程上就已经慢了; 在数据库连接池选型上,当前比较热门的选择是druid、hikari,如何选择?还是得看那句老话,具体问题具体分析。看当前项目比较偏重于支持多功能还是比较偏重速度。druid支持许多hikari不支持的功能,包括性能

2021-11-06 16:14:33 242

原创 2021.11.4 孤尽训练营D10——技术架构选型

技术选型:自己做?我要选什么?怎么选?考虑效率、性能、成本等为什么要进行技术选型?1.降低开发成本;2.提高研发效率微服务架构的产生1、巨石应用2、SOA架构3、微服务SOA和微服务的思维区别:微服务分层架构图SpringCloud家族数据库连接池选型:定义:JDBC连接池,解决需要自己手动建立连接(TCP连接)、关闭连接、连接复用的问题。JDBC连接池有一个标准的接口javax.sql.DataSource,常用的JDBC...

2021-11-05 16:49:25 120

原创 2021.11.3 孤尽训练营D9

今日任务是,搭建后端项目底层架构好几个月没有敲后端代码的我,尽管有老师提供搭建视频和材料,但是我还是做得磕磕绊绊,很多依赖甚至都没有听过。对着视频一帧一帧地,像个初学者一样一个字母一个字母地敲,报错时也不清楚是问题出在哪里,便回去一遍一遍地看。虽然笨拙,但是好在没有报错了。学习还是不能停下啊。在搭建过程中,最让我惊叹的设计,就是子模块的划分和类之间的继承和多态。比如上图中,车票服务模块又分成了t31-ticket-service模块和t31-ticket-interface模块,其中

2021-11-04 12:11:47 114

原创 2021.11.2 孤尽训练营D8——工程结构规约

项目分层应用分层:隐藏下层业务逻辑的复杂性,提高系统的组件化和可维护性计算机领域的任何问题都可以通过增加一个中间层解决严禁第三方状态码放到系统中分层异常处理:Dao层:异常类型很多,不需要打印日志 Manager/Service层:必须记录出错日志到磁盘,尽可能带上参数信息,保护案发现场 Web层:决不能向上抛异常,应该跳到友好错误页面,友好的错误提示信息 开放接口层:将异常处理成错误码和错误信息方式返回分层领域模型:DO:此对象与数据库表结构一一对应,通过DAO层向上传输数

2021-11-02 22:31:04 159

原创 2021.11.1 孤尽训练营D7——一周总结

参加孤尽训练营已经一周了,在这一周里,每天都很充实,每天都在学习新的知识。白天上班,晚上写作业并开会讨论,在这种紧凑的时间安排下,我们有的人坚持不下来退了群,也有的人咬紧牙关坚持了下来。其实老师布置的作业,对于我们这群码龄2年-12年的学生来说都具有一定的挑战性,庆幸的是,也正是因为这个原因,大家每天都能够有所进步。设计一个系统,首先要从用户的角度出发,对用户的真实需求进行分析,辨别伪需求、权利需求,对不应该实现的功能说不。之后应用七大设计原则对该系统进行架构分析,画架构图,应以“解决问题”为主要目标,

2021-11-01 22:22:27 179 1

原创 2021.10.31 孤尽训练营D6

一个项目的成员编程水平有高有低,初学者对于日志以及异常处理方面的要求和使用场景可能并不清晰,在项目开发过程中,定义一个日志设计文档和异常处理设计文档其实是有帮助的,除了能让初学者对这方面的开发有一个较清晰的认识,也能统一项目成员...

2021-11-01 09:45:17 69

原创 2021.10.30 孤尽训练营D5——异常处理与日志

开发过程中常常会有已处理或无法处理的异常,若我们没有一个明确的处理逻辑和提示信息,在出现异常的时候就很难定位到具体的出错点。大纲:Java异常体系、异常处理、日志规约、错误码规约、异常与日志综合实践日志不规范,排查两行泪异常应当描述导致当前异常发生的原因 根据异常栈快速定位到异常发生的位置 结合异常描述和异常栈解决异常throwable时所有异常和error的最高父类,需要谨慎使用java异常体系非受检异常(RuntimeException,unchecked异常):在个人可.

2021-10-31 14:45:39 188

原创 2021.10.29 孤尽训练营D4

继昨日老师教导了MYSQL规约之后,今日的实操内容是:购票系统数据库E-R模型、数据库物理模型、创建数据库索引和约束、数据库建库脚本数据库及数据仓库模型设计有三个步骤:概念模型设计、逻辑模型设计、物理模型设计1.概念模型是对真实世界中问题域内的事物的描述,不是对软件设计的描述。表示概念模型最常用的是"实体-关系"图。E-R图:Entity-Relationship Model 实体-关系模型构成成分是实体集、属性和联系集,其表示方法如下:(1) 实体集用矩形框表示,矩形框内写上实

2021-10-30 13:49:26 73

原创 2021.10.28 孤尽训练营D3--mysql规约

无规矩不成方圆,使用mysql时也一样,团队协作时使用同一套规约,能使团队的代码看起来有如一个人在开发,阅读、修改代码的效率也能相应提高。mysql规约除了能使阅读更统一与方便,还有性能上的规约,这些规约都是前人的多年经验总结,对于代码效能和数据库性能都有很大的提升,应铭记于心。笔记如下:大纲:建表规约、索引规约、SQL与ORM映射规约、数据库设计实战(一)建表规约表、字段命名规约:必须使用小写字母或数字,不用驼峰命名 禁止出现数字开头 禁止两个下划线中间只出现数字 不使用复数名词

2021-10-28 23:42:05 125

原创 2021-10-27 孤尽训练营D2

成长,大概就是不断突破自我,挑战自己,迎难而上的过程。昨日上了孤尽老师的课,今日是实操,内容是购票系统需求与设计实现,(翻译:画图),包括:0.购票系统需求分析;1.购票系统用例图;2.用户模块类图;3.订单模块类图;4.订单的状态图;5.购买车票的活动图;6.购买车票的时序图;7.车票的改签图;8.购票系统部署图仔细看了一下发现一个都不会画,而且时间有限,小组一共6人需要在一天之内完成1、2、3、4、5、6并提交。于是我们小组在D1就商量并确定D2的安排:赶在中午12点开个短会,讨论需求分析,

2021-10-28 12:02:26 87

原创 2021-10-26 孤尽训练营D1笔记

大纲:需求分析、设计原则、架构与架构图一、需求分析(一)分析:边界、用户故事、用户路径(我们和系统的任何触点都是一个用户路径)分析背后的人性:人性是提出需求的本源做任何系统都要从用户的诉求出发(二)伪需求:没有调研、没有目标、没有逻辑的无脑需求应对:1.用数据化结果否定需求合理性(是否有做PMF) 2.用正反案例来说明需求需要改进的地方 3.用户路径和触点推演需求合理性(三)权利需求:老板或者是强...

2021-10-26 22:06:30 134 1

空空如也

空空如也

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

TA关注的人

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