草庐IT

读C#代码整洁之道笔记03_切面关注点、异常处理和线程与并发

1. 核心关注点1.1. 开发软件的原因2. 切面关注点2.1. 所有的代码领域都需要处理相关的问题3. 结构化模式3.1. 装饰器模式3.1.1. 可以在现有对象上添加新的功能,而不改变其结构3.2. 代理模式3.2.1. 所提供的对象可以替代客户端使用的实际服务对象4. 使用PostSharp实现AOP4.1. 收费软件4.2. 缓存4.3. 日志4.4. 异常4.5. 安全4.6. 验证4.7. 事务4.8. 资源池4.9. 配置4.10. 检测4.11. 推荐使用Castle5. 异常处理5.1. unchecked模式5.1.1. 改善性能5.1.2. 很多情况下unchecked模

《Go 精进之路》 读书笔记 (第一次更新)

《Go精进之路》读书笔记。简要记录自己打五角星的部分,方便复习巩固。目前看到p120Go语言遵从的设计哲学为组合垂直组合:类型嵌入,快速让一个类型复用其他类型已经实现的能力,实现功能的垂直扩展。水平组合:接口实现鸭子类型。变量名字中不要带有类型信息userSlice[]*User[BAD]users[]*User[Good]编程语言命名的管理:保持变量声明与使用之间的距离越近越好,或者在第一次使用变量之前声明该变量。就近原则接口使用尽量定义小接口,并通过接口组合的方式构建程序。无类型常量无类型常量拥有字面值的特性,在参与变量赋值和计算过程时无需显式进行转换。无类型常量也拥有自己的默认类型(用于

《Go 精进之路》 读书笔记 (第一次更新)

《Go精进之路》读书笔记。简要记录自己打五角星的部分,方便复习巩固。目前看到p120Go语言遵从的设计哲学为组合垂直组合:类型嵌入,快速让一个类型复用其他类型已经实现的能力,实现功能的垂直扩展。水平组合:接口实现鸭子类型。变量名字中不要带有类型信息userSlice[]*User[BAD]users[]*User[Good]编程语言命名的管理:保持变量声明与使用之间的距离越近越好,或者在第一次使用变量之前声明该变量。就近原则接口使用尽量定义小接口,并通过接口组合的方式构建程序。无类型常量无类型常量拥有字面值的特性,在参与变量赋值和计算过程时无需显式进行转换。无类型常量也拥有自己的默认类型(用于

LESSON TWO : 前言和基础知识

前言为何要学习代码?为何要学习这个代码?怎么学习这个代码?可不可以学习这个代码?能做什么,有什么目标?​ 基本的手机应用、简单的PC游戏应用、大数据平台;目标是以爱好为基准做一些游戏和程序;与Python优缺几何?​ 入门难度有区别;一个更面向程序员群体一个则面向费程序员群体;各有优缺;学习流程与时间?​ 若是类似早九晚六则大致在三个月左右,基础大约两个月;能学吗?​ 只要认真、持续、有反思的学习,可以的。如何弄懂一个概念?XXX是什么XXX从何而来XXX出现是为了解决什么问题XXX是自上而下推导的,还是自下而上抽象的?是前者由何推导,是后者由何抽象?(如果由技术抽象总结的概念,就去看技术具体

LESSON TWO : 前言和基础知识

前言为何要学习代码?为何要学习这个代码?怎么学习这个代码?可不可以学习这个代码?能做什么,有什么目标?​ 基本的手机应用、简单的PC游戏应用、大数据平台;目标是以爱好为基准做一些游戏和程序;与Python优缺几何?​ 入门难度有区别;一个更面向程序员群体一个则面向费程序员群体;各有优缺;学习流程与时间?​ 若是类似早九晚六则大致在三个月左右,基础大约两个月;能学吗?​ 只要认真、持续、有反思的学习,可以的。如何弄懂一个概念?XXX是什么XXX从何而来XXX出现是为了解决什么问题XXX是自上而下推导的,还是自下而上抽象的?是前者由何推导,是后者由何抽象?(如果由技术抽象总结的概念,就去看技术具体

Typora基本操作快捷键大全

你真的会使用Typora吗?标题一级标题:#空格+内容二级标题:##空格+内容字体加粗:内容两边各加两个*号你真美!斜体:内容两边各加一个*号你真帅!删除线:两边各加两个~号(波浪号)我爱你引用:>+空格+内容2023和女朋友相约天津!分割线:---或***图片:![图片名](地址):本地或网络图均可!超链接:[链接名]+(地址)[欢迎来到我的博客](哲里的博客(cnblogs.com))列表:有序:1.+空格+内容;无序:-加空格你好你真棒!hellohi代码:```+回车(Tab键上面)publicstaticvoidmain(String[]args){ System.out.print

Typora基本操作快捷键大全

你真的会使用Typora吗?标题一级标题:#空格+内容二级标题:##空格+内容字体加粗:内容两边各加两个*号你真美!斜体:内容两边各加一个*号你真帅!删除线:两边各加两个~号(波浪号)我爱你引用:>+空格+内容2023和女朋友相约天津!分割线:---或***图片:![图片名](地址):本地或网络图均可!超链接:[链接名]+(地址)[欢迎来到我的博客](哲里的博客(cnblogs.com))列表:有序:1.+空格+内容;无序:-加空格你好你真棒!hellohi代码:```+回车(Tab键上面)publicstaticvoidmain(String[]args){ System.out.print

mysql扫描全表更新状态部分失败

1.mysql排序问题一直以为mysql是按照主键排序的,实则排序和主键没有关系(不使用orderby子句)。然后从stackoverflow上查了一下,找到了以下的回答:没有默认的排序顺序。即使表具有聚集索引,也不能保证按该顺序获得结果。如果需要特定的顺序,则必须使用ORDERBY子句。2.线上问题2.1场景回顾定时任务查询A表数据(8万多),每次查询500条,根据业务更新B表数据(15万),同样每次查询500条数据然后更新,大概就这样的业务。2.2问题发现定时任务结束后,发现B表数据部分更新,执行3遍定时任务数据才会全部更新完。2.3排查问题首先想到就是定时任务没有将B表数据全部查询出来,

mysql扫描全表更新状态部分失败

1.mysql排序问题一直以为mysql是按照主键排序的,实则排序和主键没有关系(不使用orderby子句)。然后从stackoverflow上查了一下,找到了以下的回答:没有默认的排序顺序。即使表具有聚集索引,也不能保证按该顺序获得结果。如果需要特定的顺序,则必须使用ORDERBY子句。2.线上问题2.1场景回顾定时任务查询A表数据(8万多),每次查询500条,根据业务更新B表数据(15万),同样每次查询500条数据然后更新,大概就这样的业务。2.2问题发现定时任务结束后,发现B表数据部分更新,执行3遍定时任务数据才会全部更新完。2.3排查问题首先想到就是定时任务没有将B表数据全部查询出来,

markdown语法

markdown语法标题一级标题:标题前加一个#和一个空格二级标题:标题前加两个#和一个空格三级标题:标题前加三个#和一个空格四级标题:标题前加四个#和一个空格五级标题:标题前加五个#和一个空格六级标题:标题前加六个#和一个空格不支持六级以上标题。。。字体粗体:字体两侧加上两个*HelloWorld斜体:字体两侧加上一个*HelloWorld斜体加粗:字体两侧加上三个*HelloWorld删除线:字体两侧加上两个~HelloWorld引用在引用的文字前加>引用可以嵌套,可以在引用的文字前加多个>这是一个>引用的内容这是两个>引用的内容这是三个>引用的内容分割线三个或三个以上的-或者*都可以三个