软件复杂性简洁之道 - 设计原则篇
前言
软件之所以这么有魔力这么繁荣,在于软件的灵活性,也正因为软件的灵活性导致了软件的复杂性。绳子灵活而方便,它能360度无死角花样系东西,但有时为了解开它,相信也没少让你烦心过。
We call it ‘soft’ because we can change it and reshape it easily.
--- Michael J. Hicks
从我们学会什么是int什么是long时,老师就教会我们什么时候该用int什么时候适合用long。当我们知道什么是面向对象时,我们就一并了解到了抽象、封装、继承和多态。似乎我们在学习如何编写软件的同时,我们就一直伴随着如何设计软件。
那为什么我们要设计软件?软件设计的最大目标,就是降低复杂性。那什么又叫复杂性?
"Complexity is anything that makes softw
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
mysql,sqlserver数据库单表数据过大的处理方式
经常混迹于技术社区,频繁看到这个题目,今天干脆在自己博客重复一遍解决办法: 针对mysql,sqlserver等关系型数据库单表数据过大的处理方式 如果不是阿里云的分布式数据库 DRDS那种多机器集群方案的话:先考虑表分区 ;然后考虑分表 ;然后考虑分库。 这个题目是我所经历过的,我做的是GPS应用,早期版本就是选用的关系型数据库Sql Server。当时我选取的方案就是第一种:表分区。 表分区的优势是,如果表结构合理,可以不涉及到程序修改。也就是说,对程序来讲依然是单表读写的效果! 所有轨迹数据存入到一个巨大的表里。有多大呢? 最大存储量超过10亿行。具体数值应该是12亿多点,由于系统设计为只存储30天轨迹,所以线上期间最大存储只到这个数,再后来采用云架构,上云替换成非关系性数据库,获得了更高的写入性能和存储压缩能力。 每日写入量就超过1500万行。上下班交通高峰时候每秒写入量平均超过500行。也就是500iops,距离系统设计的压测指标3000还有一大截 这张大型单表设计要点:(一个聚集索引用于写入,一个联合索引用于查询,没有主键,使用表分区) 明确主键用途: 真的需要查询单行数据...
- 下一篇
如何架构基于虚拟化技术的云计算平台
来源商业新知网,原标题:如何架构基于虚拟化技术的云计算平台 随着商业的推崇,云计算如何提高系统性能成为了新的研究课题,针对这些问题,本文主要提出了基于虚拟化技术的云计算平台的架构,研究了平台的服务器云,这是平台的核心所在。 虚拟化技术研究 虚拟化技术,可以把一个物理单元虚拟成多个逻辑单元,这样,一个物理单元就可以运行多个应用。这对于资源使用效率的提高,有着不可估量的作用,并且各种资源的管理也更加方便。目前云计算模式主要分为:私有云、公有云和混合云。无论是哪种云,其目标都是整合资源为客户服务,系统资源具备高性能的处理能力成为了必然要求。 目前,传统处理器的利用率普遍低下,很大部分资源都被白白浪费,哪怕最昂贵的处理器的利用率也仅在20%左右。面对这一问题,虚拟化技术应运而生,有效的解决了服务器处理能力的利用率问题。虚拟化技术包括:内存虚拟化、存储虚拟化、硬件虚拟化、软件虚拟化等各项技术。本文研究的基于虚拟化技术的云计算平台主要实现了服务器的虚拟化,将一个服务器当成多个服务器使用,大大提高了处理能力。 比如说,一般的服务器,3个独立的物理服务器可以运行3种不同的应用,但是在采用服务器虚拟化之...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS8编译安装MySQL8.0.19
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Windows10,CentOS7,CentOS8安装Nodejs环境