自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(80)
  • 收藏
  • 关注

文档编号与文档版本号的作用

1.文档编号 软件开发离不开设计文件的编写与审核。开发的每一个阶段都会产生很多文档。通常文档是通过svn在团队内共享的。当一个阶段下的文档数目超过50个的时候,在一个目录里查找某个文档是个痛苦的事。常常有文档的名称很长且类似的情况,这导致找到需要的文档很费时。 这里有一个简单的解决办法。为每一个文档分配一个两位的编号,每一个文档必须以文档编号开头。比如: 00...

2017-03-29 15:51:08 4186

迭代开发实践的两个关键要素

迭代开发是开发未知领域新产品的必然选择。但没有经历真正的迭代开发时,常常只能通过书籍雾里看花。 书籍里描写的经典场景是:一个迭代收尾,然后发布半成品给用户使用获取反馈,用户会说:“喔这里看上去不错,但是实际使用时我需要在这里看到...”,当迭代开发中发生这样的场景,说明迭代开发过程是有效的,产品在不断迭代和改良。 之前经历了一些号称是迭代开发的项目,很少发生这种情况。...

2017-03-27 15:09:36 515

客户需求及骨头与肉的分工方法

1.客户需求对客户需求分析后可以进行产品功能设计。而产品功能设计又会衍生出新的功能性需求。2.骨头与肉的分工方法1.team leader 负责客户需求分析和功能的概要设计,概要设计给出的是功能的骨架和应用的核心技术。2.team member 负责详细的功能设计、程序设计和开发。即在骨头的基础上丰富出软件的肉。3.开发团队规模5人最佳。1名高级,2名中级,1名...

2017-03-07 14:46:37 222

原创 封装是软件开发的最基本准则,时序图用于设计良好封装。

1.封装支持了信息隐蔽。2.针对接口编程是封装的结果,支持信息隐蔽。3.内聚和耦合用来衡量封装的优劣。4.时序图的主要作用是促进合理的封装。使设计人员可以在方法级进行思考,从而在方法级得到 一个合理的结构。 在方法级和业务逻辑通常有简单的对应关系,增强了软件的可读性、可修改性、可扩展性及鲁棒性。...

2016-12-12 13:03:46 326

原创 为什么代码明明可用,还要按标准改好。

1.好的代码是团队的要求。因为好代码,功能正确、bug少、通常更好编写、可读性强、可扩展性强。2.不可能按每块代码是否因为代码质量更好受益来要求是否需要编写良好的代码。没法制定这样的标准。且也不需要这样,最好的办法就是统一要求代码质量良好。这就像类的getter 和 setter方法,又像是战争中的覆盖式打击。如果在写代码时还需要挖空心思的思考差的代码是否能用,那就是再给写代码增加...

2016-09-18 11:57:24 192

原创 最近心得随笔

1.结构不会消失 型也不会消失,要么是显示的,要么是硬编码的在代码里的。2.代码质量标准 基本:可以清楚完备的考虑。 容易修改。需要遵守针对接口编程的基本思想,规避内容耦合。 举例: 混杂的dto作为方法参数,想针对参数打一下debug,都出现困难。不确定dto那些属 性有用。3.web mvc action ...

2016-03-24 10:37:48 184

Dao的作用

Dao在实践上常常被用到,但能用好Dao却需要明确Dao的作用。Dao 即 data access object 数据访问对象。Dao 的作用是为了简化业务逻辑的编写。将业务逻辑中用于处理特定技术的代码,单独写入到Dao中进行封装,从而尽量将业务逻辑的主要过程独立的进行表达。这就是Dao的作用。Service逻辑的编写,可不可以没有Dao?当然可以,不过有了Da...

2016-03-08 11:08:02 2826

启动用户组需求不准问题反思

两周的工作量。管理性需求,涉及及的方方面面都不了解的情况下,所做的功能设计,能完全正确的可能性小。1.领导很重视的功能,为什么不拉着领导催下属确认一下界面设计。2.已经实现的功能,领导很重视。为什么不催促确认一下是否正确。发现问题后,两个解决思路:1.小修小改先对付用。2.大改,有2/3的设计要推翻。如果需求仍不能确定准确,应该采用小修小改方式,...

