Atitit 软件的俩大要点 提升可读性 提升扩展性
目录
- 结构可读性
表驱动代替if else
减少层次
Dsl化
适当命名空间化 分类化
递归代替循环
异常处理
Atitit. 提升存储过程与编程语言的可读性解决方案v3 qc25.docx
1. 大原则:分解+命名 1
1.1. 命名规范 1
1.2. 分层、DI和AOP是继OO 1
1.3. 运算符可读性一般要比函数好 1
1.4. 函数式样 流程控制全部函数化 2
1.5. 递归代替循环 2
1.6. 中缀表达式 取代 前后缀表达式 2
1.7. 有时候异常处理也会提升可读性 2
1.8. dsl 2
2. Refactor 2
2.1. 方法链 2
2.2. 其他 2
2.3. PIE 原则:意图清楚而且表达明确地编程; 3
2.4. 恰到好处的注释 3
2.5. 简单就是美,避免简单的功能写出复杂的代码; 4
2.6. 坚持操作方法的原子性,而后使用组合模式实现业务逻辑; 4
2.7. 参考 4
命名空间命名
类命名
变量命名
函数命名
Atitit 提升sql与编程语言代码可读性----大力使用中文解决方案
1.1. 为了提升可读性,使用汉字命名可以大力提升可读性。。 1
1.2. 打字麻烦,还好有Ide里面的自动提示,可以增加对于的拼音或者英文缩写前缀,这样方便打字自动提示 2
1.3. 跨国项目怎么办,对方不认识中文怎么办??增加英文即可 czyh_queryUser_查找用户 2
1.4. 环境对汉字支持不佳怎么办??使用拼音中文。。拼音也是中文的一种形式嘛。。 2
1.5. 这样就比较完美了,唯一的问题,就是长度可能有点长,但这个就没办法啦 2
1.6. 不必全部使用中文 常见的英文query from where user等可以不用汉字。。英汉夹杂融合他们的优点 2
1.7. 函数命名规范:可以参考sql select语句规范,提升可读性 3
atitit 高扩展性解决方案 功能扩展法 v2 t66.docx
atitit 高扩展性解决方案.docx
1. 功能扩展 vs 性能扩展 2
1.1. 人无远虑,必有近忧。 系统也一样。 2
1.2. 预留接口 插件机制 2
1.3. 通用语言解析接口 多功能接口 就类似usb接口那样通用 2
1.4. Dsl接口和ast接口 2
1.5. 脚本。脚本是扩展复杂功能的利器 2
1.6. 自定义语言 工作流 规则引擎 2
1.7. api类库扩展 2
1.8. Cli扩展 udf机制 3
1.9. 3
2. Other 3
2.1. 原件最小封装 3
2.2. 接口的层次化 功能 模块 子系统 3
2.3. 接口转换器 adapter模式 3
2.4. 无中心节点组件设计 避免庞大组件出现, 3
2.5. 使用配置化 ioc提升扩展性,配置lazy化 3
2.6. 插件系统或者模块化平台。插件系统平台从理论上提供了无数的可扩展性。比如Eclipse和NetBeans平台。这儿是抽象的最高点, 4
2.7. 灵活性和可扩展性 其易用性差的三角关系 4
2.8. 稳定性。越是灵活和可扩展 4
2.9. 扩展性与性能的关系 4
2.10. Vm+dsl vm 其实就是添加了一个layer,无所不能 4
2.11. 功能使用和功能定义的关注点分离 5
3. 其他的常见扩展模式 6
3.1. Php使用其他语言写lib 6
3.2. Cms的插件机制 6
3.3. 浏览器的插件机制,使用其他语言写插件 6
3.4. Oracle支持java写sp 6
3.5. 用lua扩展你的Nginx( 6
3.6. oa office excel vbs vba com 6
3.7. 游戏外挂 6
4. 常用的写扩展的语言 6
4.1. Lua c++ python xml 6
5. 参考资料 6
组合 vs 继承扩展
回调扩展法
Atitit. 提升存储过程与编程语言的可读性解决方案v3 qc25.docx