- 博客(22)
- 收藏
- 关注
原创 第三章 高级装配
一、环境与profile在开发软件的时候,一个很大的挑战是将应用程序从一个环境迁移到另外一个环境中。一种方式是在单独的配置类或者(XML文件)中配置咩哥bean,然后在构建阶段确定将哪一个人配置编译到可部署的应用中。 1.1、配置profile bean 在3.1版本中,Spring引入了bean profile功能。要使用profile,首先要将所有的bean定义整理到一个或多个prof...
2018-10-22 21:17:00
154
原创 第二章 装配Bean
一、Spring配置的可选方案在XML中进行显示配置 在java中进行显示配置 隐式的bean发现机制和自动装配建议:尽可能使用自动配置二、自动化装配bean 连个角度实现自动化装配: 组件自动扫描(component scanning):Spring会自动发现应用上下文中所创建的bean。 自动装配(autowiring):Spring自动满足bean之间的依赖。 ...
2018-10-22 19:46:50
152
原创 第十六章 大型结构
简介在一个大的系统中,如果因为缺少一种全局性的原则而使人们无法根据元素在模式(这些模式被应用于整个设计)中的角色来解释这些元素,那么开发人员会陷入“之间树木,不见森林”的境地。我们需要理解各个部分在整体中的角色,而不必去深究细节。 设计一种应用于整个系统的规则(或角色和关系)模式,使人们可以去通过它在一定程度上了解各个部分在整体中所处的位置(即使是在不知道各个部分的详细职责的情况下) 大部...
2018-10-10 21:03:18
296
原创 第十五章 精炼
精炼的主要动机是把最有价值的部分提取出来,真实这个部分使我们的软件区别于其他软件并让整个软件的构建物有所值,这个部分就是CORE DOMAIN简介:领域模型的战略精炼包括以下部分:帮助所有团队成员掌握系统的总体设计以及各个部分如何协调工作 找到一个具有适度规模的核心模型并把它添加到通用语言中,从而促进沟通 指导重构 专注于模型中最有价值的部分 指导外包、现成组件的使用以及任务委派...
2018-10-09 20:36:02
235
原创 自动显示分支和分支自动补全
自动显示分支~/.bashrc 里添加function git_branch { branch="git branch 2>/dev/null | grep "^\*" | sed -e "s/^\*\ //"" if [ "${branch}" != "" ];then if [ "${branch}" = "(no branch)" ];then
2018-10-08 11:39:52
897
1
原创 第十四章 保持模型的完整性
一、大型系统领域模型的完全统一既不可行,也不划算why?1、一次尝试对遗留系统做过多的替换2、大项目可能会陷入困境,因为协调的开销太大,超出了这些项目的能力范围3、具有特殊需求的应用程序可能不得不使用无法充分满足需求的模型,而只能将这些无法满足的行为放到其他地方4、另一方面,试图用一个模型来满足所有人的需求可能会导致模型中过于复杂的选择,而难以使用。 二、模式:BOUND...
2018-10-06 16:33:22
434
原创 第十三章 通过重构得到更深层的理解
一、为什么重构?1、之前代码写挫了(传统意义上的问题,代码过长、命名不清晰。。。)。2、领域设计的问题,或者是缺少了某种概念,或者是某个关系发生了错误,或者是有更好更合适的概念。二、重构时机持续重构被认为是一种“最佳实践”,但大部分团队有戒心。人们认为修改代码有风险,还有花时间,但是更重要的是维护一个拙劣的设计也有风险,而且迁就这些设计也要付出代价。想要重构往往要被证明合理性。但这...
2018-09-02 22:30:26
252
原创 第十二章 将设计模式应用于模型
为什么没有第11章?11章将了应用分析模式,没咋看懂,东西也不多。如有需要可以看《分析模式》一书。一、模式:STRATEGY(也称POLICY)why?领域模型包含一些并非用于结局技术问题的过程,将它们包含进来是因为它们处理问题领域具有实际的价值。当必须从多个过程中进行选择时,选择的复杂性加上过程本身的复杂性会让局面失去控制。how?我们需要把过程中易变的部分提取到模型的一...
2018-09-02 22:07:59
217
原创 第十章 柔性设计
一、定义:为了使项目能够随着开发工作的进行而加速前进,而不会由于它的老化而停滞不前,设计必须要让人们乐于使用,而且易于做出修改。这就是柔性设计。二、模式:INTENTION-REVEALING INTERFACES(透露意图式的接口)why?如果代码只是在执行规则后得到结果,而没有把规则显示地表达出来,那么我们不得不一步一步去思考软件的执行步骤。那些只是运行代码然后给出结果的计算--没...
2018-09-01 21:34:40
3138
原创 第九章 将隐式概念转化为显示概念
一、若开发人员识别出设计中隐含的某个概念或是在讨论中受到启发而发现一个新的概念时,就会对领域模型和相应的代码进行许多转换,在模型中加入一个或多个对象或关系,从而将此概念显示地表现出来。怎么发现呢?1、倾听领域专家的语言,有没有一些术语更简洁地表达某个复杂的概念。2、检查不足之处3、思考矛盾之处4、查阅相关书籍,学习相关领域知识,和专家的知识相对照。5、不断尝试、试错,找到足...
2018-08-31 00:44:39
513
原创 第七章 使用语言:一个扩展的示例
一、隔离领域:引入应用层为防止领域职责与系统的其它部分混杂在一起,我们应用LAYERED ARCHITECTURE把领域层划分出来。不同的功能分配给不同的应用层类。这些应用层类是协调者,它们只负责提问,不负责回答,回答是领域层的工作。二、将ENTITY和VALUE OBJECT区别开依次考虑每个对象,看这个对象是必须被跟踪的实体还是仅表示一个基本值。三、领域关联模型中经常会存在...
2018-08-28 22:37:02
192
原创 第六章 领域对象的生命周期
一、概念:每个对象都有生命周期,从创建开始会修改,可能会存储数据库,又可能从数据库重建,最终可能存档或者被删除。二、挑战:管理生命周期的挑战有:在整个生命周期中维护完整性。防止模型陷入管理生命周期复杂性造成的困境当中。三、AGGREGATE:是一组相关对象的集合,每个AGGREGATE都有一个跟(root)和一个边界(boundary),根是AGGREGATE的一个特定的ENTITY。外部...
2018-08-27 23:32:33
496
原创 AdBlock:Chrome浏览器里的屏蔽广告神器
一、作用:屏蔽广告,本人是很讨厌技术博客网站例如XSDN里的白度的广告,毫无关联性,都不是我想看的,结果却不得不看,所以屏蔽!!!二、安装方式1)可以翻墙、直接在Chrome里安装2)没有翻墙条件,离线下载,安装,如果安装不了,请打开开发者模式,或者在Chrome图标里右键=》属性=》目标里添加“–enable-easy-off-store-extension-install”。重启浏...
2018-08-16 13:46:23
441
原创 JStorm优秀文章收藏
一、官方文档1、github地址:https://github.com/alibaba/jstorm/2、github的wiki:https://github.com/alibaba/jstorm/wiki/JStorm-Chinese-Documentation3、jstorm网站,http://jstorm.io/ProgrammingGuide_cn/AdvancedUsage/...
2018-08-15 19:53:18
187
原创 第五章 软件中所表示的模型
一些对象主要不是由它们的属性定义的。它们实际上表示了一条“标识线”,这条线跨越时间,而且经常经历多种不同的表示。有时,这样的对象必须与另一个具有不同属性的对象匹配。而有时一个对象必须与具有相同属性的另一个对象分开。错误的标识可能破坏数据。当一个对象由其标识(而不是属性)区分时,那么在模型中应该主要通过标识来确定该对象的定义。使类定义变得简单,并集中关注生命周期的连续性标识。定义一种区分每个对象...
2018-08-13 23:13:38
246
原创 Maven Helper 安装使用
1、环境:windows2、为什么使用:方便找出依赖,方便查看冲突,方便改冲突(exclude)2、使用步骤:1)进入pom文件、点击图中方框,可以查看冲突,可以查看依赖以列表形式和树的形式。2)改冲突,右击右边方框里的红色部分有“exclude”选项,点击后就exclude掉了 参考文档:https://my.oschina.net/u/136229/blog/...
2018-08-10 18:02:14
1209
原创 第四章 分离领域
分层架构用户界面层:负责向用户显示信息和解释用户指令应用层:要尽量简单,不包含业务规则或者知识,只为下一层领域对象协调任务,分配工作。领域层:负责表达业务概念,业务状态信息以及业务规则,反映业务情况的状态由本层控制且使用的。基础设施层:为上面各层提供通用的技术能力,为应用层传递消息,为领域层提供持久化机制,为用户界面层绘制屏幕组件。将各层级关联起来上层可以直接使用或操作下层...
2018-08-06 23:13:54
197
原创 第三章 绑定模型和实现
如果整个程序设计或者其核心部分没有与领域模型相对应,那么这个模型是没有价值的,软件的正确性也值得怀疑。模型和设计功能之间过于复杂的对应关系也是难以理解的,在实际项目中,当设计改变时也无法维护这种关系。若分析与设计之间产生严重分歧,那么在分析和设计活动中所获得的知识就无法彼此分享。 软件系统各个部分的设计应该忠实地反应领域模型,以便体现而这二者之间的明确的对应关系。我...
2018-08-05 19:47:48
536
原创 4、Write a function to find the longest common prefix string amongst an array of strings
class Solution(object): def longestCommonPrefix(self, strs): shortest_string = "" for member in strs: if (shortest_string == "") or (len(member) s
2017-10-27 17:55:06
553
原创 3、Determine whether an integer is a palindrome
class Solution(object): def isPalindrome(self, x): srcStr = str(x) reverseStr = srcStr[::-1] return srcStr == reverseStr """ :type x: int :rt
2017-10-24 23:54:44
253
原创 2、Reverse Integer
Reverse digits of an integer.Example1: x = 123, return 321Example2: x = -123, return -321click to show spoilers.Note:The input is assumed to be a 32-bit signed integer. Your function s
2017-10-22 00:26:39
145
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人