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精进之路》读书笔记。简要记录自己打五角星的部分,方便复习巩固。目前看到p120Go语言遵从的设计哲学为组合垂直组合:类型嵌入,快速让一个类型复用其他类型已经实现的能力,实现功能的垂直扩展。水平组合:接口实现鸭子类型。变量名字中不要带有类型信息userSlice[]*User[BAD]users[]*User[Good]编程语言命名的管理:保持变量声明与使用之间的距离越近越好,或者在第一次使用变量之前声明该变量。就近原则接口使用尽量定义小接口,并通过接口组合的方式构建程序。无类型常量无类型常量拥有字面值的特性,在参与变量赋值和计算过程时无需显式进行转换。无类型常量也拥有自己的默认类型(用于
《Go精进之路》读书笔记。简要记录自己打五角星的部分,方便复习巩固。目前看到p120Go语言遵从的设计哲学为组合垂直组合:类型嵌入,快速让一个类型复用其他类型已经实现的能力,实现功能的垂直扩展。水平组合:接口实现鸭子类型。变量名字中不要带有类型信息userSlice[]*User[BAD]users[]*User[Good]编程语言命名的管理:保持变量声明与使用之间的距离越近越好,或者在第一次使用变量之前声明该变量。就近原则接口使用尽量定义小接口,并通过接口组合的方式构建程序。无类型常量无类型常量拥有字面值的特性,在参与变量赋值和计算过程时无需显式进行转换。无类型常量也拥有自己的默认类型(用于
前言为何要学习代码?为何要学习这个代码?怎么学习这个代码?可不可以学习这个代码?能做什么,有什么目标? 基本的手机应用、简单的PC游戏应用、大数据平台;目标是以爱好为基准做一些游戏和程序;与Python优缺几何? 入门难度有区别;一个更面向程序员群体一个则面向费程序员群体;各有优缺;学习流程与时间? 若是类似早九晚六则大致在三个月左右,基础大约两个月;能学吗? 只要认真、持续、有反思的学习,可以的。如何弄懂一个概念?XXX是什么XXX从何而来XXX出现是为了解决什么问题XXX是自上而下推导的,还是自下而上抽象的?是前者由何推导,是后者由何抽象?(如果由技术抽象总结的概念,就去看技术具体
前言为何要学习代码?为何要学习这个代码?怎么学习这个代码?可不可以学习这个代码?能做什么,有什么目标? 基本的手机应用、简单的PC游戏应用、大数据平台;目标是以爱好为基准做一些游戏和程序;与Python优缺几何? 入门难度有区别;一个更面向程序员群体一个则面向费程序员群体;各有优缺;学习流程与时间? 若是类似早九晚六则大致在三个月左右,基础大约两个月;能学吗? 只要认真、持续、有反思的学习,可以的。如何弄懂一个概念?XXX是什么XXX从何而来XXX出现是为了解决什么问题XXX是自上而下推导的,还是自下而上抽象的?是前者由何推导,是后者由何抽象?(如果由技术抽象总结的概念,就去看技术具体
你真的会使用Typora吗?标题一级标题:#空格+内容二级标题:##空格+内容字体加粗:内容两边各加两个*号你真美!斜体:内容两边各加一个*号你真帅!删除线:两边各加两个~号(波浪号)我爱你引用:>+空格+内容2023和女朋友相约天津!分割线:---或***图片::本地或网络图均可!超链接:[链接名]+(地址)[欢迎来到我的博客](哲里的博客(cnblogs.com))列表:有序:1.+空格+内容;无序:-加空格你好你真棒!hellohi代码:```+回车(Tab键上面)publicstaticvoidmain(String[]args){ System.out.print
你真的会使用Typora吗?标题一级标题:#空格+内容二级标题:##空格+内容字体加粗:内容两边各加两个*号你真美!斜体:内容两边各加一个*号你真帅!删除线:两边各加两个~号(波浪号)我爱你引用:>+空格+内容2023和女朋友相约天津!分割线:---或***图片::本地或网络图均可!超链接:[链接名]+(地址)[欢迎来到我的博客](哲里的博客(cnblogs.com))列表:有序:1.+空格+内容;无序:-加空格你好你真棒!hellohi代码:```+回车(Tab键上面)publicstaticvoidmain(String[]args){ System.out.print
1.mysql排序问题一直以为mysql是按照主键排序的,实则排序和主键没有关系(不使用orderby子句)。然后从stackoverflow上查了一下,找到了以下的回答:没有默认的排序顺序。即使表具有聚集索引,也不能保证按该顺序获得结果。如果需要特定的顺序,则必须使用ORDERBY子句。2.线上问题2.1场景回顾定时任务查询A表数据(8万多),每次查询500条,根据业务更新B表数据(15万),同样每次查询500条数据然后更新,大概就这样的业务。2.2问题发现定时任务结束后,发现B表数据部分更新,执行3遍定时任务数据才会全部更新完。2.3排查问题首先想到就是定时任务没有将B表数据全部查询出来,
1.mysql排序问题一直以为mysql是按照主键排序的,实则排序和主键没有关系(不使用orderby子句)。然后从stackoverflow上查了一下,找到了以下的回答:没有默认的排序顺序。即使表具有聚集索引,也不能保证按该顺序获得结果。如果需要特定的顺序,则必须使用ORDERBY子句。2.线上问题2.1场景回顾定时任务查询A表数据(8万多),每次查询500条,根据业务更新B表数据(15万),同样每次查询500条数据然后更新,大概就这样的业务。2.2问题发现定时任务结束后,发现B表数据部分更新,执行3遍定时任务数据才会全部更新完。2.3排查问题首先想到就是定时任务没有将B表数据全部查询出来,
markdown语法标题一级标题:标题前加一个#和一个空格二级标题:标题前加两个#和一个空格三级标题:标题前加三个#和一个空格四级标题:标题前加四个#和一个空格五级标题:标题前加五个#和一个空格六级标题:标题前加六个#和一个空格不支持六级以上标题。。。字体粗体:字体两侧加上两个*HelloWorld斜体:字体两侧加上一个*HelloWorld斜体加粗:字体两侧加上三个*HelloWorld删除线:字体两侧加上两个~HelloWorld引用在引用的文字前加>引用可以嵌套,可以在引用的文字前加多个>这是一个>引用的内容这是两个>引用的内容这是三个>引用的内容分割线三个或三个以上的-或者*都可以三个