开发过程: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 官网

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 个字节。