摘要:假定:程序员都是闷骚的程序员有独特的搞笑方式程序员80%都不满于现状,需要发泄程序员都有一点色所以:子龙左手青釭剑,右手亮银枪,跨下白龙马,一身白盔白甲,帅到爆炸!如今我们左手xmind,右手eclipse,uml在脚下,也是无比潇(ku)洒(bi) 他们是喜欢的亚美蝶,揍我不行,揍我小舅子可以。他...
阅读全文
摘要:我们还是由浅入深(这个词我喜欢,你呢?)的讨论一下,分库分表的关键点(本故事纯属虚构,仅为搞笑):当你的系统很小的时候,只有一个数据库,每个表的主键都是自增的,你都不去关心主键变成了多少,反正db保证自增,小日子过的很是惬意。但惬意的日子总是短暂的,你因为DB宕机被老板fire 3次(见上一个故事)...
阅读全文
摘要:引子赵云大喝一声,挺枪骤马杀入重围,左冲右突,如入无人之境。那枪浑身上下,若舞梨花;遍体纷纷,如飘瑞雪。赵云是所有历史人物中我最喜欢的一个,如果放到现代,他走了it的道路,一定可以成为一个编程高手。为什么?其实古时打仗也是一门技术活,需要有勇有谋,跟it没有什么太大的区别。打仗要修身、修技、修器才能...
阅读全文
摘要:有状态分布式,涉及的知识就比较多了,不过我们可以拿几个现实的例子由浅入深的来理解。数据库的分库分表假设你是一个开发负责人,开始使用单机的数据库,突然一天数据库硬盘挂掉了。你没有做备份,然后就没有然后了。进入第2个公司,你意识到备份的重要性,每天定时备份到另一台机器,突然有一天,数据库硬盘挂掉了。你心...
阅读全文
摘要:分布式算是软件界发展的一个里程碑,它开辟一个新的软件时代,其他的溢美之词我就不再乱说了。分布式按照我的观点,应该分为有状态和无状态2种:有状态分布式数据库分布式存储无状态分布式计算分布式web系统当然分布式尽量做成无状态的分布式,但是存储最终因为最终存储的是有状态的数据,所以不得不变的有状态。当然w...
阅读全文
摘要:作为一个软件系统可用性是第一位的,如果一个系统不可用,你其他的地方做的再怎么好,然并卵。一般什么情况下软件会不可用:我方发生故障,导致系统不可用,当然会出现单机的不可用及n多机器群的全部不可用。程序故障 功能错误、程序退出系统故障 CPU超负荷、内存超负荷、网络超负荷物理故障 机器死机 断电 断网不...
阅读全文
摘要:作为一个架构师,有些规则是必须要掌握的,这就想软件的公理,如果你学物理不知道牛顿定律,那就不要学了。在软件行业也有类似的东西,我称之为软件定律。例如:ACID,CAP,BASEACID传统数据库系统中,事务具有ACID 4个属性(1)原子性(Atomicity):事务是一个原子操作单元,其对数据的修...
阅读全文
摘要:单点登录应该归为架构的部分了,但是一般网站在开始的时候最好有单点登录的思想,防止后期再做大量的修改。而且单点登录对于开发人员来说并没有增加太多额外的工作量,所以提前讲一下对大家都是好的。先说一下单点登录的机制(摘自百度百科,给我广告费):当用户第一次访问应用系统1的时候,因为还没有登录,会被引导到认...
阅读全文
摘要:异常为什么需要单独一节来讲解呢?因为异常是软件设计里一项需要架构者自己构思处理的一个特殊部分。一般的框架没有提供统一的处理方式,而且会被很多同学忘记处理,或者是比较粗糙处理掉。想一想有很多网站出错时,用户会看到一大段的英文异常,甚至执行的sql都包含在里面,你会不会觉得很不专业呢?首先异常应该分类,...
阅读全文
摘要:前面说完了前端和后端的封装,本节再单独讲解一下哪些地方需要前后结合。AJAX的前后端结合:定义统一的返回消息体,{isError:true/false,message:’需要返回的消息’,data:{返回的数据},postAction:{后续的动作}}根据消息体的返回,进行不同类别的展示,例如:错误...
阅读全文
摘要:做一个网站不只有写后端代码,为了更好的用户体验以及更优雅的代码实现,我们也需要对前端进行封装。但是在谈封装之前还是要先提一下统一的规范,前端统一的规范尤为重要,这是给用户一致性体验最核心的关键点。我举一个反面的例子,大家可能一下就明白前端规范的重要性了。之前做过一个网站,流程如下:设计给图片前端照图...
阅读全文