11 2019 档案

2. 阿里巴巴Java开发手册主题 - MySQL数据库
摘要:建表规约 命名 强制 表达是与否概念的字段,必须使用is_xxx的方式命名,数据类型是unsigned tinyint(1表示是,0表示否)。 说明:任何字段如果为非负数,必须是unsigned。 注意:POJO类中的任何布尔类型的变量,都不要加is前缀,所以,需要在<resultMap>设置从is 阅读全文

posted @ 2019-11-29 15:54 碎羽love星谊 阅读(394) 评论(0) 推荐(0)

2. 阿里巴巴Java开发手册主题 - 工程结构
摘要:应用分层 推荐 图中默认上层依赖于下层,箭头关系表示可直接依赖,如:开放接口层可以依赖于Web层,也可以直接依赖于Service层,依此类推: 开放接口层:可直接封装Service方法暴露成RPC接口;通过Web封装成http接口;进行网关安全控制、流量控制等。 终端显示层:各个端的模板渲染并执行显 阅读全文

posted @ 2019-11-28 11:30 碎羽love星谊 阅读(465) 评论(0) 推荐(0)

2. 阿里巴巴Java开发手册主题 - 设计
摘要:UML建模 强制 在需求分析阶段,如果与系统交互的User超过一类并且相关的User Case超过5个,使用用例图来表达更加清晰的结构化需求。 如果某个业务对象的状态超过3个,使用状态图来表达并且明确状态变化的各个触发条件。 说明:状态图的核心是对象状态,首先明确对象有多少种状态,然后明确两两状态之 阅读全文

posted @ 2019-11-27 11:25 碎羽love星谊 阅读(185) 评论(0) 推荐(0)

2. 阿里巴巴Java开发手册主题 - 单元测试
摘要:经验总结 最终目的是,使用不同的参数调用一次或多次被测函数,保证跑到所有的分支代码。 如果有返回值,每种情况的返回值要进行判断是否符合预期。 如果依赖其他函数、接口等,那么要进行mock,且mock的数据的结构和值要合适,这样才能跑到所有的分支并保持正确的逻辑。且并不关心被依赖的函数或接口的逻辑,只 阅读全文

posted @ 2019-11-26 17:19 碎羽love星谊 阅读(601) 评论(0) 推荐(0)

CSRF攻击
摘要:CSRF攻击能够成功,是因为黑客可以完全伪造用户的请求,该请求中所有的用户验证信息都是存在于cookie中,因此黑客可以在不知道这些验证信息的情况下直接利用用户自己的cookie来通过安全验证。 关键是验证授权用户和发起请求者是否是同一个人。 要抵御 CSRF,关键在于在请求中放入黑客所不能伪造的信 阅读全文

posted @ 2019-11-26 16:27 碎羽love星谊 阅读(170) 评论(0) 推荐(0)

Java的产生
摘要:C语言帝国 贴近硬件,运行极快,效率极高。 指针和内存管理 虽然指针强大无比,能直接操作内存,但是没有提供工具去做越界的检查,导致新手程序员很容易出错。 放任内存管理,自己分配的空间自己去释放。 关键这些问题编译期不能发现,运行后才出问题,调试麻烦。 代码的可移植性事实上并不好,需要使用标准库才行。 阅读全文

posted @ 2019-11-26 16:12 碎羽love星谊 阅读(106) 评论(0) 推荐(0)

持久化与JDBC与OR框架
摘要:持久化 为了避免重启后用户数据丢失,所以要把数据放到硬盘上,但是因为硬盘很慢,所以不能替代内存将对象直接放在硬盘上 可以使用序列化、数据库等手段 序列化 将内存中的重要数据适时序列化到硬盘上,然后下次上电后反序列化回内存中 效率低 关系型数据库 特点 强大的理论基础 关系代数、关系演算 支持大规模的 阅读全文

posted @ 2019-11-26 16:12 碎羽love星谊 阅读(199) 评论(0) 推荐(0)

字节码文件与ClassLoader
摘要:使用 javac 命令编译.java源代码文件生成.class字节码文件 使用javap c v XXX.class可以查看字节码文件内容 ClassLoader 将class字节码文件加载到JVM虚拟机中 搜索class字节码文件的范围是由classpath中配置的一个或多个路径来决定的,如果执行 阅读全文

posted @ 2019-11-26 14:17 碎羽love星谊 阅读(219) 评论(0) 推荐(0)

商务口语 - 总结自真实会议
摘要:Presentation Speaker 开始 Hello/Hi, everyone. Welcome to … Hello, I'm xxx. Hi, (you) all (again). Hello, today I want to talk about ... Ok. I can start. 阅读全文

posted @ 2019-11-25 17:08 碎羽love星谊 阅读(733) 评论(0) 推荐(0)

3. 技术专题 - 计算机基本运行原理
摘要:CPU 运算很快,但存储容量很小,而且断电后数据就丢了 比内存快百倍,比硬盘快百万倍 速度快,但只会机械的做事,需要别人告诉它去哪里执行 最关心的是寄存器和程序计数器 要做的几件事 运行指令 不能保存指令,指令全在内存中 上电后执行的第一条指令放在地址0xFFFFFFF0处,通常是跳转指令,到BIO 阅读全文

