<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[StoneChan_的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/StoneChan_</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; StoneChan_]]></copyright><item><title><![CDATA[孤尽T31项目Day26]]></title><link>https://blog.youkuaiyun.com/StoneChan_/article/details/121538792</link><guid>https://blog.youkuaiyun.com/StoneChan_/article/details/121538792</guid><author>StoneChan_</author><pubDate>Thu, 25 Nov 2021 15:30:18 +0800</pubDate><description><![CDATA[孤尽T31项目Day26
系统健壮性设计
1 代码评审
什么样的是烂代码（人的视角）

维护者脏话的频率高
维护者脏话的类型丰富
存在打架斗殴的可能性
面向离职编程

什么是烂代码(代码视角)

不遵守代码规约
代码像迷宫
代码流程脚踩西瓜皮
代码的执行效率低
10行代码15 个bug

代码的恶性循环

业务催的紧直接写代码
到处灭火 更是没有时间CodeRevew
没时间填坑，却不断挖坑

星级程序员

写出计算机可以理解的代码
写出来自己未来可以理解得代码
写出来别人可以自我理解得代码

程序员的自我]]></description><category></category></item><item><title><![CDATA[孤尽T31项目Day24]]></title><link>https://blog.youkuaiyun.com/StoneChan_/article/details/121495740</link><guid>https://blog.youkuaiyun.com/StoneChan_/article/details/121495740</guid><author>StoneChan_</author><pubDate>Tue, 23 Nov 2021 16:26:00 +0800</pubDate><description><![CDATA[孤尽T31项目Day24
Redis分布式锁
1 分布式锁简介
在同一个JVM 内部，大家往往采用synchronized 或者Lock 的方式来解决多线程间的安全问题，但是在分布式架构下，在JVM 之间，那么就需要一种更佳高校的锁机制，来处理这种跨JVM 进程之间的线程安全问题，解决方案就是: 使用分布式锁。

2 Redis 分布式锁分析
2.1 Redis 分布式锁原理
Redis 分布式锁机制，主要借助setnx 和 expire 两个命令完成。

setnx  当key 不存在，将key 设置为v]]></description><category></category></item><item><title><![CDATA[孤尽T31项目Day22]]></title><link>https://blog.youkuaiyun.com/StoneChan_/article/details/121443051</link><guid>https://blog.youkuaiyun.com/StoneChan_/article/details/121443051</guid><author>StoneChan_</author><pubDate>Sat, 20 Nov 2021 18:15:42 +0800</pubDate><description><![CDATA[孤尽T31项目Day22
权限管理-JWT
1 JWT的简介
Json web token (JWT), 是为了在⽹络应⽤环境间传递声明⽽执⾏的⼀种基于JSON的开放标准（(RFC
7519).定义了⼀种简洁的，⾃包含的⽅法⽤于通信双⽅之间以JSON对象的形式安全的传递信息。因为数字签名的存在，这些信息是可信的，JWT可以使⽤HMAC算法或者是RSA的公私秘钥对进⾏签名。
2 JWT的组成
Header 头部
头部包含两部分，token的类型和采用的加密算法，使用Base64编码，组成JWT结构的第一部分。]]></description><category></category></item><item><title><![CDATA[孤尽T31项目Day20]]></title><link>https://blog.youkuaiyun.com/StoneChan_/article/details/121403063</link><guid>https://blog.youkuaiyun.com/StoneChan_/article/details/121403063</guid><author>StoneChan_</author><pubDate>Thu, 18 Nov 2021 16:08:13 +0800</pubDate><description><![CDATA[孤尽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]]></description><category></category></item><item><title><![CDATA[孤尽T31项目Day17]]></title><link>https://blog.youkuaiyun.com/StoneChan_/article/details/121337590</link><guid>https://blog.youkuaiyun.com/StoneChan_/article/details/121337590</guid><author>StoneChan_</author><pubDate>Mon, 15 Nov 2021 16:58:16 +0800</pubDate><description><![CDATA[孤尽T31项目Day17
OAuth2使用
OAuth2是目前最流行的授权框架，用来授权第三方应用，获取用户数据。
1 OAuth2的授权模式
授权码模式：最完整和严谨的授权模式，第三方平台登录都是使用的此模式。安全性最高
简化模式：省略授权码阶段，客户端是纯静态页面采用此模式。安全性较高
密码模式：把用户名密码告诉客户端，对客户端高度信任，比如客户端和认证服务是同一个公司。安全性一般
客户端模式：直接以客户端名义申请令牌，很少用。安全性最差
2 OAuth2实战
2.1 为什么使用OAuth2
单体架构：]]></description><category></category></item><item><title><![CDATA[孤尽T31项目Day15]]></title><link>https://blog.youkuaiyun.com/StoneChan_/article/details/121293180</link><guid>https://blog.youkuaiyun.com/StoneChan_/article/details/121293180</guid><author>StoneChan_</author><pubDate>Sat, 13 Nov 2021 17:13:20 +0800</pubDate><description><![CDATA[孤尽T31项目Day15
集合与并发编程
PS：这章已经听不懂了QAQ
1 集合规约
Collection 是总头领。Set, List, Queue 都继承自 Collection。

