自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 孤尽T31项目Day26

孤尽T31项目Day26系统健壮性设计1 代码评审什么样的是烂代码(人的视角)维护者脏话的频率高维护者脏话的类型丰富存在打架斗殴的可能性面向离职编程什么是烂代码(代码视角)不遵守代码规约代码像迷宫代码流程脚踩西瓜皮代码的执行效率低10行代码15 个bug代码的恶性循环业务催的紧直接写代码到处灭火 更是没有时间CodeRevew没时间填坑,却不断挖坑星级程序员写出计算机可以理解的代码写出来自己未来可以理解得代码写出来别人可以自我理解得代码程序员的自我

2021-11-25 15:30:18 156

原创 孤尽T31项目Day24

孤尽T31项目Day24Redis分布式锁1 分布式锁简介在同一个JVM 内部,大家往往采用synchronized 或者Lock 的方式来解决多线程间的安全问题,但是在分布式架构下,在JVM 之间,那么就需要一种更佳高校的锁机制,来处理这种跨JVM 进程之间的线程安全问题,解决方案就是: 使用分布式锁。2 Redis 分布式锁分析2.1 Redis 分布式锁原理Redis 分布式锁机制,主要借助setnx 和 expire 两个命令完成。setnx 当key 不存在,将key 设置为v

2021-11-23 16:26:00 142

原创 孤尽T31项目Day22

