摘要:
第六章 AOP开发实践一、什么是AOP?AOP是Aspect Oriented Programming的简写,中文通常译作面向方面编程,其核心内容就是所谓的“横切关注点”。1. OO是纵向结构的使用面向对象方法构建软件系统,我们可以利用OO的特性,很好的解决纵向的问题,因为,OO的核心概念,如继承等,都是纵向结构的。2. AOP的目标 但是,在软件系统中,往往有很多模块... 阅读全文
摘要:
第五章 设计模式与软件架构设计一、面向对象软件架构设计思想a) 面向对象范式 i. 面向对象范式的核心是“对象”的概念 ii. 所有的东西都聚焦于对象 iii. 围绕对象-而非函数-组织代码b) 对象从不同视角观察 i. 概念层:一个对象是一系列责任 ii. 规格层:一个对象是一系列可以被其他对象或该对象自己调用的方法 iii. 实现层:一个对象是一些代码和数据c) 设计原... 阅读全文
摘要:
第四章 如何描述和评估软件架构质量一、软件的质量建模软件质量的重要性是不言而喻的,但是当所有人都意识到它的重要性的时候,却很少有人能够清晰的描述出如何才能够提高软件质量。软件质量框架的目的就在于提出一个评价的原型,帮助我们分析一种方法和技术是否能够提高软件质量。合理进度、成本、功能关系。软件开发中所有的管理都是围绕着这几个要素在做文章的,如何在特定的时间内,以特定的成本,开发出特定功能的软件。三者... 阅读全文
摘要:
前几天已经毕业的师兄在群里向我们介绍搜狗浏览器推出了个测试版,具有教育网加速功能。虽然现在实验室网速已经不像以前那样不堪忍受,不过我还是下载了一个试用。经过试用发现搜狗的这个浏览器还是做的相当不错的,有这么几个地方是特别具有特色的:1.教育网的加速功能,在实验室试了下,用IE下载几K的连接用搜狗可以达到70-80K/S。不过此功能对非教育网用户无效,我在宿舍的电信上装上搜狗教育网加速的选项就无效。... 阅读全文
摘要:
第三章 软件架构风险管理一、如何识别软件架构的风险1. 需求的不断变化2. 架构师对于技术理解不足3. 缺乏对行业的研究4. 经验不足5. 创造性的架构比重比较重6. 没有形成一套构架的规范7. 架构可执行性差二、如何规避软件架构风险1. 固化需求2. 完善的业务原型3. 完整架构规范4. 验证架构的可执行性5. 80%的经验架构+20%的创新架构三、软件架构风险管理与控制1. 风险管理过程a. ... 阅读全文
摘要:
第二章 软件架构文档设计一、软件配置管理(SCM)1. 配置管理的基本概念a. 概念a. ISO 9000-3 :1997配置管理是一个管理学科,它对配置项(包括软件项)的开发和支持生存期给与技术上的和管理上的指导。配置管理的应用取决于项目的规模、复杂程度和风险大小。b. W.Babich 的解释软件配置管理能协调软件开发,使混乱减少到最小。软件配置管理是一种标识、组织和控制修改的技术,目的是最有... 阅读全文
摘要:
最近从CSDN的下载频道上DOWN下了一份高级软件架构师讲义,将阅读时做的笔记发上来。有兴趣的朋友可以去CSDN的下载频道搜搜“高级软件架构师”应该就可以看见。第一章架构师与设计师面向对象应用建模(Application Modeling)的实践过程有3个阶段:1. 有步骤、分层次地演进系统构架2. 将软件需求逐渐转变为软件的设计方案3. 保障软件的设计方案能够适应实施环境... 阅读全文
摘要:
五 监视与优化 建立底线监视的底线,将底线以后的增长、活动和性能、数据定义更改都记录到一个图表供日后分析 监视工具Windwos事件日志任务管理器系统监视器Management Studio 管理对象(连接)Management Studio 查询属性(数据行数,时间)Management Studio 执行计划(分析查询过程性能)DDL触发器(监视数据结构更改) 索引记录写入时有消耗,读取时有很... 阅读全文
摘要:
四 安全 主体:使用用户账户进入SQLSERVER以及它控制的数据库对象的入口密码与账户策略用户账户角色 安全对象:你可以保护的对象,如数据库以及它包含的对象 安全性层次:服务器、数据库、数据库对象 安全性矩阵(CRUD):主体、数据库对象的矩阵,清楚标明权限 应用程序的安全方法使用一个或多个账户来代表主体访问数据使用应用程序角色以一个较低权限账户开始,在代码中跳到较高权限账户。(一个账户模拟另一... 阅读全文
摘要:
在数据库中创建程序集CREATE ASSEMBLY hellowordFROM 'c:\test.dll'WITH PERMISSION_SET = SAFE 查看数据库配置特性sp_configure 创建登陆sp_addlogin 把登陆名添加到固定服务器角色中sp_addsrvRolemember 添加主体到数据库角色sp_addRolemember 添加应用程序角色sp_setappRol... 阅读全文
摘要:
将TSQL查询直接输出为XML SELECT * FROM [Effect.功能]FOR XML AUTO(RAW,EXPLICIT), ELEMENTS(XMLDATA,BINARY BASE64) 查询系统版本 EXEC XP_MSVER 列举数据库用户及其权限 SELECT * FROM sys.server_principalsSELECT * FROM sys.server_pe... 阅读全文
摘要:
十五 另外一面 不要再强调文档重要性,而是放在如何做上使用程序文档内容:目的环境范围算法输入输出选项精度测试程序输入数据范围:一大多数常规数据二较少合法边界数据三较少非法数据修改程序流程图结构图算法描述,文件规划,数据流一页纸的流程图最佳自文档化,把文档与源程序整合到一块 软件开发中最困难的部分是规格说明、设计和测试这些概念上的结构,而不是对概念进行表达和对实现逼真程度进行验证现软件系统中... 阅读全文
摘要:
三 维护与自动化 还原类型:完全还原、差异还原、事务日志还原、时间点还原 在数据库对象名称或文本前加上N使后面的文本显示成Unicode 另外两种类型的维护: 处理数据库物理状态:检查数据库文件一致性和收缩数据库DBCC CHECKDB('database name')检查库 DBCC CHECKTABLE('table or index name')检查表或索引 CHECKALLOC... 阅读全文
摘要:
里程碑必须是具体的、特定的、可度量的事件、能够进行清晰定义。 慢性进度偏移是士气杀手,关心每一天的滞后,它们是大灾祸的集累。 只有采用PERT或关键路径技术才能判断哪些进度偏离是关键的有两种方法可以将项目经理的进度偏离问题揭示在老板面前,一减少角色冲突和鼓励状态共享,二猛地拉开地毯 阅读全文
摘要:
十三整体部分 在编写任何代码前,规格说明必须提交给测试小组,以检查说明的完整性和明确性 细致的功能定义、仔细的规格说明、规范化的功能描述说明以及这些方法的实施,大大减少了系统中必须查找的BUG数量 好的自顶而下设计从几个方面避免了BUG: 1.清晰的结构化表达更容易对需求和模块功能进行精确描述 2.模块分割和模块独立性避免了系统级的BUG 3.细节的抑制使结构上的缺陷更加容易识别 4.设计... 阅读全文
摘要:
八 胸有成竹 项目工作量随项目规模的增长成指数幂增长: 工作量(人月)=常数*指令的数量1.5次幂) 简要地说:大型项目意味着程序员的数目超过25人,将近30000行代码(汇编语言) 使用适当高级语言,编程的生产率可以提高5倍(相比汇编语言) 九 削足适履 取得良好的空间-时间折衷: 1.确保程序员在编程技能上得到培训,特别是使用新机器新语言时 2.认识到编程需要技术积累,开发公共... 阅读全文
摘要:
二 体系结构和工具 系统数据库: master:保存系统所有操作使用的数据,包括安全、挂载、配置、所有数据库及其对象 model:创建其他数据库的模板 msdb:包括用来进行维护、复制的所有计划信息、作业、警报和操作员 三 维护与自动化 三种恢复模式 1.简单恢复模式:存入数据库后就从事务日志中删除,适合数据不常改变的数据库 2.完整恢复模式:存入数据库后就仍保存在事务日志中,所有生产... 阅读全文
摘要:
为了获得概念完整性,为了反映一系列连贯设计思路,宁可省略那些不规则的特性和改进,也不提倡独立和无法整合的系统。 是否要有一位拥有贵族特权的结构设计师和一群创造天赋被压制的平民编程人员? 少数人拥有结构设计的“贵族权限”是确保概念完整统一的重要保证 第一个项目不断产生的装饰和润色功能被搁置在一边,作为“下一个”项目的内容,画蛇添足使得第二个系统是设计师们所设计的最危险的系统。险的系统。 阅读全文
摘要:
功能和易用性之间要达到平衡,系统的概念完整性决定了使用的容易程度 不能与系统基本概念进行整合的良好想法和特色,最好放到一边,不予考虑。如果出现了很多非常重要但不兼容的构想,就应该抛弃原来的设计,对不同基本概念进行合并,在合并后的系统上重新开始 概念的完整性要求设计必须由一个人,或者非常少数互有默契的人员来实现。而进度压力却要求很多人员来开发系统。有两种方法可以解决这种矛盾。第一种是仔细地区... 阅读全文