首页 > 编程语言 >谈谈程序设计的一些原则

谈谈程序设计的一些原则

时间:2024-10-19 15:59:17浏览次数:8  
标签:原则 程序 可移植 业务 谈谈 高性能 系统 程序设计 子系统

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

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

常见的目标:

(1)稳定性

(2)高性能

(3)可扩展

(4)可移植

(5)安全

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

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

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

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

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

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

 

系统(System)

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

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

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

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

数据一致性保证:

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

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

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

 

易于阅读和修改

分层设计,防止循环依赖

标签:原则,程序,可移植,业务,谈谈,高性能,系统,程序设计,子系统
From: https://www.cnblogs.com/kekec/p/10621414.html

相关文章

  • 2024-2025-1 20241407《计算机基础与程序设计》第四周学习总结
    这个作业属于哪个课程2024-2025-1-计算机基础与程序设计这个作业要求在哪里2024-2025-1计算机基础与程序设计第四周作业这个作业的目标学习门电路,组合电路,逻辑电路,冯诺依曼结构,CPU,内存,IO管理,嵌入式系统,并行结构,物理安全作业正文https://www.cnblogs.com/wangyih......
  • 铺先生:遵循什么原则的选址好?这几点关系重大
    遵循什么原则的选址好?店铺选址需要满足一些特定的条件才能对经营带来帮助,而为了达到最终选址的目的我们一定不能凭心意去选择,为了帮助大家顺利选择到合适的地址,下面小编就来跟大家说三个需要遵循的原则吧。1. 客群原则客群必然是任何一家店铺经营期间都不能缺少的因素,缺乏客群的店......
  • 软件开发模式与设计原则
    一.设计模式1.概念设计模式(Designpattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。设计模式具有“适应需求变化”的优点。基本原则:模块应对外扩展开放,而对修改关闭,......
  • 2024-2025 20241413 《计算机基础与程序设计》第四周学习总结
    作业信息这个作业属于哪个课程https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP这个作业要求在哪里https://www.cnblogs.com/rocedu/p/9577842.html作业目标门电路组合电路,逻辑电路冯诺依曼结构CPU,内存,IO管理嵌入式系统,并行结构物理安全--------......
  • 顺序程序设计习题
    假如我国国民生产总值的年增长率为9%,计算十年后我国国民生产总值与现在相比增长多少百分比计算公式:p=(1+r)n  (r为增长率,n为年数,p为与现在相比的倍数)//假如我国国民生产总值的年增长率为9%,计算十年后我国国民生产总值与现在相比增长多少百分比//计算公式:p=(1+r)......
  • Archi - 无单点原则 和 可水平扩展原则 的区别
    在系统设计中,无单点原则和可水平扩展原则是确保系统高可用性和灵活性的两个重要方面,它们之间存在明显的区别,具体如下:一、无单点原则定义:无单点原则是指在设计系统时,应避免存在单个点(组件、服务或设备)的故障导致整个系统不可用的情况。换句话说,系统应该具备冗余和容错能力,以确......
  • python+flask框架的高校计算机服务微信小程序设计与开发小程序18(开题+程序+论文) 计
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容选题背景随着移动互联网技术的迅猛发展,微信小程序作为一种轻量级的应用形式,已广泛应用于各行各业。高校作为教育和科研的重要场所,其计算机服务需求......
  • 优秀图书推荐《单元测试:原则、模式和实践》与要点解析
    一.单元测试历史背景     单元测试在软件开发中已经存在了几十年,但直到21世纪初,它才成为软件开发过程中的一个标准实践。随着敏捷开发方法的兴起,单元测试变得更加重要,因为它支持快速迭代和持续集成。VladimirKhorikov的书《单元测试:原则、模式和实践UnitTesting:Principl......
  • 软考中级(软件设计师)必备知识解读——第二章:​程序设计语言
    第二章程序设计语言程序设计语言的基本概念解释器:翻译源程序时不生产独立的目标程序。解释程序和源程序要参与到程序的运行过程中。编译器:翻译时将源程序翻译成独立保存的目标程序。机器上运行的是与源程序等价的目标程序,源程序和编译程序都不再参与目标程序的运行......
  • 武汉大学卫星导航算法程序设计——解码与数据获取
    还在为解码发愁吗?面对二进制文件还是无从下手吗?一篇文章帮你搞定。我们从接收机获取的数据并不是rinex格式的文件,而是NovAtel数据格式的二进制文件。我们需要从文件中提取出我们需要的导航数据,也就是解码的过程。废话不多说,我们直接开始讲解。一、Binary数据头格式请不要使......