2 数据结构与时间复杂度
数据结构： 逻辑意义上的数据组织方式及其相应的处理方式。
数据组织方式： 线性结构；树结构；图结构；哈希结构；
数据处理方式： 增删改查

数据结构的优化与运算规模有关，也与调用频率有关。
2.1 HashMap
HashMap 具有多个slot，每个 slot 保存一个链表。当链表中的数据个数超]]></description><category></category></item><item><title><![CDATA[孤尽T31项目Day15]]></title><link>https://blog.youkuaiyun.com/StoneChan_/article/details/121250237</link><guid>https://blog.youkuaiyun.com/StoneChan_/article/details/121250237</guid><author>StoneChan_</author><pubDate>Wed, 10 Nov 2021 17:17:35 +0800</pubDate><description><![CDATA[孤尽T31项目Day15
编码避坑指南
1 浮点数处理
单精度存储：先整数部分转二进制，小数部分= 2的-n次幂相加。

精确的小数存储-dicimal：
MySQL：decimal(M,D) M：总长 D：小数长
JAVA：java.math.BigDicimal类
1.1 避坑指南
1、浮点数之间的等值判断，基本数据类型不能用==来比较，包装数据类型不能用equal比较。
避坑：用差值小于某极小数的方法。

BigDecimal的等值比较应该使用compareTo()方法，而不是equals()方式。
]]></description><category></category></item><item><title><![CDATA[孤尽T31项目Day12]]></title><link>https://blog.youkuaiyun.com/StoneChan_/article/details/121228750</link><guid>https://blog.youkuaiyun.com/StoneChan_/article/details/121228750</guid><author>StoneChan_</author><pubDate>Tue, 09 Nov 2021 15:58:32 +0800</pubDate><description><![CDATA[孤尽T31项目Day12
编码规约
1 命名风格和代码格式
1.1 两个要求
1 命名体现代码元素特征
抽象类命名使用Abstract或Base开头
异常类名使用Exception结尾
测试类名以它要测试的类的类名开头，以Test结尾
类型和中括号紧挨相连来定位数组
枚举类名带上Enum后缀，枚举成员名称需要全大写，单词间要用下划线隔开
2 命名最好望文知意
某些不规范的缩写会导致沟通成本的增加，比如condition写成condi
主流的编程语言基本上以英文为基础，此处望文知意指的就是英文
尽量不要用拼音]]></description><category></category></item><item><title><![CDATA[孤尽T31项目Day10]]></title><link>https://blog.youkuaiyun.com/StoneChan_/article/details/121183056</link><guid>https://blog.youkuaiyun.com/StoneChan_/article/details/121183056</guid><author>StoneChan_</author><pubDate>Sat, 06 Nov 2021 18:50:35 +0800</pubDate><description><![CDATA[孤尽T31项目Day8
技术架构选型
1 技术选型
1.1 微服务架构的产生—巨石应用
第一代单体应用，所有的模块打包到一起部署运行；
例如打包一个War包放到一个Tomcat下运行，这种架构
也叫巨石型应用架构，在开发小型项目上有独特优势：
易于调试、部署，运维方便。
缺点
1、不可靠。任何模块的一个bug，可能拖垮整个应用
2、单维扩展。只能通过运行更多的服务器水平扩展，
而不同的应用服务对资源的需求不同
3、不可持续发展。引入新的框架或语言需要重构所有
业务模块，往往需要在初期就选定技术栈

1.2 ]]></description><category></category></item><item><title><![CDATA[孤尽T31项目Day8]]></title><link>https://blog.youkuaiyun.com/StoneChan_/article/details/121117775</link><guid>https://blog.youkuaiyun.com/StoneChan_/article/details/121117775</guid><author>StoneChan_</author><pubDate>Wed, 03 Nov 2021 17:32:52 +0800</pubDate><description><![CDATA[孤尽T31项目Day8
工程结构规约
1 Day1作业





2 应用分层
为什么要分层： 可扩展性、可维护性
计算机领域的任何问题都可以通过增加一个中间层解决
2.1 MVC框架模式
Model（模型） - 模型代表一个存取数据的对象或 JAVA POJO。它也可以带有逻辑，在数据变化时更新控制器。
View（视图） - 视图代表模型包含的数据的可视化。
Controller（控制器） - 控制器作用于模型和视图上。它控制数据流向模型对象，并在数据变化时更新视图。它使视图与模型分离开。
MVC模式实现]]></description><category></category></item><item><title><![CDATA[孤尽T31项目Day5]]></title><link>https://blog.youkuaiyun.com/StoneChan_/article/details/121099848</link><guid>https://blog.youkuaiyun.com/StoneChan_/article/details/121099848</guid><author>StoneChan_</author><pubDate>Tue, 02 Nov 2021 14:35:34 +0800</pubDate><description><![CDATA[孤尽T31项目Day5
异常处理与日志
1 JAVA异常机制
1.1 JAVA 中的异常要求：
1、异常应当描述导致当前异常发生的原因
2、需跟进异常栈快速定位到异常发生的位置
3、结合异常描述和异常栈解决异常
1.2 Java异常处理流程

