可可西

谈谈程序设计的一些原则

 程序的世界丰富多彩,如同宇宙中天体系统。按照粒度大小、层次结构、复杂度分为:平台(Platform) 、 系统(System) 、软件(Software)、工具(Tool)、模块(Module) 、类(Class) 、函数(Function)和语句(Statement)

然而,不管多么复杂的程序,都可以分解成一句句简单的代码。为了达到程序的目标,我们需要遵循一些设计原则和规范来编写代码。

常见的目标:

(1)稳定性

(2)高性能

(3)可扩展

(4)可移植

(5)安全

当然,对于不同类型的程序,目标的是不一样的。

例如:photoshop在可扩展、可移植、安全方面就没有chrome考虑得那么多。

对于射击类网游,网络时延是一个很重要的指标,所以前后台通讯一般不用TCP,而是采用改良后的UDP(在应用层加入了网络包丢失和乱序等异常处理)。

对于Windows系统,稳定性、高性能、安全性、二次开发、向后兼容性、多语言支持都十分重要。

对于微信,由众多子系统组成,核心功能的稳定、高性能、负载均衡、容灾、数据一致性是其要重点考虑的设计目标。

对于平台而言,数据交换等标准化,功能服务化显得尤为重要。

 

系统(System)

一个复杂的系统一般分为多个子系统

按照功能分为:接入层、业务层、存储层

业务层又会按照功能拆分成核心业务和周边子系统,分别用独立进程提供服务

业务层的容灾和负载均衡可通过Proxy中转服务器来简单实现

数据一致性保证:

① 尽量无状态化,保证过程不依赖当前状态

② 数据Cache使用数据库缓存机制落地到文件

③ 有状态的业务通过存储层中转

 

易于阅读和修改

分层设计,防止循环依赖

posted on 2024-10-19 16:06  可可西  阅读(29)  评论(0编辑  收藏  举报

导航