2016-03-03 20:08:57 148

Spring的源头基于构件的软件开发(CBD-Component-Based Development)

最近有时间看看书补补理论。看了一些软件体系结构(software architecture)的资料。终于理解了Spring的基本思想。Spring是在CBD思想指导下开发的轻量级构件模型。为什么会把spring和ejb进行比较呢?原因很简单,因为spring和ejb都是java的构件标准。都适用于CBD开发方法。还有一些其他的构件标准:COM/DCOM/COM+、COR...

2016-02-24 09:33:23 918

尴尬的概要设计文档

一般软件开发可分为如下阶段。1.需求分析2.概要设计3.详细设计4....其中概要设计,我觉得起到的作用,就是从需求过度到详细设计阶段的一个中间过程。这种划分方式,不是从软件开发本身的需要出发的,而是按实际的项目过程控制需要划分的。因为不同的项目,需求在理解难度上、抽象程度上,千差万别。因此到达实际的产品功能设计和程序设计(即详细设计),所需要的信息,也差别很大。需求分析阶...

2016-01-27 13:35:45 499

小说提纲

1.熟练2.斗虎3.踏浪4.聚将攻坚城

2015-11-18 13:03:51 272

多子系统项目架构与人员管理

大型项目会涉及到多个子系统。每个子系统的开发工作的管理和控制和单个系统的研发有很大区别。不能简单的将单系统的研发经验直接应用在多子系统的项目里。其中的区别如下:对于单系统的情况:1.系统的业务和技术相对单一,并且系统内是具有强关联性的,各部分必须严格一致。2.需求规模有限,可以被一个人完全掌控。3.用户需求可由一个人与用户协调确定。但对于多子系统的情况,比如:有展现、有...

2015-10-30 13:06:43 863

软件开发的文档与审查

软件开发必须过程化,必然需要文档的辅助。需要写文档是毋庸置疑的,这包括:需求分析文档、设计文档等。但没搞过这个的项目团队,往往抓不住重点,走入一些误区。1.没有大而全的模板没有大而全的文档模板,能照着模板写文档。软件开发本身是一个认知和设计的过程。文档的内容就是认知和设计的结果。怎么可能在认知和设计没发生的情况下,就事先有一个模板告诉你该写什么。模板最多提供一个固定的文档形...

2015-10-20 10:27:50 747

代码复查的内容与方法

一、代码复查的作用:1.查找bug。逻辑上的bug,从代码层面最容易发现。一些对需求的不理解,手误等也很容易发现。2.查设计一致性。软件的功能组织、数据表示、公用代码等每一个软件都会形成自己的实现模式。新加入项目的程序员由于不熟悉原有软件的设计约定,很可能会按自己的方式编写功能,从而导致软件设计不一致。这对于无MVC框架的OO程序这是致命的,最终会导致软件的...

2015-10-17 22:06:41 1155

注意初级人员无项目意识

初级人员的工作认识很局限,常常以为完成分配的任务就行了,其他的就不管了。项目经理一定要注意子任务的对接。初级人员无法意识到任务完成后,需要做的协同工作,造成任务不能对接,却常常给项目经理造成任务完成的假象。一个需求牵扯到不同技术的工作人员,明确任务的负责人,是一个可用的方法。...

2015-10-13 11:15:05 143

识人与用人

最近为公司招人,连续招了5个,最后仅仅留下一个。为项目带来了很大影响。现在的开发人员很不稳定。我原来小看了招聘这件事,只是以为,公司有强大的技术和资金,足以招揽人员。但实际情况是:1.应届生没有经验,不能通过公司的技术实力,向其展现公司实力。这时公司的形象更起作用。2.有一定经验的,可以理性的进行选择。3.应届研究生,工作能力弱,选择多(比如:海外读博)。能否稳定要看人,得...

