框架与设计模式
文章平均质量分 55
DamZ
云计算、数据库内核
展开
-
设计模式六大原则
单一职责原则(Single Responsibility Principle)定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。问题由来:类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。解决方案:遵循单一职责原则。分别建立两个类T1、T2,使T1完成职责P1功能,T2完成职责转载 2013-01-06 15:45:58 · 619 阅读 · 0 评论 -
权限系统与RBAC模型概述[绝对经典]
0. 前言一年前,我负责的一个项目中需要权限管理。当时凭着自己的逻辑设计出了一套权限管理模型,基本原理与RBAC非常相似,只是过于简陋。当时google了一些权限管理的资料,从中了解到早就有了RBAC这个东西。可惜一直没狠下心来学习。更详细的RBAC模型非常复杂。本文只做了一些基础的理论性概述。本文资料完全来自互联网。 1. 权限系统与RBAC模型概述转载 2016-09-18 18:05:03 · 12207 阅读 · 0 评论 -
通用管理系统的思考
经过2个月的努力,移动端的项目总算上线,可是面向客户的系统的维护量可真是麻烦啊。每天需要把订单发给商户,处理客户的错误信息,处理投诉,撤单问题,敏感信息都是加密的处理起来更加麻烦,每天大量的工作量逼得不得不把管理系统的优先级提高。鉴于我的习惯,我开始思考每次都做管理系统,起始有大量的工作都是重复的,能不能做一个通用的壳子。思考了半天,得出一个结论,除了生产运维基本都差不多,详见正文。管理系统的原创 2016-10-09 21:35:07 · 309 阅读 · 0 评论 -
软件架构入门
作者: 阮一峰日期: 2016年9月 3日原文链接:http://www.ruanyifeng.com/blog/2016/09/software-architecture.html?20160911094326建议各位多去峰哥的网站转转,峰哥是本人比较喜欢的技术大牛。软件架构(software architecture)就是软件的基本结构。合适的架转载 2016-10-15 14:13:16 · 463 阅读 · 0 评论 -
审核功能实现
1、普通方案:经办时入A表,审核后从A表读取数据,然后操作目标B表;优势:思路简单劣势:对后端功能实行高度的嵌入;审核功能数据操作不统一 2、弹框式方案:前台实现,操作时判断是否需要权限控制,如果需要,则弹出框,由审核人员进行审核,审核通过后,进行后续操作。 优势:对后台功能无嵌入;可支持查询、导出、操作等全部功能;劣势:需要经办人和审核人同时在场操作原创 2016-10-15 14:41:29 · 16591 阅读 · 5 评论 -
统一用户认证和单点登录解决方案
■ 康威 李凯-------------------------------------------------------------------------------- 本文以某新闻单位多媒体数据库系统为例,提出建立企业用户认证中心,实现基于安全策略的统一用户管理、认证和单点登录,解决用户在同时使用多个应用系统时所遇到的重复登录问题。随着信息技术和网络技术的迅猛发展,企业内部转载 2016-10-15 14:57:51 · 21053 阅读 · 0 评论 -
三种东西永远不要放到数据库里
导读:作者Frank Wiles发表了一篇博文,Frank Wiles曾在很多演讲里说过,改进你的系统的最好的方法是先避免做“蠢事”。并不是说你或你开发的东西“蠢”,只是有些决定很容易被人们忽略掉其暗含的牵连,认识不到这样做对系统维护尤其是系统升级带来多大的麻烦。作为一个顾问,像这样的事情我到处都能见到,我还从来没有见过做出这样的决定的人有过好的结果的。图片,文件,二进制数据既转载 2016-10-29 21:34:28 · 379 阅读 · 0 评论 -
约定优于配置
文章来自维基百科约定优于配置(convention over configuration),也称作按约定编程,是一种软件设计范式,旨在减少软件开发人员需做决定的数量,获得简单的好处,而又不失灵活性。本质是说,开发人员仅需规定应用中不符约定的部分。例如,如果模型中有个名为Sale的类,那么数据库中对应的表就会默认命名为sales。只有在偏离这一约定时,例如将该表命名为”products_so转载 2016-10-29 21:38:18 · 409 阅读 · 0 评论 -
基于关系数据库的纵表、横表及引擎设计(未完)
概念 其实数据库本没有这2个概念,这2个概念是从应用角度、逻辑角度出发诞生的。所谓常见的表都是横表,所以这里重点说下纵表,你就理解这2个概念了。 关系型数据库或者说传统的数据库,建立模型时都需要建立明确模型的属性,而这些属性是作为字段(field)存在的,但是在应用中我们经常面临一个问题就是对象的属性是不确定的,比如我们对客户的属性,我们随着研究关注地深入,需要关注的属性越来越原创 2016-11-01 11:54:04 · 2626 阅读 · 1 评论 -
几种软负载均衡策略分析
版权声明:本文为Sunface原创文章,请随意转载,若有需要敬请联系CTO@188.com。同时欢迎大家加入Golang隐修会,QQ群894864,大神很多。公司去年上了F5,好用是好用,但是费用太高昂了,所以最近一直在研究软负载均衡这一块儿,恰巧今年年初谷歌开源了seesaw,让自己可以绕过很多弯路。特此总结下之前了解的负载均衡策略。 -Sunface在分布式系统中,负载转载 2016-04-03 14:37:12 · 2624 阅读 · 0 评论 -
关系型数据库设计
目录一 Codd的RDBMS12法则——RDBMS的起源二 关系型数据库设计阶段三 设计原则四 命名规则 数据库设计,一个软件项目成功的基石。很多从业人员都认为,数据库设计其实不那么重要。现实中的情景也相当雷同,开发人员的数量是数据库设计人员的数倍。多数人使用数据库中的一部分,所以也会把数据库设计想的如此简单。其实不然,数据库设计也是门学问。 从转载 2015-04-15 23:43:21 · 943 阅读 · 0 评论 -
常用线程同步方式详解
常用的方式有:互斥锁、读写锁、条件变量、异步信号。参考:读写锁:http://blog.csdn.net/onlyou930/article/details/6432621http://my.oschina.net/u/158589/blog/64897http://blog.csdn.net/solstice/article/details/5307710#_Toc6原创 2013-02-17 00:03:14 · 772 阅读 · 0 评论 -
简单工厂、工厂方法、抽象工厂之小结与区别
简单工厂,工厂方法,抽象工厂都属于设计模式中的创建型模式。其主要功能都是帮助我们把对象的实例化部分抽取了出来,优化了系统的架构,并且增强了系统的扩展性。本文是本人对这三种模式学习后的一个小结以及对他们之间的区别的理解。 简单工厂 简单工厂模式的工厂类一般是使用静态方法,通过接收的参数的不同来返回不同的对象实例。不修改代码的话,是无法扩展的。 工厂方法转载 2013-01-10 19:57:56 · 615 阅读 · 0 评论 -
类与类之间的关系
类间关系有很多种,在大的类别上可以分为两种:纵向关系、横向关系。纵向关系就是继承关系,它的概念非常明确,也成为OO的三个重要特征之一,这里不过多的讨论。横向关系较为微妙,按照UML的建议大体上可以分为四种:依赖 (Dependency) 关联 (Association) 聚合 (Aggregation) 组合 (Composition) 它们的强弱关系是转载 2013-01-06 19:46:09 · 707 阅读 · 0 评论 -
浅谈Python Web的五大框架
说到Web Framework,Ruby的世界Rails一统江湖,而Python则是一个百花齐放的世界,各种micro-framework、framework不可胜数,不完全列表见:http://wiki.python.org/moin/WebFrameworks。虽然另一大脚本语言PHP也有不少框架,但远没有Python这么夸张,也正是因为Python Web Framework(Pytho转载 2013-03-22 15:52:01 · 725 阅读 · 0 评论 -
保障系统出口畅通
这两天我们在做批量业务的时候,当业务量达到10万以上的时候,系统总是会阻塞到pthread_wait_condition。仔细分析了代码,对队列的操作,入队已经加锁,并且判断是否队满,队满的情况下,会等待not full信号;出队也进行了加锁,并且判断是否队空,队空的情况下,会等地not empty信号通知;可是问题是:系统很多子部门都用到了队列操作,就是阻塞那个部分呢?通过inf原创 2013-06-03 10:59:15 · 936 阅读 · 0 评论 -
模拟器设计--未完待续
最近跟同事讨论电信系统特点的时候,特别提到系统接口太多了,开发起来各种交织,存在开发效率低的问题。针对这个问题,我想写点对这几年电信的理解和想法;先引用别人一段对传统系统和互联网系统的区别总结。 互联网应用不传统信息系统应用的区别 互联网应用 自行开发系统、快速迭代,持续交付,持续维护 直接到达客户端,对接Mass用户原创 2013-12-30 13:19:17 · 1257 阅读 · 0 评论 -
后台批量进程开发的总结
1 总述入口数据库文件Socket通信 触发条件时间轮询接口手工 对于批量处理理论上要至少满足以下五个方面的考虑:事务性统计监控性能错单处理2 批量使用场景2.1 批量操作同单笔操作比较单笔操作:一般是由客户端触发更加实时;开发相对比较简单当业务处理复杂时,操作会原创 2014-01-14 11:56:06 · 2059 阅读 · 1 评论 -
简单实现缓冲写入文件类
快没电了,先贴代码。稍后再写别的,代码写得比较简单,以后再支持其它功能吧!#ifndef __CBUFFER_H__#define __CBUFFER_H__#include #include #include using namespace std;class CBuffer{public: CBuffer(const std::string filename,原创 2013-01-27 21:13:06 · 843 阅读 · 0 评论 -
缓冲通用接口的设计和实现
占位。解决的问题:举个例子,比如电信系统中的用户基本信息、产品信息,系统启动后缓冲到内存中,可以让应用程序快速访问。如果有需要,可以将内存数据保存到文件中去。当需要时,再有选择性的将数据从文件中读取出来!原创 2012-11-16 09:32:10 · 484 阅读 · 0 评论 -
读《代码的未来》有感
章节5:支持大数据的数据存储技术使用键值存储的数据库,大多数都在数据查找技术上使用了散列这种数据结构。散列表中的数据量无论如何增大,其查找数据所需的时间几乎是固定不变的,因此也是一种非常合适大规模数据的技术。一、数据库的ACID特性即Atomicity(原子性)、Consistency(一致性)、Isolation(隔离性)和Durability(持久性)整体来看,acid非...原创 2019-03-24 21:39:33 · 148 阅读 · 0 评论