随笔分类 - 代码大全学习笔记
提升软件设计思想
摘要:一直困惑于: 如何设计写好一个类? 什么样的类算是设计比较的好?前面学习了软件首要技术革命——管理复杂度,以及设计上的一些原则。 对管理复杂度,我非常崇拜;比较笨同一时间东西太多我跟本关注不来,我非常讨厌复杂的事情,写程序我讨厌太长的函数太大的类太杂乱的逻辑。 学习原则显得非常的散乱和太具理论性不具操作性;而我工作中用的最多还是如何设计写好一个类和多个类之间交互性的问题。 在这个问题上:我时常感觉到只是一种随意性的想当然操作,写一个类仅仅是为了满足当下的需求和应用,通常也只是自己使用和维护;不用去考虑信息隐藏\封装\继承\扩展\耦合\内聚等。如果一个类不能满足要求时,要做的就是去修改...
阅读全文
摘要:实现一个系统时,需要将其分为不同的层次上进行设计;各层次如下: 1 软件系统 确定系统的框架结构;2 分解为子系统或包 将系统合理的分解为解不同的子系统,确定不同子系统之间的通信规则;常用的子系统: 业务规则:依赖于具体的业务; 用户界面:处理用户界面交互,窗口管理等; 数据库访问:隐藏数据实现细节,提供抽象的数据访问接口; 对系统的依赖性:对特定的系统依赖性进行封装; 这两个给人的感觉就太不一样!3 分解子系统中的类 子系统由多个类构成,对问题进行抽象,设计不同的类完成相应的功能; 基于接口的编程,类之间的通信方式;4 分解成子程序 确定类的细节...
阅读全文
摘要:软件的首要技术使命便是管理复杂度。为何如此呢?复杂性: 都有过这样的经验:同时让你忙的太多东西,你肯定会丢三落四!虽然你忙的焦头烂额的,但结果却是不尽人意。 或者一件事情,但是其中包含的太多东西你总想一次性做好,这里也做那里也做,结果呢乱七八糟,重头再来…… 人的大脑处理能力有限,无法同时关注太多东西,关注东西太多将会导致某些遗漏和混乱;就像是玩杂耍:抛在空中的球两个是比较容易控制,增加复杂度两个以上球难度会增大很多很多;在代码设计过程中,如果关注的太多,将会越复杂,越复杂手忙脑乱势必会造成遗漏导致错误发生。需要同时关注的事情或者逻辑太多是不可取的,但是该软件中存在诸多逻辑和复杂的事...
阅读全文
摘要:最近正好有些时间,Android也学了一个多月,发现要学习的东西非常的多。由于工作上不确定依然没有明确的方向;于是决定停下来看看书——代码大全。并记录下学习的过程。 软件开发的核心是软件构建;构建活动主要包括:详细设计,编码,调试;详细设计,编码,调试对于软件开发过程中是必不可少的,这个感觉只是将需求转化为实质性的编码工作,或者将思想用代码表达出来;说这种“构建活动”是核心,感觉有些牵强和不能理解;难道是翻译的不正确…需求分析和架构框架设计就不重要吗。 虽变化万端,而理为一贯。软件开发构建过程是建立模型的过程,这种模型都能够在生活中找到模型与之对应;借助生活中的实例模型帮助理解软件开发...
阅读全文