开发者须知
文章目录
开发过程:SOLID五大设计原则
S.O.L.I.D 是面向对象设计(OOD)和面向对象编程(OOP)中的几个重要编码原则(Programming Priciple)的首字母缩写。
SRP: The Single Responsibility Principle 单一职责原则
OCP: The Open Closed Principle 开放封闭原则
LSP: The Liskov Substitution Principle 里氏替换原则
ISP: The Interface Segregation Principle 接口分离原则
DIP: The Dependency Inversion Principle 依赖倒置原则
解耦思想
解耦通俗地说就是两个东西原来互相影响,现在让他们独立发展;
核心思想还是最小职责,每个地方都只做一件事情;
只要一个地方负责了多项事情,就存在解耦的可能。
在系统每个层次都可以体现解耦的思想,比如在架构层面把存储和业务逻辑解耦,把动态页面和静态页面解耦;在模块层面把业务模块和统计模块解耦;在代码层面把多个功能解耦等等。
解耦的思想很好,但是没必要为了解耦而解耦,还是要从业务需求以及系统定位出发,满足一段时间内系统发展的需要即可。
编码规范标准
PSR-0 (Autoloading Standard) 自动加载标准『已废弃』
PSR-1 (Basic Coding Standard) 基础编码标准
PSR-2 (Coding Style Guide) 编码风格向导『已废弃』
PSR-3 (Logger Interface) 日志接口
PSR-4 (Improved Autoloading) 自动加载的增强版,可以替换掉PSR-0了。
MVC 转变成 MBC
MBC: M 模型层,B 业务逻辑层,C 控制器层
- M: Model
- B: Business
- C: Controller
go-zero作者的代码抽象经验和心得
- Don’t repeat yourself
- 你未必需要它,之前经常有业务开发人员问我可不可以增加这个功能或那个功能,我一般都会仔细询问深层次目的,很多时候会发现其实这个功能是多余的,不需要才是最佳实践
- Martin Fowler提出出现三次再抽象的原则,有时有些同事会找我往框架里增加一个功能,我思考后经常会回答这个你先在业务层写,其它地方也有需要了你再告诉我,三次出现我会考虑集成到框架里
- 一个文件应该尽量只做一件事,每个文件尽可能控制在200行以内,一个函数尽可能控制在50行以内,这样不需要滚动就可以看到整个函数
- 需要抽象和提炼的能力,多去思考,经常回头思考之前的架构或实现
字节与字符的区别
字节(Byte)是计量单位,表示数据量多少,是计算机信息技术用于计量存储容量的一种计量单位,通常情况下一字节等于八位。
字符(Character)计算机中使用的字母、数字、字和符号,比如’A'、‘B’、'$'、'&‘等。
字节与字符:
- 符号:英文标点为一个字节,中文标点为两个字节。例如:英文句号 . 占1个字节的大小,中文句号 。占2个字节的大小。
- ASCII 码中,一个英文字母(不分大小写)为一个字节,一个中文汉字为两个字节。
- UTF-8 编码中,一个英文字为一个字节,一个中文为三个字节。
- Unicode 编码中,一个英文为一个字节,一个中文为两个字节。
- UTF-16 编码中,一个英文字母字符或一个汉字字符存储都需要 2 个字节(Unicode 扩展区的一些汉字存储需要 4 个字节)。
- UTF-32 编码中,世界上任何字符的存储都需要 4 个字节。