异常处理机制：生成异常、捕获异常、抛出异常 throw、声明异常throws
1.3 Java异常体系

1.4 异常抛出与捕获原则
1、非不要不适用异常
2、使用描述性消息抛出异常
3、力所能及的异常一定要处理
4、异常忽略要有理有据
1.5 try-catch-f]]></description><category></category></item><item><title><![CDATA[孤尽T31项目Day3]]></title><link>https://blog.youkuaiyun.com/StoneChan_/article/details/121049949</link><guid>https://blog.youkuaiyun.com/StoneChan_/article/details/121049949</guid><author>StoneChan_</author><pubDate>Sat, 30 Oct 2021 13:47:59 +0800</pubDate><description><![CDATA[孤尽T31项目Day3
Mysql设计规范
一、建表规约
- 表、字段的命名
1、必须使用小写字母或数字。
2、禁止出现数字开头。
3、禁止两个下划线中间只出现数字。
4、不使用复数名词。
5、禁用保留字。
6、是与否概念的字段，必须使用is_xxx的方式命名。
- 数据类型
1、小数类型为decimal。
2、货币数据使用最小货币单位，数据类型为bigint。
3、字符串长度几乎相等使用char。
4、varchar长度不要超过5000.
- 表必备三字段
id、create_time、update_ti]]></description><category></category></item><item><title><![CDATA[孤尽T31项目Day1]]></title><link>https://blog.youkuaiyun.com/StoneChan_/article/details/121010405</link><guid>https://blog.youkuaiyun.com/StoneChan_/article/details/121010405</guid><author>StoneChan_</author><pubDate>Thu, 28 Oct 2021 14:56:30 +0800</pubDate><description><![CDATA[孤尽T31项目class1
1 架构设计
1.1 T31项目简介
12306购票网站
1.2 需求分析
理解和挖掘用户的诉求、以及背后的逻辑，转化成可行性的分析结果。
边界
用户故事
用户路径
分析背后的人性：人性是提出需求的本源
需求落地路径：需求分析-&gt;可行性-&gt;设计-&gt;编码-&gt;测试-&gt;发布
1.2.1 T31的需求

1.3 KISS原则&amp;DRY原则
1.3.1 KISS原则
Keep it Simple and Smile
Simple：大道至简，可拓展性、可维]]></description><category></category></item><item><title><![CDATA[coursera机器学习吴恩达-学习笔记-第三周]]></title><link>https://blog.youkuaiyun.com/StoneChan_/article/details/111273464</link><guid>https://blog.youkuaiyun.com/StoneChan_/article/details/111273464</guid><author>StoneChan_</author><pubDate>Wed, 16 Dec 2020 19:47:58 +0800</pubDate><description><![CDATA[coursera机器学习吴恩达-学习笔记-第二周
1 logistic回归算法：二元分类

这里得出的hθ(x)h_\theta(x)hθ​(x)取值在0~1之间，在加入蓝圈的点之前，线性回归得出了紫色直线，整体上看符合需求，Tumor Size代入直线方程，如果得到的结果大于0.5则认为是恶性的。但是在加入蓝圈的样本时，线性回归的到的蓝色直线向下倾斜了，而此时的样本已经有恶性的样本被预测为了良性。所以线性回归不适合这类的问题。
2 假设陈述 Hypothesis Representation
根据0≤hθ]]></description><category></category></item><item><title><![CDATA[coursera机器学习吴恩达-学习笔记-第二周]]></title><link>https://blog.youkuaiyun.com/StoneChan_/article/details/108069454</link><guid>https://blog.youkuaiyun.com/StoneChan_/article/details/108069454</guid><author>StoneChan_</author><pubDate>Tue, 18 Aug 2020 10:02:15 +0800</pubDate><description><![CDATA[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，或标准差，但一般用最大]]></description><category></category></item><item><title><![CDATA[coursera机器学习吴恩达-学习笔记-第一周]]></title><link>https://blog.youkuaiyun.com/StoneChan_/article/details/108009953</link><guid>https://blog.youkuaiyun.com/StoneChan_/article/details/108009953</guid><author>StoneChan_</author><pubDate>Mon, 17 Aug 2020 20:35:10 +0800</pubDate><description><![CDATA[这里写自定义目录标题coursera机器学习吴恩达-学习笔记-第一周监督学习和非监督学习功能快捷键合理的创建标题，有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能，丰富你的文章UML 图表FLowchart流程图导出与导入导出导入
coursera机器学习吴恩达-学习笔记-第一周
监督学习和非监督学习
监督学习包括：回归算法]]></description><category></category></item></channel></rss>