posted @ 2019-11-21 13:25 碎羽love星谊 阅读(287) 评论(0) 推荐(0)

2. 阿里巴巴Java开发手册主题 - 安全
摘要:强制 隶属于用户个人的页面或者功能必须进行权限控制校验。 说明:防止没有做水平权限校验就可随意访问、修改、删除别人的数据,比如查看他人的私信内容、修改他人的订单。 经验:水平权限问题 攻击者可以根据接口参数中的id加1等操作,来获取其他用户的权限或数据。 水平权限参数不要用自增值,用id加密、随机数 阅读全文

posted @ 2019-11-21 09:37 碎羽love星谊 阅读(448) 评论(0) 推荐(0)

计算机网络
摘要:虚电路 独占真实的线路资源(路由器、网线等),很浪费资源,还需要和路上的路由器专门沟通 TCP 目的是在不可靠的网络链路上建立一条可靠的发送方法,但其实主要还是靠失败重发 TCP连接是虚拟的,连接的状态并不在线路上保存,而是由两端来保证,路上经过的路由器只会根据各种路由算法来机械地进行转发,最终要不 阅读全文

posted @ 2019-11-20 13:57 碎羽love星谊 阅读(107) 评论(0) 推荐(0)

3. 技术专题 - 多线程
摘要:线程执行结束或者一直占用CPU到100%时,有可能被kill掉,但线程池除外,可以一直活到重启。 线程不知道自己什么时候会被挑中执行,这要看优先级、系统状况、CPU策略等 线程随时可能被打断 线程并非一直在运行状态执行到结束 每个线程只在CPU上运行一段时间,到了时间然后就要让给别人用 和CPU处理 阅读全文

posted @ 2019-11-20 11:29 碎羽love星谊 阅读(158) 评论(0) 推荐(0)

3. 技术专题 - 编程思想/思维
摘要:程序员的工作就是把人类语言的需求转化成计算机语言,就要按照计算机的思维来做。因此程序员要思路清晰,有扎实的编程基础,有优秀的抽象能力,这样才能写出优秀的代码。 局部性原理 时间局部性 空间局部性 缓存 抽象 CPU与指令集 磁盘与文件 数据共享与数据库 应用层的MVC 日志工具的Logger、For 阅读全文

posted @ 2019-11-19 15:37 碎羽love星谊 阅读(113) 评论(0) 推荐(0)

1. 个人经验总结 - 怎么估计工作量(Task Breakdown)
摘要:实事求是,理直气壮,都给经理列出来有理有据,但要给自己留一点余地 按天计算即可,没必要按小时 前提 明确好需求的细节、各种可能性 不包括:把原型给产品经理后的重新调整时间、code review及修改时间、测试时间、bug fix时间等。 如果要包括,就要把时间也要估计进来,但是这几部分的时间都不太 阅读全文

posted @ 2019-11-19 15:02 碎羽love星谊 阅读(427) 评论(0) 推荐(0)

2. 阿里巴巴Java开发手册主题 - 日志
摘要:设计思路 强制 应用中不可直接使用日志系统(Log4j、Logback)中的API,而应依赖使用日志框架 SLF4J中的API,使用门面模式的日志框架,有利于维护和各个类的日志处理方式统一。 import org.slf4j.Logger; import org.slf4j.LoggerFactor 阅读全文

posted @ 2019-11-19 14:22 碎羽love星谊 阅读(295) 评论(0) 推荐(0)

自动化构建工具演化、对比、总结
摘要:0. 演化 手动Build 比如手动下载代码、手动拷贝依赖包、手动改配置文件、然后用IDE或命令进行编译、单元测试、打包。 初步自动化 使用Java、Python等编程语言把上述过程自动化 Ant 以XML的形式,把文件目录、依赖包目录等操作的动态配置提取到XML配置文件中 任务化 Maven 遵循 阅读全文

posted @ 2019-11-18 18:10 碎羽love星谊 阅读(189) 评论(0) 推荐(0)

2. 阿里巴巴Java开发手册主题 - 异常处理
摘要:个人经验总结 一定要想好在发生异常时,最外层应该给用户或使用者怎样的信息,内层应该有怎样的正确逻辑处理,还要保留适当的日志和现场信息等。 为什么要做异常处理(在可预期的无法提前避免的异常发生时) 保证程序不崩溃 保证异常信息不会一直上抛到最上层,暴露给用户(要做适当的异常处理,或者转成对用户友好的信 阅读全文

posted @ 2019-11-14 11:28 碎羽love星谊 阅读(1316) 评论(0) 推荐(0)

3. 技术专题 - 编程语言的演化、对比
摘要:基本语法 Java C# C++ Typescript 基本数据类型(值类型) boolean, byte, short, int, long, float, double, char bool, sbyte, short, int, long, byte, unshort, uint, ulong 阅读全文

posted @ 2019-11-12 10:40 碎羽love星谊 阅读(162) 评论(0) 推荐(0)

导航