2015-10-13 10:12:33 167

通用化产品的研发

什么是通用化产品:在我看来,需要具有以下特性:1.功能全面,具有前瞻性用户没想到的有用功能有很多,这些功能都是产品功能应该覆盖的。产品的功能是全面总结现在的用户需求,并要包括未来用户的需求。这和在现场用户要什么做什么的定制化开发,是完全不同的。这就需要有产品的设计师,产品不是单个项目需求驱动的,产品是设计师驱动的。只有一帮程序员,是做不出产品的。2.功能通用,适用性广泛...

2015-10-10 14:33:01 361

hibernate的Map,有些问题

Hibernate 的Map 用起来的确方便,但是对字段的命名,可能是 aj_key和aj_value,这样不好。另外发现,hibernate3,不能根据map的key查value。不得不把Map都查出来,在内存里查找。hql="select elements(p1.variablesEncode) from ProcessInstance p1 where p1.dbId = 1...

2015-09-21 17:18:36 173

再论Spring的用处(mvc 框架、spring、hibernate应用有感)

从2012年到现在使用spring已有4个年头。记得当时发了个贴[url]http://www.iteye.com/topic/865387[/url]还吵来吵去的。现在再看看这些框架的作用,其实我所用到的其实是简单的思想,即:[b]积木式的程序设计[/b]我一直研究OO方法,现在可以确认,mvc、spring、hibernate,在OO的层面,大多数情况,只是用到...

2015-09-17 09:34:11 207

突然想到软件的领域可以用一幅图来表示

 突然想到软件的领域可以用一幅图来表示。 在软件中的领域,其实是已明确的。在需求分析阶段要想明确用户的领域,需要抛开软件本身,理解用户的术语(有时用户的术语恰好和软件的术语混淆,那不如另选一个词)。比较头痛的事用户只能说出一个词却不知如何解释它。这时要需求分析人员引导用户,比如:用户说A,然后不说了。因为他知道A是什么,却不知如何解释。那要问A包括什么,用户如何使用这个概念等,把用户口中的...

2015-05-25 16:25:24 186

软件开发过程新领悟

