随笔分类 -  软件设计

摘要:RabbitMQ无疑是目前最流行的消息队列之一,对各种语言环境的支持也很丰富,作为一个.NET developer有必要学习和了解这一工具。消息队列的使用场景大概有3种: 1、系统集成,分布式系统的设计。各种子系统通过消息来对接,这种解决方案也逐步发展成一种架构风格,即“通过消息传递的架构”。 2、 阅读全文
posted @ 2017-07-11 18:31 左正 阅读(235) 评论(0) 推荐(0) 编辑
摘要:本系列文章主要阐述大数据计算平台相关框架的搭建,包括如下内容: 基础环境安装 zookeeper集群的搭建 kafka集群的搭建 hadoop/hbase集群的搭建 spark集群的搭建 flink集群的搭建 elasticsearch集群的搭建 alluxio集群的搭建 1.kafak简介 Kaf 阅读全文
posted @ 2017-07-11 18:26 左正 阅读(380) 评论(0) 推荐(0) 编辑
摘要:在企业应用系统领域,会面对不同系统之间的通信、集成与整合,尤其当面临异构系统时,这种分布式的调用与通信变得越发重要。其次,系统中一般会有很多对实时性要求不高的但是执行起来比较较耗时的地方,比如发送短信,邮件提醒,更新文章阅读计数,记录用户操作日志等等,如果实时处理的话,在用户访问量比较大的情况下,对 阅读全文
posted @ 2017-07-11 18:04 左正 阅读(220) 评论(0) 推荐(0) 编辑
摘要:消息中间件对目前大中型互联网来说是非常重要的,在业务数据流动中仅次于RPC服务调用,担负着越来越复杂的网站业务从主流程上解耦的重要责任; 从目前互联网对消息中间件的需求来看应该分为两种类型,一种是和钱相关的需求,一种是和钱无关的需求;和钱相关的需求消息的可靠性是放在第一位的,和钱无关的需求是速度放在 阅读全文
posted @ 2017-07-11 11:49 左正 阅读(3600) 评论(0) 推荐(0) 编辑
摘要:目前的应用系统,不管是企业级应用还是互联网应用,最终数据的一致性是每个应用系统都要面临的问题,随着分布式的逐渐普及,数据一致性更加艰难,但是也很难有银弹的解决方案,也并不是引入特定的中间件或者特定的开源框架能够解决的,更多的还是看业务场景,根据场景来给出解决方案。根据笔者最近几年的了解,总结了几个点 阅读全文
posted @ 2017-07-10 16:56 左正 阅读(1106) 评论(0) 推荐(0) 编辑
摘要:1、什么是分布式事务 分布式事务就是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。以上是百度百科的解释,简单的说,就是一次大的操作由不同的小操作组成,这些小的操作分布在不同的服务器上,且属于不同的应用,分布式事务需要保证这些小操作要么全部成功,要么 阅读全文
posted @ 2017-07-10 15:42 左正 阅读(407) 评论(0) 推荐(0) 编辑
摘要:Kafka是分布式发布-订阅消息系统。它最初由LinkedIn公司开发,之后成为Apache项目的一部分。Kafka是一个分布式的,可划分的,冗余备份的持久性的日志服务。它主要用于处理活跃的流式数据。 在大数据系统中,常常会碰到一个问题,整个大数据是由各个子系统组成,数据需要在各个子系统中高性能,低 阅读全文
posted @ 2016-08-03 09:26 左正 阅读(1139) 评论(0) 推荐(1) 编辑
摘要:DTO即数据传输对象。之前不明白有些框架中为什么要专门定义DTO来绑定表现层中的数据,为什么不能直接用实体模型呢,有了DTO同时还要维护DTO与Model之间的映射关系,多麻烦。然后看了这篇文章中的讨论部分才恍然大悟。摘两个比较有意义的段落。表现层与应用层之间是通过数据传输对象(DTO)进行交互的,... 阅读全文
posted @ 2015-08-28 14:28 左正 阅读(421) 评论(0) 推荐(0) 编辑
摘要:OOAD 面向对象分析与设计2007年06月16日 星期六 下午 04:38OOAD(Object Orient Analysis & Design,面向对象的分析和设计,面向对象分析与设计)是现代软件企业广为采用的一项有效技术。OOAD方法要求在设计中要映射现实世界中指定问题域中的对象和实体,例如:顾客、汽车和销售人员等。这就需要设计要尽可能地接近现实世界,即以最自然的方式表述实体。所以面向对象技术的优点即为能够构建与现实世界相对应的问题模型,并保持他们的结构、关系和行为为模式。 大师说:"没有不变的需求,世上的软件都改动过3次以上,唯一一个只改动过两次的软件的拥有者已经死 阅读全文
posted @ 2011-07-27 16:12 左正 阅读(425) 评论(0) 推荐(0) 编辑
摘要:Axure RP 能帮助网站需求设计者,快捷而简便的创建基于网站构架图的带注释页面示意图、操作流程图、以及交互设计,并可自动生成用于演示的网页文件和规格文件,以提供演示与开发。Axure RP - Web/AP原型设计软件 Axure LogoAxure的正确发音是“Ack-Sure”,RP则是”Rapid Prototyping”快速原型的缩写。Axure RP 特点 1.Axure RP快速创建带注释的wireframe文件,并可根据所设置的时间周期,软件自动保存文档,确保文件安全。 2.Axure RP在不写任何一条html与javascript语句的情况下,通过创建的文档以及相关... 阅读全文
posted @ 2011-07-26 19:33 左正 阅读(1660) 评论(0) 推荐(0) 编辑
摘要:简介 MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。特点 它的特点是高性能、易部署、易使用,存储数据非常方便。主要功能特性有: *面向集合存储,易存储对象类型的数据。 *模式自由。 *支持动态查询。 *支持完全索引,包含内部对象。 *支持查询。 *支持复制和故障恢复。 *使用高效的二进制数据存储,包括大型对象(如视频等)。 *自动处理碎片,以支持云计算层次的扩展性。 *支持RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言。 *文件存储格式为BSON(一种JSON的扩展)。 *可通过... 阅读全文
posted @ 2011-07-26 19:26 左正 阅读(421) 评论(0) 推荐(0) 编辑
摘要:简介 redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。性能 下面是官方的bench-mar.. 阅读全文
posted @ 2011-07-26 19:23 左正 阅读(2186) 评论(0) 推荐(0) 编辑
摘要:MyBatis 的前身就是 iBatis 。是一个数据持久层(ORM)框架。 MyBatis框架[1]iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO),同时还提供一个利用这个框架开发的 JPetStore实例。简介 MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除 了几乎所有的 JDBC 代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML 或注解用于配置和原始映射,将接... 阅读全文
posted @ 2011-07-26 19:19 左正 阅读(768) 评论(0) 推荐(0) 编辑
摘要:2011-4-16 21:30:38 水人家说在设计框架时,都是按需求来设计框架的,2011-4-16 21:30:43 水这样说对吧?2011-4-16 21:31:08 水那为啥我看我们这项目的框架都差不多呢,2011-4-16 21:31:50 老板呵呵,那是因为对与一些应用来说,基础开发大致基础都是哪些东西2011-4-16 21:32:09 老板比如说,现在还在很多JAVA开发,一问项目用了什么框架,SSH2011-4-16 21:32:33 老板好像SSH是能代表所有项目框架似的,实际上是差的很多2011-4-16 21:32:43 水是啊,2011-4-16 21:32:51 水 阅读全文
posted @ 2011-04-16 22:29 左正 阅读(600) 评论(0) 推荐(1) 编辑
摘要:毫无疑问,正直的品德是每一位员工必备的美德。对任何用人单位而言,他们不仅要求员工头脑敏锐、具有专业技能,更重要的是,还应具有正直的品格。小到一个单位,大到一个国家,人们真正需要是后者。 同样的道理,任何一个组织,要想具有竞争力、生命力,其管理者也必须是一个品德高尚的人。就像管理大师彼德?杜拉克所言:“优秀的管理者最重要的特征就是正直感。正直感不是一种单独的美德,而是所有美德的综合,美德决定了商业上的成功,使人们从商务行为本身获得了自由与幸福。” 如果仔细观察,我们就不难发现身边的那些成功者,他们大多都具有正直的品德,而一个道德败坏的人,即使因偶然因素获得成功,这种成功也不会太长久。 一次,美. 阅读全文
posted @ 2011-04-05 17:29 左正 阅读(523) 评论(0) 推荐(0) 编辑
摘要:在牛津高阶词典(第7版)中,架构(architecture)一词的解释是:the design an structure of a computer system。这个解释实际上已经描述了架构的本质:架构是关于怎么做(构成系统)的,而非做什么的。更进一步,架构是由人来设计实施,因此架构实际上是一个文化(culture)——我们怎么认识或理解系统/产品的,并且我们准备怎么做,在做的过程中我们认为什么是好的,什么是好的等等。任何系统都有架构,无论多小的系统都有。区别在于其架构是否是经过明确设计并表达。一个合理的架构无疑是经过精心设计和维护的,而进行架构设计,或者说定义/建立一个架构可以分为如下几. 阅读全文
posted @ 2011-04-05 17:21 左正 阅读(578) 评论(0) 推荐(1) 编辑
摘要:在软硬件系统总体架构设计完成之后,为保证架构设计的合理性、完整性和针对性,从根本上保证系统质量,降低成本及投资风险,需要对总体架构进行评估。 1、架构评估内容 (1)对软件的架构评估 对软件的架构评估,主要是根据具体的评估依据,看软件设计是否符合体系化设计原则;产品中所开发的软件是否易于升级,是否满足可扩展性强等要求。 (2)对硬件的架构评估 对硬件架构的评估,主要是根据具体的评估依据,看研发的系统是否尽量采用了低功率处理器和较少的功耗部件,是否满足低功耗的要求;系统是否具有较大的基础资源空间以及资源扩展空间(如程序指令空间,内部外部存储空间等);是否易于运维管理;研发产品的硬件是否易于升级. 阅读全文
posted @ 2011-04-05 17:04 左正 阅读(2309) 评论(0) 推荐(2) 编辑
摘要:2 推荐一、软件体系结构和框架的定义 软件体系结构的英文单词是“architecture”. Architecture的基本词义是建筑、建筑学、建筑风格。 软件体系结构虽然根植于软件工程,但还处于一个研究发展的阶段,迄今为止还没有一个为大家所公认的定义。 《设计模式》中对框架的定义是框架就是一组相互协作的类,对于特定的一类软件,框架构成了一种可重用的设计。 软件框架是项目软件开发过程中提取特定领域软件的共性部分形成的体系结构,不同领域的软件项目有着不同的框架类型。框架的作用在于:由于提取了特定领域软件的共性部分,因此在此领域内新项目的开发过程中代码不需要从头编写,只需要在框架的基础上进行一些. 阅读全文
posted @ 2011-04-05 16:57 左正 阅读(295) 评论(0) 推荐(0) 编辑
摘要:框架往往是这样产生的:我们拥有了开发某种类型应用的大量经验,并开发了一些这种类型的应用,我们总结这种类型的应用中共性的东西,将其提炼到一个高的层次中,以备复用。这个“高的层次”的东西便是框架的原型。随着我们经验的不断积累,框架也会不断的向前完善、发展。框架,正如其名,就是一个应用的骨架,选用的框架的好坏直接决定了基于其上构建的应用的质量。在确定了一个框架后,我们在骨架的缝隙里为其添加“血”和“肉”,便成为一个应用。 框架源于应用,却又高于应用。 我今天要说的是,正是因为框架源于应用,所以在提炼框架的时候,我们往往不自觉的为框架作过多的假设。这些假设来源于孵化框架的具体应用中的一些潜在的“规则. 阅读全文
posted @ 2011-04-05 16:56 左正 阅读(315) 评论(0) 推荐(0) 编辑