[C#] 代码规范
一、接口化
多使用依赖注入,减少静态类的使用。例如工具类的日志、文件压缩、服务器时间、相机等等,以日志为例,定义日志的接口,日志的实现可能是log4net、Serilog、NLog,也可能是自行实现,定义接口ILog,使用依赖注入获取单例,后期切换新的日志实现时,只需要实现日志接口并注入到IOC容器即可。
二、功能切片。
每个功能相互独立,但可以通过共享模块的共享服务、消息发布订阅事件、依赖注入等方式相互通信。例如ModuleA和ModuleB通信,通过共享模块ShareKernal的ShareService获取数据,或者通过监听定义在ShareKernal的消息发布订阅事件进行通信,或者通过定义在ShareKernal的接口获取在ModuleB的实例。
三、命名约定。
参考书籍《CLR via C#》,属性、方法、类名使用大写驼峰,例如User、Name,public字段使用小写驼峰,例如user,name,private字段使用"_"开头并小写驼峰,例如_user,_name,局部变量使用小写驼峰;异步方法以Async结尾,并返回Task对象,例如public Task ReadAsync();方法、属性、字段分块存放,可以使用#region #endregion分块。
四、使用泛型定义方法或类,确保类型安全并防止值类型装箱拆箱。
五、详细的代码注释和调试日志。