孤尽T31项目Day22权限管理-JWT1 JWT的简介Json web token (JWT), 是为了在⽹络应⽤环境间传递声明⽽执⾏的⼀种基于JSON的开放标准((RFC7519).定义了⼀种简洁的,⾃包含的⽅法⽤于通信双⽅之间以JSON对象的形式安全的传递信息。因为数字签名的存在,这些信息是可信的,JWT可以使⽤HMAC算法或者是RSA的公私秘钥对进⾏签名。2 JWT的组成Header 头部头部包含两部分,token的类型和采用的加密算法,使用Base64编码,组成JWT结构的第一部分。

2021-11-20 18:15:42 155

原创 孤尽T31项目Day20

孤尽T31项目Day20单元测试与系统安全规约1 单元测试规约1.1 研发与测试周期的W模型1.2 单元测试的AIR原则R:可重复性I : 独立性A: 自动化性1.3 单元测试的BCDE 原则B: Border 边界测试C: Corret 正确的输入, 并得到预期的结果E: Error 证明程序有错D: Design 与设计文档相结合1.4 常见单元测试框架介绍2 安全系统规约2.1 越权访问漏洞防范措施越权访问漏洞 越权访问(Broken Access C

2021-11-18 16:08:13 147

原创 孤尽T31项目Day17

孤尽T31项目Day17OAuth2使用OAuth2是目前最流行的授权框架,用来授权第三方应用,获取用户数据。1 OAuth2的授权模式授权码模式:最完整和严谨的授权模式,第三方平台登录都是使用的此模式。安全性最高简化模式:省略授权码阶段,客户端是纯静态页面采用此模式。安全性较高密码模式:把用户名密码告诉客户端,对客户端高度信任,比如客户端和认证服务是同一个公司。安全性一般客户端模式:直接以客户端名义申请令牌,很少用。安全性最差2 OAuth2实战2.1 为什么使用OAuth2单体架构:

2021-11-15 16:58:16 793

原创 孤尽T31项目Day15

孤尽T31项目Day15集合与并发编程PS:这章已经听不懂了QAQ1 集合规约Collection 是总头领。Set, List, Queue 都继承自 Collection。2 数据结构与时间复杂度数据结构: 逻辑意义上的数据组织方式及其相应的处理方式。数据组织方式: 线性结构;树结构;图结构;哈希结构;数据处理方式: 增删改查数据结构的优化与运算规模有关,也与调用频率有关。2.1 HashMapHashMap 具有多个slot,每个 slot 保存一个链表。当链表中的数据个数超

2021-11-13 17:13:20 766

原创 孤尽T31项目Day15

孤尽T31项目Day15编码避坑指南1 浮点数处理单精度存储:先整数部分转二进制,小数部分= 2的-n次幂相加。精确的小数存储-dicimal:MySQL:decimal(M,D) M:总长 D:小数长JAVA:java.math.BigDicimal类1.1 避坑指南1、浮点数之间的等值判断,基本数据类型不能用==来比较,包装数据类型不能用equal比较。避坑:用差值小于某极小数的方法。BigDecimal的等值比较应该使用compareTo()方法,而不是equals()方式。

2021-11-10 17:17:35 319

原创 孤尽T31项目Day12

孤尽T31项目Day12编码规约1 命名风格和代码格式1.1 两个要求1 命名体现代码元素特征抽象类命名使用Abstract或Base开头异常类名使用Exception结尾测试类名以它要测试的类的类名开头,以Test结尾类型和中括号紧挨相连来定位数组枚举类名带上Enum后缀,枚举成员名称需要全大写,单词间要用下划线隔开2 命名最好望文知意某些不规范的缩写会导致沟通成本的增加,比如condition写成condi主流的编程语言基本上以英文为基础,此处望文知意指的就是英文尽量不要用拼音

2021-11-09 15:58:32 118

原创 孤尽T31项目Day10

孤尽T31项目Day8技术架构选型1 技术选型1.1 微服务架构的产生—巨石应用第一代单体应用,所有的模块打包到一起部署运行;例如打包一个War包放到一个Tomcat下运行,这种架构也叫巨石型应用架构,在开发小型项目上有独特优势:易于调试、部署,运维方便。缺点1、不可靠。任何模块的一个bug,可能拖垮整个应用2、单维扩展。只能通过运行更多的服务器水平扩展,而不同的应用服务对资源的需求不同3、不可持续发展。引入新的框架或语言需要重构所有业务模块,往往需要在初期就选定技术栈1.2

2021-11-06 18:50:35 262

原创 孤尽T31项目Day8

孤尽T31项目Day8工程结构规约1 Day1作业2 应用分层为什么要分层: 可扩展性、可维护性计算机领域的任何问题都可以通过增加一个中间层解决2.1 MVC框架模式Model(模型) - 模型代表一个存取数据的对象或 JAVA POJO。它也可以带有逻辑,在数据变化时更新控制器。View(视图) - 视图代表模型包含的数据的可视化。Controller(控制器) - 控制器作用于模型和视图上。它控制数据流向模型对象,并在数据变化时更新视图。它使视图与模型分离开。MVC模式实现

2021-11-03 17:32:52 110

原创 孤尽T31项目Day5

孤尽T31项目Day5异常处理与日志1 JAVA异常机制1.1 JAVA 中的异常要求:1、异常应当描述导致当前异常发生的原因2、需跟进异常栈快速定位到异常发生的位置3、结合异常描述和异常栈解决异常1.2 Java异常处理流程异常处理机制:生成异常、捕获异常、抛出异常 throw、声明异常throws1.3 Java异常体系1.4 异常抛出与捕获原则1、非不要不适用异常2、使用描述性消息抛出异常3、力所能及的异常一定要处理4、异常忽略要有理有据1.5 try-catch-f

2021-11-02 14:35:34 91

原创 孤尽T31项目Day3

孤尽T31项目Day3Mysql设计规范一、建表规约- 表、字段的命名1、必须使用小写字母或数字。2、禁止出现数字开头。3、禁止两个下划线中间只出现数字。4、不使用复数名词。5、禁用保留字。6、是与否概念的字段,必须使用is_xxx的方式命名。- 数据类型1、小数类型为decimal。2、货币数据使用最小货币单位,数据类型为bigint。3、字符串长度几乎相等使用char。4、varchar长度不要超过5000.- 表必备三字段id、create_time、update_ti

2021-10-30 13:47:59 187

原创 孤尽T31项目Day1

孤尽T31项目class11 架构设计1.1 T31项目简介12306购票网站1.2 需求分析理解和挖掘用户的诉求、以及背后的逻辑,转化成可行性的分析结果。边界用户故事用户路径分析背后的人性:人性是提出需求的本源需求落地路径:需求分析->可行性->设计->编码->测试->发布1.2.1 T31的需求1.3 KISS原则&DRY原则1.3.1 KISS原则Keep it Simple and SmileSimple:大道至简,可拓展性、可维

2021-10-28 14:56:30 635

原创 coursera机器学习吴恩达-学习笔记-第三周

coursera机器学习吴恩达-学习笔记-第二周1 logistic回归算法:二元分类这里得出的hθ(x)h_\theta(x)hθ​(x)取值在0~1之间,在加入蓝圈的点之前,线性回归得出了紫色直线,整体上看符合需求,Tumor Size代入直线方程,如果得到的结果大于0.5则认为是恶性的。但是在加入蓝圈的样本时,线性回归的到的蓝色直线向下倾斜了,而此时的样本已经有恶性的样本被预测为了良性。所以线性回归不适合这类的问题。2 假设陈述 Hypothesis Representation根据0≤hθ

2020-12-16 19:47:58 264

原创 coursera机器学习吴恩达-学习笔记-第二周

coursera机器学习吴恩达-学习笔记-第一周1 梯度下降算法的特征缩放(Feature scaling)1.1特征缩放将整体除以最大的数,如x∈(1,100)x\in(1,100)x∈(1,100),特征缩放后x∈(0.01,1)x\in(0.01,1)x∈(0.01,1)。1.2均值归一化xi:=xi−μisix_i:=\frac{x_i-\mu_i}{s_i}xi​:=si​xi​−μi​​其中μi\mu_iμi​为所有值的平均值,sis_isi​为max-min,或标准差,但一般用最大

2020-08-18 10:02:15 300

原创 coursera机器学习吴恩达-学习笔记-第一周

这里写自定义目录标题coursera机器学习吴恩达-学习笔记-第一周监督学习和非监督学习功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入coursera机器学习吴恩达-学习笔记-第一周监督学习和非监督学习监督学习包括:回归算法

2020-08-17 20:35:10 130

空空如也

空空如也

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

TA关注的人

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