代码复用是绝大多数程序员所期望的,也是OO的目标之一。总结我多年的编码经验,为了使代码能够最大程度上复用,应该特别注意以下几个方面。
Archive for the ‘软件工程’ Category
软件项目管理的十条忠告
(01)专注于构建一个强有力的团队,这一团队能够解决困难的问题,并为客户创造真正的价值。 (02)领导者鼓舞;管理者授权。要同时成为优秀的领导者和管理者,你需要就愿景进行沟通并理解其细节。 (03)对可能出现的障碍有所准备,防微杜渐,在这些障碍尚未壮大时就清除它们。 (04)花时间来仔细倾听别人的意见,但不要过于担心其他人的想法。 (05)专注于事实。 (06)充当一个衰减器,而不是放大器,为团队提供稳定性。 (07)永远不要将不能解释的事情归咎为蓄意破坏。 (08)培养幽默意识来作为严肃认真的一种平衡:对工作一丝不苟,对自己轻松自如。 (09)除了工作,还应该懂得享受生活,而且每年要读25本书。 (10)相信你的直觉:如果你感觉不妙,那么很可能预感就会成真。 摘自:《软件开发的边界》
关于框架选择的几点思考
来自:J道论坛 作者:zhaoping_yu 我对hgwnet老兄的观点颇有同感。我们公司接触使用Struts可以说是比较早了(大概是从Struts刚推出不久就开始了)。当时Struts也比较轻型,其对MVC的实现确实给我们WEB项目的开发带来很大的方便。但Struts后继版本的发展,我们对其的使用反而越来越不方便了、代价越来越高。首先是Struts本身越来越庞大,原因是它想包含的功能越来越全(如果只是扩展表现层必须的功能也就罢了,可它为什么把数据库等有关的功能也考虑进去啊(我当时用的版本是这样的,其最新的版本是不是还考虑,我没有考察)),导致我们的WEB应用越来越慢,员工的学习曲线越来越陡。它提供了那么多TAG,我们大部分用不到,而且我们需要的它又没提供(或至少不是太对口)。于是我们公司就根据Struts实现MVC的原理实现了自己的MVC框架,它只考虑实现了MVC最基本的东西,相关的代码才十几K,用它替换原先的Struts后,经过相关测试,给我的感觉就象一个人脱掉笨重的外套一样。后来我们公司就一直用这个框架,也没发现对其还有太多的扩展需求。由于这个框架对我们公司来说已经够用了,在Struts后面出现的其他MVC模式框架,我们公司也没有对它们进行跟踪使用。
CMM综述
CMM简介 CMM是指“能力成熟度模型”,其英文全称为Capability Maturity Model for Software,英文缩写为SW-CMM,简称CMM。它是对于软件组织在定义、实施、度量、控制和改善其软件过程的实践中各个发展阶段的描述。CMM的核心是把软件开发视为一个过程,并根据这一原则对软件开发和维护进行过程监控和研究,以使其更加科学化、标准化、使企业能够更好地实现商业目标。
有效编写软件的75条建议
1. 你们的项目组使用源代码管理工具了么? 应该用。VSS、CVS、PVCS、ClearCase、CCC/Harvest、FireFly都可以。我的选择是VSS。 2. 你们的项目组使用缺陷管理系统了么? 应该用。ClearQuest太复杂,我的推荐是BugZilla。 3. 你们的测试组还在用Word写测试用例么? 不要用Word写测试用例(Test Case)。应该用一个专门的系统,可以是Test Manager,也可以是自己开发一个ASP.NET的小网站。主要目的是Track和Browse。
powerdesigner使用笔记
mandatory 两张数据表:表A和表B; 如果A表是mandatory,那么至少要有一张B表与A表对应; 如果B表是mandatory,那么至少要有一张A表与B表对应; PD8其实有4个版本,但是都是在安装的时候决定的,主要看你输入的是哪一个序列号,使用的是同一个安装包。它们为: PowerDesigner PhysicalArchitect 只能做PDM PowerDesigner DataArchitect 做PDM和CDM PowerDesigner ObjectArchitect 做PDM, CDM, OOM PowerDesigner Developer 做PDM和OOM 看来你安装的时候是输入了PowerDesigner Developer的序列号,如果想使用全部功能,请输入PowerDesigner ObjectArchitect的序列号 CDM: Conceptual Data Model to model the overall logical structure of a database, independent from any software or data storage structure considerations. A valid CDM can be converted to a PDM or an [...]
项目经理—你够专业吗?!
来源:http://www.builder.com.cn/2008/0318/773873.shtml 作者:贾大仙 项目经理这个名堂是愈来愈响了,早前完成一班项目管理的课程,老仙深信又将会有二十多位专业人仕短期内可考取到PMP认证(按:有老仙这么厉害的师父嘛!)。尽管学员大多是来自跨国集团的专业经理,但是由于国籍与经验不同,他们对项目经理的职能以至处事方式明显有着不一样的理解,席间有两个有趣的问题老仙很想和大家分享。
数据库设计方法、规范与技巧
本文链接: http://www.openphp.cn/index.php/article/3/100/index.html 一、数据库设计过程 数据库技术是信息资源管理最有效的手段。数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户信息要求和处理要求。
面向对象的总结
1:如果一种编程语言是真正的面向对象的语言,它必须支持以下的特点: 封装–隐藏实现细节 多态–将同一个消息发送给不同的对象并使各个对象以预定的方式对消息做出响能力 继承–拓展现存的类来生成专有类继承原来类的状态和行为的能力
大型数据库设计原则
一个好的数据库产品不等于就有一个好的应用系统,如果不能设计一个合理的数据库模型,不仅会增加客户端和服务器段程序的编程和维护的难度,而且将会影响系统实际运行的性能。一般来讲,在一个MIS系统分析、设计、测试和试运行阶段,因为数据量较小,设计人员和测试人员往往只注意到功能的实现,而很难注意到性能的薄弱之处,等到系统投入实际运行一段时间后,才发现系统的性能在降低,这时再来考虑提高系统性能则要花费更多的人力物力,而整个系统也不可避免的形成了一个打补丁工程。笔者依据多年来设计和使用数据库的经验,提出以下一些设计准则,供同仁们参考。
UML第三章的学习笔记
UML语言的概述: 1:UML统一建模语言( Unified Modeling Language ),用于商业建模,软件开发建模,及各类系统的建模。建模很符合人类思维的方式,先把具体的东西抽象化,再把抽象的东西转化为另一类具体的东西。
面向对象与基于对象的区别
面向对象的编程(OOP)能使现实世界中的概念在计算机程序中变成模块。它包括构造程序的特征以及组织数据和算法的机制。OOP语言有三个特征:封装、多态性及继承。所有这些特征与类的概念是息息相关的。