![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
T31
文章平均质量分 74
ChichiZhou
这个作者很懒,什么都没留下…
展开
-
DayXX 系统健壮性设计
代码评审烂代码的标准 不遵守diam规约 代码像迷宫 代码流程复杂或不清楚 代码执行效率低 bug 多 烂代码的后果死循环: 不断出现的坑 -> 进度紧张 -> 到处灭火对自己的要求1.写出计算机能理解的代码2.写出自己未来可以理解的代码3.写出别人可以自我理解的代码CR 常用的工具PhabricatorGerritCheckStyle实战健壮性健壮性的定义:在遇原创 2021-11-30 15:59:04 · 356 阅读 · 0 评论 -
DAY XX Redis 分布式锁
Day XX 分布式锁单个服务加锁:使用 synchronized 或者 lock分布式架构:多个服务同时运行时,需要对这些服务进行加锁。Redis 分布式锁原理使用到的命令setnx 加锁expire 设置锁过期时间使用 set 同时设置过期时间set lock "1234" EX 100NX使用 lua 脚本eval "return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}" 2 key1 key2 first原创 2021-11-23 17:53:35 · 573 阅读 · 0 评论 -
Day XX 用户系统实现
JWTJWT (Json web token)是为了在网络应用环境间传递声明而执行的一种基于JSON开放标准的一种间接的,自包含的方法用于通信双方之间以JSON对象的形式安全的传递信息。因为数字签名的存在,这些信息是可信的,JWT 可以使用HMAC算法或者RSA的公私钥进行签名。JWT 的最大特点:可以签名。所以可以减少令牌校验的次数。签名:作用是防止header 和 payload 被篡改。签名是加密的。JWT 的组成Header包含:token类型 和 加密算法P原创 2021-11-23 17:15:58 · 122 阅读 · 0 评论 -
Day XX 单元测试
单元测试的原因测试的目的单元测试是对软件组成单元进行的测试。其目的是检验软件基本组成单位的正确性。要先做单元测试,然后再集成测试。否则集成测试全是 bug 。单元测试的目的: 验证软件的正确性,稳定性 找出程序中的 bug 单元测试的益处:提高软件之类;促进代码优化;提升研发效率;单元测试的进行时间边写码 边测试 Unit Test最后集成测试:性能测试 + 稳定性测试单元测试的内容单元测试的 AIR 原则A:自原创 2021-11-23 15:52:52 · 219 阅读 · 0 评论 -
DAY XX OAuth
Day XX OAuth2OAuth 的概念OAuth 是一个协议。具体的实现有JAVA Python 等方法。其作用是用来授权某个操作。拿到这个授权之后可以有操作的权限。OAuth 与 密码的区别OAuth 是短期的,自动失效;OAuth 可以撤销;OAuth 有权限范围OAuth 的结构OAuth 分为Resource Owner资源拥有者,一般指用户Client需要请求资源的服务Authorization Server能够纷发 t原创 2021-11-23 14:59:37 · 322 阅读 · 0 评论 -
Day XX 集合与并发
集合规约JAVA 中集合之间的相互关系如下所示:Collection 是总头领。Set, List, Queue 都继承自 Collection。数据结构数据结构定义:逻辑意义上的数据组织方式及其相应的处理方式。数据组织方式:线性结构;树结构;图结构;哈希结构;处理方式:增删改查数据结构的优化与运算规模有关,也与调用频率有关。所以具体采用什么数据结构,要集合实际情况。HashMapHashMap 的基本概念HashMap 具有多个slo原创 2021-11-12 15:01:25 · 726 阅读 · 0 评论 -
Day11 JAVA 坑
Day11 JAVA 避坑指南摘要本文关于 JAVA 中出现的坑进行说明。浮点数处理背景数的表示范围是有限的。整型可以精确的表示一个数据,浮点数近似表示一个数据???单精度的数据存储格式使用浮点数可能导致的结果:精度丢失。单精度数据的存储格式是以 有效数字 + 指数 的方法存储的。浮点数避坑方法 浮点数之间的等值判断,基本数据类型不能用 == 来比较。包装数据类型不能用 equals 来判断。 BigDecimal 的等值比较应使用 compa原创 2021-11-10 16:16:27 · 467 阅读 · 0 评论 -
Day 10 编码规范
摘要本文主要关于写码时需要遵守的约定。这些约定能够提高团队协作,并降低维护成本。背景代码是不断成长的,在成长的过程中,有逐渐变得混乱的趋势。所以需要通过遵守编码公约尽量降低混乱的增加速度。编码规约的最主要目的是为了方便协作(共同开发,后期维护)好的编码规约的作用: 减少代码维护成本; 改善可读性 提高团队开发的合作效率 锻炼出更严谨的思维 代码模式与命名风格命令体现代码元素特征 抽象类命名使用 Abstract 或 Base原创 2021-11-07 14:43:47 · 98 阅读 · 0 评论 -
Day 9 技术选型
摘要本文主要用来描述哪些方面需要选型以及如何选型。背景选型的目的 降低开发成本 提高开发效率 技术架构的分类单体应用缺点: 各模块之间耦合。任何一个更新可能会造成其它模块的 bug 不利于扩展。只能进行单维度扩展;当引入新的框架或语言时,需要重构所有业务模块。 SOA缺点: ESB 成为 bottle neck 服务的拆分粒度太大。 微服务将一个功能变成一个模块;是去中心化的SOA拓展。在设计上更多的是自原创 2021-11-05 12:50:11 · 139 阅读 · 0 评论 -
Day8 项目结构
摘要本文主要关于项目结构及maven概述。目的在于搭建起整个项目的模块骨架,并且导入 jar 依赖。项目分层分层概括凡是整体项目,都需要进行分层。分层之后的效果:隐藏下层实现逻辑。分层的目的: 提高复用性:分层之后每个模块之间是松散状态。每个模块可被别的项目使用。 有利于扩展:直接增加某个模块即可 有利于维护:当某个模块不工作或者需要替换时,可直接停掉此模块,并用另一个模块进行替换。 推荐的分层结构通用的分层模式:MVC这样分层可以更好的原创 2021-11-03 15:04:01 · 1272 阅读 · 0 评论 -
Day5 异常与日志
摘要本文注意关于 JAVA 异常和日志的使用方法及注意事项。概述JAVA 中的异常处理,比别的语言都要优秀。使用异常和日志的目的是为了便于后续的维护。JAVA 中的异常要求: 异常应当描述导致当前异常发生的原因 需跟进异常栈快速定位到异常发生的位置 结合异常描述和异常栈解决异常 异常的分类ErrorExceptionRuntimeExcepotion unChecked可预测异常;需捕捉异常;可投出异常;Checked原创 2021-10-31 17:57:40 · 115 阅读 · 0 评论 -
Day4 MySQL 框架学习
摘要本文主关于 MySQL 框架的问题。主要涉及 InnoDB 引擎。MySQL 目录结构研究 MySQL 的目录,主要目的在于研究配置文件、数据目录、日志文件等。在 Linux 操作系统下,MySQL 目录结构如下:配置文件:/etc/my.cnf这里包含所有 MySQL 的配置参数。如果要修改 MySQL 配置参数,则需要重启 MySQL数据目录:/var/lib/mysql这里包含 MySQL 的表文件。每一个 DB 对应一个文件夹。MySQL 逻辑原创 2021-10-30 17:24:19 · 115 阅读 · 0 评论 -
Day3 MySQL
摘要数据库设计同样是项目进行过程中的一个重要的部分。本文主要研究数据库设计的规约和方法。背景了解数据库设计规约的目的:主要为了方便SDE之间的沟通交流,并且为了防止踩了某些坑。设计规约与踩坑规约表、字段的命名规则 小写字母,数字,下划线 禁止使用数字开头 不使用复数名词 禁用保留字 是与否概念的字段,必须使用 is_XXX 的方式命名 表中必备三个字段idcreate_timeupdate_time表名原创 2021-10-29 12:47:46 · 108 阅读 · 0 评论 -
Day2 UML 图
摘要Day2 主要任务是画出系统用例图,状态图,时序图,类图,活动图。主要训练对模块的划分以,对OOD的理解。用例图用例图为了表现系统能够为某个用户提供什么样的服务。让SDE能够理解需要开发哪些服务以及这些服务之间的关系。用例图包括的元素: 参与者; 用例; 关系; 参与者参与者是系统外的一个实体,它以某种方式参与到用例的执行过程中。参与者分为以下几类: 真实的人:系统用户 其它系统 一些运行的进程(比如说时间,到了某个原创 2021-10-28 16:45:07 · 136 阅读 · 0 评论 -
Day 1 系统设计先导
摘要在开发一个项目之前需要首先清楚地明白自己需要做什么。需要达到什么样的效果,采用怎样的技术路线去实现自己想要的效果。这就需要通过对需求的分析,得到项目的架构Situation 需求分析人性是提出需求的本源,通过分析 人性 来抓住 用户诉求。需求分析角度明确以下三方面: 边界:哪些是需要自己做的,哪些是不需要自己做的。 用户故事:能够以用户的角度,结合不同的用户场景,走完所有用户诉求。 用户路径:实现某种功能所需要的步骤。用户路径尽可能的短。 需求分原创 2021-10-27 12:16:53 · 83 阅读 · 0 评论