摘要: 【内聚】 1.内聚的定义 一个模块内部元素彼此结合的紧密程度。其中关键字:模块、元素、结合 模块:大到子系统,小到一个函数,都可以看成一个模块 元素: 模块:包、命名空间等 包:类、接口、全局数据等 类/接口:方法、属性 函数:内部的代码 结合: 用“凝聚力”来理解,更贴切。 假如说一个类的方法,都 阅读全文
posted @ 2018-03-01 16:14 MysticGrrrr 阅读(551) 评论(0) 推荐(0) 编辑
摘要: 设计原则这章所阐述的概念: 内聚 耦合 什么是高内聚低耦合 以及5个类设计原则:SOLID原则 阅读全文
posted @ 2018-03-01 15:02 MysticGrrrr 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 主要以C++和JAVA两种语言说明如何实现设计模型的。本人不会,暂跳过。 阅读全文
posted @ 2018-03-01 15:02 MysticGrrrr 阅读(99) 评论(0) 推荐(0) 编辑
摘要: 【动态模型分类】 1.状态模型 - 对象生命周期的状态变化。通过状态模型了解到对象有哪些状态、状态如何转换、如何触发。详细: 2.活动模型 - 主要描述业务中哪些对象承担什么任务、做了哪些处理、对象之间的交互关系,描绘了业务的工作流程。详细: 3.序列模型 - 又叫时序图,用于描述对象之间按照时间顺 阅读全文
posted @ 2018-03-01 09:41 MysticGrrrr 阅读(644) 评论(0) 推荐(0) 编辑
摘要: 精雕细琢,设计良好的类与类关系 【设计原则】 无论项目开发流程用哪种模式,瀑布、迭代、螺旋、敏捷等。只要是面向对象设计,都应该应用设计原则以提高设计质量 设计SOLID原则: 1.设计原则有什么用? 设计原则就像一把尺子,是衡量类设计的尺子。通过分析来判断设计的类是否符合设计原则的这5个标准,进而调 阅读全文
posted @ 2018-02-19 02:45 MysticGrrrr 阅读(1068) 评论(0) 推荐(0) 编辑
摘要: 第一步,照猫画虎 首个要解决的问题是:类从哪里来? 从上一章中总结的领域模型关系图中可以看到,这些领域对象基本上就是我们所需要的类,只是有些映射到软件类后并不是系统真正参与的类,所以要剔除掉。 领域类是需求涉及的业务的概念,软件类是软件系统内部的概念。 以POS机为例,顾客这个领域类可以剔除,因为它 阅读全文
posted @ 2018-02-17 23:34 MysticGrrrr 阅读(2297) 评论(0) 推荐(0) 编辑
摘要: 经过领域模型建模,面向对象初具雏形。但领域模型不能指导我们进行编码工作。因为领域类是从用例模型中提炼出的反应业务领域的概念,不是真正意义上的软件类。 下一步,就该完成从领域类到软件类的转换。 设计模型分为两种:静态模型和动态模型。 静态模型:描述系统包含的类,以及类的名称,属性名,方法名,类与类之间 阅读全文
posted @ 2018-02-17 19:53 MysticGrrrr 阅读(287) 评论(0) 推荐(0) 编辑
摘要: 领域建模是从需求分析到面向对象设计的一个桥梁 领域模型是指对需求所涉及的领域的建模,换言之就是业务模型 领域模型的作用: 发掘重要的业务领域模型; 建立业务领域概念之间的联系; 领域模型的建立,遵循的规则是: 找名词 -> 填属性 -> 连关系 1.找名词 从哪里找?当然是从需求模型中找,也就是从用 阅读全文
posted @ 2018-02-17 19:47 MysticGrrrr 阅读(423) 评论(0) 推荐(0) 编辑
摘要: 用例方法主要是用来描述需求的业务流程,也就是HOW 使用用例来描述需求流程的方法为三段法,即NEA方法。 Normal流程 分析描述需求的正常流程 Exception流程 在正常流程的基础上,分析每一步的各种异常情况和应对处理 Alternative流程 在正常流程的基础上,分析是否有可替代的方法, 阅读全文
posted @ 2018-02-17 18:37 MysticGrrrr 阅读(472) 评论(0) 推荐(0) 编辑
摘要: 1.需求分析的目的 客户会告诉需求是什么,但往往不会说明需求背后的问题。需求的终极目的就是挖掘客户的问题,实现客户价值。 客户所描述的需求有时可能是不准确的。同样的需求,可能背后要解决的问题并不一样,挖清需求背后要解决的问题。 需求分析三重境界: 记录员 —— 记录客户所描述的需求,以及客户所反映的 阅读全文
posted @ 2018-02-17 15:31 MysticGrrrr 阅读(323) 评论(0) 推荐(0) 编辑
摘要: 1.需求详解 需求指的是系统的功能,但不是指系统的所有功能。需求是能给用户带来价值的功能,或对客户有意义的功能 例如:ATM ATM的功能有很多,显示余额、密码认证、入钞、验证钞票真伪、点钞、出钞、记账、打印凭据。 这里对客户有意义或有价值的是:显示余额、入钞、出钞、打印凭据。而密码认证、钞票真伪验 阅读全文
posted @ 2018-02-16 23:03 MysticGrrrr 阅读(464) 评论(0) 推荐(1) 编辑
摘要: 一个项目前期分析分为管理流程和技术流程。 管理流程是软件工程范畴,属于项目管理。管理流程常见的有瀑布模型、螺旋模型、迭代开发、敏捷,RUP等。管理流程主要是指导项目经理如何管理项目用的。 知道了管理流程,并不能指导开发人员进行开发设计。因此还需要一套指导开发人员进行开发的流程。我们称之为技术流程。 阅读全文
posted @ 2018-02-16 22:41 MysticGrrrr 阅读(283) 评论(0) 推荐(0) 编辑
摘要: 这一节没有太多内容。继承本身就很好理解。 继承就是传承,更像遗传。父类的属性、方法都可以继承。只要是public,或protected类型 阅读全文
posted @ 2018-02-16 22:29 MysticGrrrr 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 多态指的是面向对象编程时,屏蔽了子类对象之间的差异,可以使调用对象方法的客户端代码中代码保持通用性,而不必针对每个不同的对象写不同的实现。 多态的实现依靠的是继承、抽象方法或接口的特性。 例如: 在touchHead方法中,我们无需知道具体的是哪个对象,只要这个对象是派生于动物父类,就可以调用tal 阅读全文
posted @ 2018-02-16 22:26 MysticGrrrr 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 封装,就是把一堆东西装起来,并封上,使你从外部看不到这堆东西在内部是如何组织到一起的。简而言之,就是掩盖细节。 什么是封装? 保护隐私,我们不希望别人看到内部细节是如何运作的,只想让别人看到我们希望别人看到的功能。例如:汽车转向是通过转动方向盘实现的。汽车的转向系统就是封装后只暴露了一个方向盘给驾驶 阅读全文
posted @ 2018-02-16 17:53 MysticGrrrr 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 1.有了类,为什么还要有抽象类? 类是对相同结构对象的抽象。一个类实例化出的对象结构都是相同的,但每个对象都是独立的个体,对象与对象之间具有相似性,但不相同。那么不同的地方在哪,在于属性值的不同,以及同名方法实现的不同。所以,结构相同的对象属于一个类。 抽象类则是对相似结构类的抽象。当我们说说动物类 阅读全文
posted @ 2018-02-16 17:28 MysticGrrrr 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 接口,英文interface,拆开看就是inter 和 face inter 有互相的意思,其含义强调两方的交互。 face 面,对应的是点和线。很形象的体现了功能的多样性。可以看作是多个功能点的集合组成的一个功能面,通过它可以与多个功能点进行交互。但是功能点有很多,哪些才是属于一个面的?接口的定义 阅读全文
posted @ 2018-02-15 18:00 MysticGrrrr 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 对象就是一个具体的类,就是一个类的实现。 对象是客观存在的,世界万物皆对象。人类为了归纳,总结,而把具有相似性的对象归类到一个类中。真正存在于软件运行过程中的是对象,而不是类。 软件对象产生的过程: 现实对象-》现实类-》软件类-》软件对象 “软件类来源于现实类,但高于现实类”这句话的意思是:软件类 阅读全文
posted @ 2018-02-15 17:47 MysticGrrrr 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 一,类的定义 类是一组相似事物的统称 “一组” 在于多个,单个事物无法成为一个类。“人”可以是一个类,但“我”就不是一个类。 “相似” 比较像,但不完全相同。奥巴马,克林顿都是人类,但他们并不是相同的一个人。 “统称” 具有概括性。奥巴马、克林顿可以统称为人、男人、动物、总统。但不会统称为奥巴马,因 阅读全文
posted @ 2018-02-14 20:41 MysticGrrrr 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 从语言层面的处理机制上讲,面向对象的方式肯定比面向过程的方式效率要低一些。所以,对性能要求高的,例如操作系统、驱动程序、网络设备程序都是由C语言编写的。(C语言虽然提供的编程模式是面向过程的,但是同样可以以面向对象的思想来写程序,只是它没有太多机制支持面向对象方式编写程序,不是很方便而已。) 很多人 阅读全文
posted @ 2018-02-14 20:21 MysticGrrrr 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 1.能做什么? 面向对象的核心是“可扩展性”。因此,经常变化的地方就是面向对象应用的地方。 软件系统中,经常变化的地方主要集中在客户需求部分,不变的一般都属于计算机系统的基础。 2.不能做什么? 从上图可以看到“可扩展性”只占软件质量属性中的一小部分,其他部分都是不面向对象可以解决的。因此明白了面向 阅读全文
posted @ 2018-02-14 20:01 MysticGrrrr 阅读(434) 评论(0) 推荐(0) 编辑
摘要: 面向过程和计算机如影随形,从计算机诞生之日起,面向过程一直占主导地位。C语言、操作系统、协议栈、驱动系统、都是面向过程的代表。 为什么会有面向对象诞生并流行呢?面向过程是可以看作是流水线,那么流水线有个缺点:流水和原料是相对固定的,扩展起来很麻烦。比如啤酒生产线,操作的原来是啤酒原料,生产的步骤是生 阅读全文
posted @ 2018-02-14 19:49 MysticGrrrr 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 面向对象编程思想不再局限于计算机本质,更侧重于对现实世界的模拟。对现实世界模拟的思想,本质就是人的思想。 在面向过程中,有一个类似于中央控制器的角色统一调度。面向对象中,没有这样的角色,也不指定严格的操作顺序,而是设计了许多对象,指定这些对象需要完成的任务,以及这些对象如何对外界的刺激作出反应。 如 阅读全文
posted @ 2018-02-14 19:37 MysticGrrrr 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 面向过程是一种以“过程”作为中心的编程思想,“过程”就是“完成一件事的步骤”。面向过程是一种“机械的思想”,就像流水线一样,一个阶段衔接一个阶段,环环相扣。每个阶段都有自己的输入、处理、输出的步骤。运用面向过程方法时也要设计这样一条流水线:将程序划分为不同的阶段,设计好个个阶段如何衔接,定义好每个阶 阅读全文
posted @ 2018-02-14 19:27 MysticGrrrr 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 1 面向机器编程 最初的编程是面向机器编程;编程采用机器语言来编写,用二进制表示机器能识别的指令和数据,也就是直接使用0和1表示。这种编程方式写起来困难、出错了也难以调试。后面出现了汇编语言,利用助记符来帮助程序员记忆一些机器指令的操作码,地址符号(Symbol)或标号(Label)代替指令或操作数 阅读全文
posted @ 2018-02-14 18:48 MysticGrrrr 阅读(162) 评论(0) 推荐(0) 编辑
摘要: yarn和npm一样,是nodejs的一个依赖管理工具 1.安装nodejs 如果缺少c++ compiler 会报错 yum install -y gcc gcc-c++ 安装nodejs V8 curl --silent --location https://rpm.nodesource.com 阅读全文
posted @ 2018-01-22 16:04 MysticGrrrr 阅读(1363) 评论(0) 推荐(0) 编辑
摘要: 项目中用mycat做的分表分库,异步通知系统会连接mycat去查数据库数据,有时会抛异常提示mysql server has gone away。最初以为是mycat的问题,在修改了mycat的配置,缩短心跳时间,增加空闲超时时间后,发现问题仍然存在。说明问题在mysql上,经过咨询后发现是mysq 阅读全文
posted @ 2017-12-29 14:54 MysticGrrrr 阅读(1866) 评论(0) 推荐(0) 编辑
摘要: # tableRule name 属性指定唯一的名字,用于标识不同的表规则。 # rule 内嵌的 rule 标签则指定对物理表中的哪一列进行拆分和使用什么路由算法。# columns columns 内指定要拆分的列名字。# algorithm 使用 function 标签中的 name 属性。连 阅读全文
posted @ 2017-11-14 13:25 MysticGrrrr 阅读(897) 评论(0) 推荐(0) 编辑
摘要: # schema 定义逻辑库 checkSQLschema 当该值设置为 true 时,如果我们执行语句**select * from TESTDB.travelrecord;**则 MyCat 会把语句修改为**select * from travelrecord;**。即把表示 schema 的 阅读全文
posted @ 2017-11-13 18:55 MysticGrrrr 阅读(419) 评论(0) 推荐(0) 编辑
摘要: # system Processers为系统可用的线程数,一般和CPU核心线程数相同 BufferPool 是由BufferChunk组成。 BufferPool的总大小为BufferChunkSize * Processers * 1000 BufferPool的总长度为 BufferPoolSi 阅读全文
posted @ 2017-11-13 15:02 MysticGrrrr 阅读(424) 评论(0) 推荐(0) 编辑