最近做项目对于产品开发过程控制有了新认识,先暂记如下,以后再研究。需求分析与设计是按主题划分的基本上一个研发类项目可按如下主题划分:1.业务与问题主题 分析需求和问题、得出产品构想。2 解决方案主题 需求分析后设计解决方案(产品架构 核心产品功能设计)。3.产品功能主题 需求分析后产品功能设计。(覆盖所有功能点)4.程序设计主题 需求分析后程序设计(详细数据结构...

2015-04-25 21:47:31 154

设计是一种企业文化

文化是什么,真的以为很高深,以下是摆渡出来的内容:[b]文化(culture)是人与人、人与自然、人与观念之间关系的意义系统(罗红光,2014)。与自然界的存在不同,文化特指所有“人为的事实”,它可以传承、传播,是人类沟通的唯一渠道,也是人之所以称之为人的本质特征。认同某文化的人形成凝聚力,与此同时也就拥有了排他性,因此文化是一种力学现象,其约束力在于可规范个体,个体也可以通过文化...

2015-02-04 09:46:03 163

Spring DI 的作用

[table]|1.取代程序中的 new、工厂和单粒 |无需接口|2.支持aop |有接口时使用java的proxy技术|3.支持mock |需要接口|4.支特受保护变化 |需要接口|5.隔离软件的不同组件 |需要接口 [/table]...

2013-03-22 10:36:37 500

OO和GOF设计模式的关系

OO本身是一种软件的构造范型。它本身的分解形式,使得软件可复用、可扩展。OO本身并不要求应用GOF设计模式。但OO在某些情况下,直观的OO表达,仍就为软件引入了不好的因素比如:两个对象需要用到一个算法。这时会产生重复逻缉,不能应对变化,类爆炸,不易修改和维护。这时就需要一些方法来达到某种设计目的。这时:需要自已想办法,GOF设计模式是可选途径之一。...

2013-03-09 07:27:26 192

原创 界面和领域模型的关系

软件必然体现领域模型。对于面向过程的软件是以数据和过程拆分开了的型式体现。面向对象则是将数据和过程放到一起,这样能和领域在表式上采用类式的形式。对于编缉器类软件,编缉器本身必须能表达被编缉的数据,所以编缉器本身就以一种特殊的形式体现了领域。因此对于这样的软件,可能只在编缉结束时,才把数据写到自定义的领域模型中。用自定义的类来体现领域,是一种理想的领域表达方式。对于一些软...

2013-03-09 07:08:57 282

Spring带来了什么?OOD学而无用

2年前曾发过一个贴子被评为新手:[url]http://www.iteye.com/topic/865387[/url]终于有机会使用spring了,也用了一年了,再谈谈现在的感想,是否还会评为新手呢?目前我接触到的spring功能包括:IOC 构建分层关系:具体指 action->service->dao 架构。我参与的项目都采用接口类型注入,这里还包括了spring...

2013-02-25 19:18:45 177

switch 最后应加上break,由此想到的

如果switch中的每个case都加了break语句,最后一个case要不要加呢?从逻缉上看是没有差别的,但今天遇到一个情况,我同事改我之前写的一段代码,直接在switch中又加了一个新的case,而原来的最后一个case没有加上break,这就导致了错误。因此,在写switch时,最后加上一个对逻缉没有影响的break是有意义的。就象我之前写了一个单粒的类,没有把构造设为...

2012-11-30 10:03:04 198

效率低下的加班的结果就是没有质量的产品

如果公司有事没事都要加班,这样的害处是很大的。它会导致软件没有质量可言。 最根本的问题是:对于管理和设计人员,由于没有人力成本的约束,再差的软件解决方案也敢用,因为可以靠加班进行补偿,然后应付了事。这样就造成了对软件设计的不重视,从而也不重视软件人才。 随意的解决软件中的复杂问题,是不会产生好的软件的。 不重视软件人才,是不可能形成优良的技术团队的,没有好的团队是...

2012-09-05 22:08:46 182

做正确的事和正确的做事的区别

记得几年前看 看到这样一句话:分析和设计可以概括为:做正确的事(分析)和正确地做事(设计)。 当时 "做正确的事" "正确的做事" 没看明白. 这两天再看这本书,还是没看明白.昨天偶尔看到一本讲管理的书上说 领导要"正确的做事" 部门主管要"做正确的事"突然明白了这句话.所谓做正确的事,即为不做不正确的事。这是要求做事的人要有区分正确的事和不正确的事的本领。这对于软件需求分...

2012-04-16 13:22:01 1987

js界面

js界面组件,可以通过组合jquery插件形成。界面的状态数据由控件自已保持。例子就是之前实现的,右边widget例表拖到左侧widget例的功能。例表的顺序、widget状态都是由jquery的sortable和draggable的使用。有的界面可以不使用现成的,完全自已实现,比如tab页。这时把当前tab记录在变量中,用来协调tab的显示是一个办法。从上边的例子,说到交互式编程...

2011-11-27 16:20:36 354

java调用Aix的Shell脚本时注意

平台:aix 5jdk:jdk5_aix_64Process的waitFor方法是否完成和process的输入输出流的ready()方法返回值的关系可以是任意的,包括:调用返回前 false调用返回前 true调用返回后 false调用返回后 true...

2011-11-27 16:09:35 311

OO的环境下,需要控制对象

对象已经存在,但没有你需要的功能。这时需要在已有对象的基础上编写逻缉,这样的逻缉作为控制逻缉存在是合适的。比如:String的 非null非空串判断又如:调用别人提供的webservice API,一样存在类似的情况。这说明,在现实的OO编程中,还是需要一部份逻缉是独立存在的,而它相关的数据不是和它在一个地方的。这样的逻缉,因为不能随着对象的出现而出现,因此可能会写...

2011-11-02 21:37:44 122

浅析领域、领域模型、软件、OO

也许这是高深的话题,但在这上边我有一些心得,写在这里与大家分享,高识之士万误见怪。内容:1.领域、领域模型、软件领域是软件所涉及的问题空间。这话太不好懂。其实就是软件所解决问题的相关环境。比如:一个图书管里系统A,一定会涉及图书馆本身的内容。比如:书、读者、借书卡、书架、等。领域的内容就是领域内存在的事物即领域对象。按需要抽取领域内的信息,即可得到领域模型。通常可以用类图表...

2011-11-01 22:50:01 563

什么是领域?

领域是需求生存的环境。领域也可被称为:问题空间、问题域。领域的重要特性是:存在性。也就是说,它是存在的,且必须存在,并具有一定的稳定性。但领未必是客观存在,有的邻域是人为创造出来的。比如:超级马力游戏。这个领域是人为创造出来的,但是当创艺完成后,会具有一定的稳定性。领域的构成:和需求相关的事物(领域对象)。它具有属性和行为。因此可以用类图来表示领域模型。因为领域的存...

2011-10-29 20:57:30 2809

用户原始需求与需求的展开

需求可以分为业务需求和软件功能需求。业务需求来自于用户领域。软件功能需求,是由用户的业务需求、用户的直接意见、当前的软件技术、成本共同决定的。业务需求和软件功能需求,用户可能会直接给出。但通常有模糊不清和不完整的地方。这时需要分析人员进行展开。展开时不明确的地方将它明确、不完整的功能需要补全。展开时要尽量和用户确认,以避免用户有不同意见。开发工作不必等需求完全展开再...

2011-10-26 13:01:49 721

面向对象编程的目的和起因

面向对象编程的目的不是造出完美的对象,而是造出符合要求的软件。面向过程的方法是将数据和步骤分开的。这是一种计算机的思维模式。这样会对数据和操作分开进行思考,这样忽视了数据和操作的相关性。数据和操作是关系密切的。如果将数据和数据上的操作一同思考,是更加合理的,这自然形成了对象的概念。我想,这是面向对象方法的起因之一。...

2011-10-25 14:44:57 557

面向对象编程 vs 面向过程编程

面向过程编缉是最容易让人理解的编程方式。将数据与逻缉分开,逻缉本身就是一些步骤。面向对象支持:封装、继承、多态封装:面向对象的编程方法,要求把数据和数据相关的操作放到一个对象中,从而在语言层面上,支持逻缉的对象分解。这自然的使逻缉模块化了。程序的模块化,是大型程序所必须的,面向过程编程一样需要程序模块化。面向对象编程扩展了面向过程编程的模块划分方法。对象分解,为逻缉...

2011-10-20 15:11:19 134

原创 Axis1.5.5的效率问题

Axis1.5.5的服务端如果采用Pojo的形式,则由于使用了java.beans.Introspector 处理服务的返回值对象,而java.beans.Introspector会到处搜索BeanInfo信息,会返复的调用系统的ClassLoader对象,从而造成效率不高。(在并发请求很多时,会体现出来)参看:[url]https://issues.apache.org/jira/bro...

2011-08-11 10:35:15 310

用代理主键进行排序需要加小心

主键我通常使用自增形式的长整数。今天遇到一个情况,客户要用sql导入一些老数据,这些老数据插入后,生成了最新的主键,但是日期却是老的。由此我想到,以前的代码里有用主键进行新老记录排序的作法。对于可能出现这样情况的表,这种做法会带来错误的结果。应用程序的表通常是程序私用的,因此用主键大小区分新老记录通常是安全的。...

2011-06-22 17:28:19 93

之前没看懂的js代码,今天看懂了

寓尔看过几眼jQuery插件的代码,发现这样的代码很是希奇:(function($){ js code...})(jQuery);从未深究,今天突然想明白了。实际上,上边的代码就是一个js函数调用。以下这部份[i](function($){ js code...})[/i]相当于是函数;[i](jQuery)[...

2011-06-16 17:29:14 318

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除