8 笨蛋糕

尚未进行身份认证

当你的才华还不足以撑起你的野心时,你应该静下心去学习!

等级
TA的排名 1w+

软件架构系列感想(六)

1、代码不会讲述完整的故事。编写好的代码很重要,重构迫使我们考虑让方法变得更小、更可复用和自文档化,每个人都应该追求易于阅读、理解和维护的好代码。了解系统的设计意图,可以通过代码库如何被拆分为子项目、目录、包、命名空间等对整体架构做出一些判断,也可以根据对这个项目有限的了解、业务领域、你对团队如何构建软件的期望以及你对所用技术的知识,做出自己的假设。(1)软件系统如何融入已有的系统形态(2)为什么...

2018-04-04 17:03:33

软件架构系列感想(五)

1、通用的抽象集合。可以将软件系统简单的理解成由多个容器构成,容器又由多个组件构成,组件由一个或多个类实现。类(在一个面向对象系统里,类是最小结构单元)组件(组件可以想象成一个或多个类组成的逻辑群组,通常由多个类在更高层次的约束下组合而成)容器(指一个在其内部可以执行组件或驻留数据的东西)系统(系统是最高的抽象层次,代表了能够提供价值的东西)2、软件的静态视图。语境(设定场景的高层次图,包括关键的...

2018-04-04 14:59:08

软件架构系列感想(四)

1、技术约束。时间和预算是大多数软件开发者都熟悉的约束,还有一些在大型组织里经常碰到的一些技术相关的约束:(1)批准的技术清单(目的是限制组织必须支持,运行,维护和购买许可证的技术)(2)现有系统的互操作性(有时别的系统需要和你构建的系统整合,这时组织性的约束规定了你可以用于整合的协议和技术)(3)目标部署平台(包括嵌入式设备、windows或Linux服务器的可用性,以及云)(4)技术成熟度(有...

2018-04-04 13:05:51

软件架构系列感想(三)

1、未来的架构师在哪里?我们可能花了很长时间谈论编写代码、自动化测试、自动化部署、工具、各种技术,以及所有相关的流程,而可用的软件是关键。多想想这些问题:(1)你上次写代码是什么时候(2)你上次重构是什么时候(3)你上次测试你的代码是什么时候(4)你上次设计东西是什么时候(5)你上次从零开始设计一个软件系统是什么时候(6)你上次从零开始设计一个会由一个团队来实现的软件系统是什么时候2、有些人过于渴...

2018-04-04 12:10:06

软件架构系列感想(二)

3、软件架构师是什么?应用程序架构的关注点是应用程序,通常包括将应用程序解构为类和组件,确保设计模式的正确应用,构建和使用框架等等。本质上,应用程序架构谈论的是软件设计的低级别切面,通常只考虑单一的技术栈。结构单元主要以软件为基础,包括编程语言和结构、类库、框架、api等。它由类、组件、函数、模块、设计模式等加以描述。应用程序架构着重考虑软件和代码组织。大多数软件系统实际上是由横跨不同层次和技术的...

2018-03-25 11:16:44

软件架构系列感想(一)

1、什么是架构?架构是一种能力,架构角色则是要求你在具体事物中行使某些行为,而架构师则是用来标识这些能力与行为的一个职务。对于不同的人来说,可能意味着什么是不一样的。模块、连接、依赖和接口;大局观;改变成本很高的事情;难以改变的事情;更加兼顾全局的设计;接口而非实现;审美(比如艺术般的整洁代码);概念模型;满足非功能需求/质量属性;每件事情都有架构;沟通能力(抽象、语言、词汇);计划;一定程度的严...

2018-03-25 10:57:45

《软件工程》之开发访谈

《立项阶段》1、立项建议——产品构思提交给总工程师,撰写立项建议书。2、可行性分析——制定调研计划,生成立项可行性分析报告。3、立项评审——形成立项评审记录表。4、项目筹备——任命项目经理、同时定义QA、CCB等角色。《计划阶段》1、客户需求——由项目经理和开发主管来参与客户需求开发,形成用户需求访谈录,编写用户需求说明书,项目经理组织组织评审。2、项目估计——

2017-03-21 08:36:39

《软件工程》笔记

——软件工程是一门研究应用工程化方法构建和维护有效的、实用的和高质量的软件的学科。工程包括了管理、过程和技术三个方面,过程指软件的开发、维护过程及管理过程。涉及程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等。目标:达到要求的软件功能。取得较好的软件性能。付出较低的开发成本。开发的软件易于移植。开发的软件易于维护,需要较低的维护费用。能按时完成开发

2017-03-17 09:08:19

程序设计的50条感想

1、敏捷开发——在一个高度协作的环境中,不断地使用反馈进行自我调整和完善2、阅读代码的频率越高越好3、使用单元测试4、迭代和增量式的学习5、跟踪技术变化——你不需要精通所有技术,但需要清楚知道行业的方向,从而规划你的项目和职业生涯6、CRCC即类—职责—协作—的设计方法7、不要在前期做大量的设计8、不需要开发你能下载到的东西9、防止提交破坏系统的代码——(1)在本地

2017-03-16 10:05:10

《软件调试》笔记

一、插装——开发人员编写的额外代码,来提高程序的可观察性和可控制性。二、发现bug的机会:(1)可调试的源代码(2)插装(3)宏定义(4)编译器标志(5)静态检查器(6)选择的库(7)链接器选项(8)代码插装工具(9)测试用例/输入数据(10)调试器:源代码、剖析、内存读取、操作系统调用跟踪器(如truss和strace)三、用户态调试器——查看调试目标状态

2017-03-16 09:04:19

代码大全(9)之软件测试及调试

单元测试要点:对每个需求进行测试,以便确保需求得到实现对和设计有关程序进行测试以确保设计得到了实现在详细测试的基础上对需求和设计测试增加基本测试不完全测试善于结构的测试数据流测试(数据的状态:已定义数据、已使用数据、已无效的数据)测试用例:每个子程序的要求是否有自己的测试用例子程序结构的每个部分是否都有自己的测试用例程序中每一行代码都是否至少

2017-03-14 15:25:03

代码大全(8)之软件质量

随项目增大而工作量增大的活动:计划管理交流需求开发系统功能设计接口设计和描述总体结构综合错误消除系统测试文档生成配置管理一般:你的软件配置管理计划是否用于帮助程序员,并能将额外开销减至最少你使用SCM手段能否避免对项目失控你所在组是否有修改请求,请示控制可以是非正式方式或正式方式你是否能比较正确地估计每次修改的影响

2017-03-14 15:20:56

代码大全(7)之结构设计

使用抽象数据类型优点(ADT):可以隐藏实现细节把改动的影响限制在局部更容易改进性能减少修改时犯错误的可能性使程序成为自说明的避免了在程序中四处传递数据的麻烦准则:把典型的计算机专业数据结构构建为抽象数据类型把常见的目标如文件等处理为抽象数据类型即使是简单的问题也应该考虑使用抽象数据类型可以提供一对互补的操作应相对ADT所存储的介质独立地引用

2017-03-14 15:17:46

代码大全(6)之数据类型

自建数据类型的准则:1、建立具有面向功能名称的类型2、要避免使用含有已定义变量类型的名称3、避免使用已定义类型4、不要对已定义类型重新定义5、定义替换类型以增强移植性6、使用其他类型来建立新类型如何避免初始化错误:1、检查输入参数的有效性2、在使用变量的位置附近对其进行初始化3、要特别注意计数器和累加器4、查找需要重新进行初始化的地方5、对命

2017-03-14 09:44:31

代码大全(5)之面向对象设计

设计的层次:1、划分成子系统2、划分成模块3、划分成子程序4、子程序内部的设计结构化设计的组成:1、系统组织。系统被设计成几个黑盒子,明确定义的子程序和模块、接口的实现细节对其他子程序来说都是隐含的2、开发设计的策略3、评估设计准则4、关于问题的明确说明,是解决问题的指导原则5、表达设计的图形和语言工具,包括PDL和结构图面向对象的关键思

2017-03-14 09:39:03

代码大全(4)之模块化

常见需要隐藏的信息:1、容易被改动的区域对硬件有依赖的地方;输入和输出;非标准语言特性;难以设计和实现的域;状态变量;数据规模限制;商业规则;2、复杂的数据对复杂数据的使用程度,主要取决于程序。3、复杂的逻辑隐含复杂的逻辑可言改善程序的可读性4、在程序语言层次上的操作一般在设计一组在程序语言语句层次上操作数据的子程序时,应该把对数据操作隐含在子程序组中,这样程序

2017-03-14 08:56:39

代码大全(3)之子程序

子程序在结构设计中应该被指出:子程序将要包含的信息子程序的输入子程序的输出,包括受到影响的全局变量子程序将如何处理错误创建子程序:是否检查过先决条件已经满足了吗定义子程序将要解决的问题了吗结构设计是否足够清楚如何测试子程序是否从模块化水平或满足时间和内存需求角度考虑过效率问题是否查阅过参考书,寻找有帮助的算法必要时,是否在逻辑设计之前考虑了数据

2017-03-14 08:52:19

代码大全(2)之先决条件

需求内容:系统的所有输入都定义了吗,包括他们的来源、精度、取值范围和频率?系统所有的输出都定义了吗,包括他们的目标、精度、取值范围、频率和格式?所有的报告格式都定义了吗,所有的硬件和软件接口都定义了吗所有的通信界面都定义了吗,包括握手、错误检查以及通信约定是否从用户的观点出发,定义了所有必要操作的反映时间是否定义了时间问题,如处理时间、数据传输率以及系统吞吐能力是否

2017-03-14 08:48:05

代码大全(1)之软件创建

软件创建:问题定义需求分析实现计划总体设计详细设计创建及实现系统集成单元测试系统测试校正性的维护功能强化“编程”隐含着把已经设计好的程序机械的翻译成机器语言的过程,“创建”指的是创造性和决策性活动,包含一些特定的任务:验证基础工作已经完成,可以进行创建工作设计和编写子程序与模块创立数据类型并命名变量选择控制结构并组织语句块找出

2017-03-14 08:43:49

__cdecl __fastcall与 __stdcall

__cdecl   __fastcall与   __stdcall   调用约定:   __cdecl   __fastcall与   __stdcall,三者都是调用约定(Calling   convention),它决定以下内容:1)函数参数的压栈顺序,2)由调用者还是被调用者把参数弹出栈,3)以及产生函数修饰名的方法。   1、__stdcall调用约定:函数的参数自右向

2015-01-13 17:23:18

查看更多

勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!