![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
灵台渐明
iteye_12828
这个作者很懒,什么都没留下…
展开
-
突然想到软件的领域可以用一幅图来表示
突然想到软件的领域可以用一幅图来表示。 在软件中的领域,其实是已明确的。在需求分析阶段要想明确用户的领域,需要抛开软件本身,理解用户的术语(有时用户的术语恰好和软件的术语混淆,那不如另选一个词)。比较头痛的事用户只能说出一个词却不知如何解释它。这时要需求分析人员引导用户,比如:用户说A,然后不说了。因为他知道A是什么,却不知如何解释。那要问A包括什么,用户如何使用这个概念等,把用户口中的...2015-05-25 16:25:24 · 130 阅读 · 0 评论 -
js界面
js界面组件,可以通过组合jquery插件形成。界面的状态数据由控件自已保持。例子就是之前实现的,右边widget例表拖到左侧widget例的功能。例表的顺序、widget状态都是由jquery的sortable和draggable的使用。有的界面可以不使用现成的,完全自已实现,比如tab页。这时把当前tab记录在变量中,用来协调tab的显示是一个办法。从上边的例子,说到交互式编程...2011-11-27 16:20:36 · 328 阅读 · 0 评论 -
java调用Aix的Shell脚本时注意
平台:aix 5jdk:jdk5_aix_64Process的waitFor方法是否完成和process的输入输出流的ready()方法返回值的关系可以是任意的,包括:调用返回前 false调用返回前 true调用返回后 false调用返回后 true...2011-11-27 16:09:35 · 256 阅读 · 0 评论 -
OO的环境下,需要控制对象
对象已经存在,但没有你需要的功能。这时需要在已有对象的基础上编写逻缉,这样的逻缉作为控制逻缉存在是合适的。比如:String的 非null非空串判断又如:调用别人提供的webservice API,一样存在类似的情况。这说明,在现实的OO编程中,还是需要一部份逻缉是独立存在的,而它相关的数据不是和它在一个地方的。这样的逻缉,因为不能随着对象的出现而出现,因此可能会写...2011-11-02 21:37:44 · 95 阅读 · 0 评论 -
浅析领域、领域模型、软件、OO
也许这是高深的话题,但在这上边我有一些心得,写在这里与大家分享,高识之士万误见怪。内容:1.领域、领域模型、软件领域是软件所涉及的问题空间。这话太不好懂。其实就是软件所解决问题的相关环境。比如:一个图书管里系统A,一定会涉及图书馆本身的内容。比如:书、读者、借书卡、书架、等。领域的内容就是领域内存在的事物即领域对象。按需要抽取领域内的信息,即可得到领域模型。通常可以用类图表...2011-11-01 22:50:01 · 487 阅读 · 0 评论 -
什么是领域?
领域是需求生存的环境。领域也可被称为:问题空间、问题域。领域的重要特性是:存在性。也就是说,它是存在的,且必须存在,并具有一定的稳定性。但领未必是客观存在,有的邻域是人为创造出来的。比如:超级马力游戏。这个领域是人为创造出来的,但是当创艺完成后,会具有一定的稳定性。领域的构成:和需求相关的事物(领域对象)。它具有属性和行为。因此可以用类图来表示领域模型。因为领域的存...2011-10-29 20:57:30 · 2352 阅读 · 0 评论 -
用户原始需求与需求的展开
需求可以分为业务需求和软件功能需求。业务需求来自于用户领域。软件功能需求,是由用户的业务需求、用户的直接意见、当前的软件技术、成本共同决定的。业务需求和软件功能需求,用户可能会直接给出。但通常有模糊不清和不完整的地方。这时需要分析人员进行展开。展开时不明确的地方将它明确、不完整的功能需要补全。展开时要尽量和用户确认,以避免用户有不同意见。开发工作不必等需求完全展开再...2011-10-26 13:01:49 · 643 阅读 · 0 评论 -
面向对象编程的目的和起因
面向对象编程的目的不是造出完美的对象,而是造出符合要求的软件。面向过程的方法是将数据和步骤分开的。这是一种计算机的思维模式。这样会对数据和操作分开进行思考,这样忽视了数据和操作的相关性。数据和操作是关系密切的。如果将数据和数据上的操作一同思考,是更加合理的,这自然形成了对象的概念。我想,这是面向对象方法的起因之一。...2011-10-25 14:44:57 · 512 阅读 · 0 评论 -
面向对象编程 vs 面向过程编程
面向过程编缉是最容易让人理解的编程方式。将数据与逻缉分开,逻缉本身就是一些步骤。面向对象支持:封装、继承、多态封装:面向对象的编程方法,要求把数据和数据相关的操作放到一个对象中,从而在语言层面上,支持逻缉的对象分解。这自然的使逻缉模块化了。程序的模块化,是大型程序所必须的,面向过程编程一样需要程序模块化。面向对象编程扩展了面向过程编程的模块划分方法。对象分解,为逻缉...2011-10-20 15:11:19 · 97 阅读 · 0 评论 -
工作计划的细节不能拖后
用户要的比我知道的少,领导什么也不知道但希望尽决完成。仔细考虑要做多少是迟早的事,这个考虑要先做,才能对工程有一个明确的预期和目标。 难以下决定的问题,一定要尽早摆出来。才能在战略上和领导达成一致,从而决定要做多少。...原创 2010-08-06 09:44:38 · 110 阅读 · 0 评论 -
工作流中的创新概念,需要谨慎对待。
为了某种应用场景,在工作流模型中的创新概念,需要谨慎对待。往往一个人的思路是不全面的。有多人参与讨论,有助于确定合理的方案,在讨论中逐渐明晰相关的问题。这次对动态XX的讨论过程,是一个明显的例子。讨论出来三个方案,只有一个是最恰当的。这个过程是一个创新和探索的过程。可能正确的观点直接导出的结论是不恰当的。比如这次,动态XX和静态XX是存在概念区分的观点,直接导致我认为工作流中相同的XX...2011-01-29 23:04:47 · 161 阅读 · 0 评论 -
使用Hibernate值类型集合产生的并发问题和解决方法
Hibernate的值类型集合用起来很方便,但在最近的使用中发现它有并发问题。如下:有一个持久化类A需要包括n个有序的long型数。类A需要保存到数据库中。类A如下:[code="java"]public class Foo{ // some properties List longNumbers=new ArrayList(); ...2011-01-10 01:05:12 · 142 阅读 · 0 评论 -
给客户做培训的心得
前天,给客户做了三个小时的培训。刚开始时,我按照PPT开始讲,尽管有图,我想我说的也还算清楚。可是,客户们脸上是一片迷茫。当我说完一段后,我说:“大家有什么问题吗?”。谁也不说话,并且有人脸上的表情,尾毛都挤一块去了。看来是没听懂。 这时,一直和我配合的用户,和我说“讲讲你做的例子”。这时,我打开程序开始介绍具本的例子,讲了一个环节后,终于用户开始提问了,说明听懂了。 本来,我打算...2011-01-08 12:29:06 · 285 阅读 · 0 评论 -
验证String是不是整数,用异常作判断怎么了!(续3)入口
尽管我发的贴子都被隐藏了,相信有见识的人, 是能从其中学到东西的。这里提供入口,还想看这贴子的人可以从这里进入:http://www.iteye.com/topic/857589 感谢,那些投过我良好和精华的同仁们,也感谢那些,投我隐藏但真懂我说的是什么的人...很报歉让最后一贴还是被隐掉,各位的回贴也附之东流,没办法。我个人不会向无知低头,谢谢你们的参与......2011-01-03 19:26:10 · 81 阅读 · 0 评论 -
做正确的事和正确的做事的区别
记得几年前看 看到这样一句话:分析和设计可以概括为:做正确的事(分析)和正确地做事(设计)。 当时 "做正确的事" "正确的做事" 没看明白. 这两天再看这本书,还是没看明白.昨天偶尔看到一本讲管理的书上说 领导要"正确的做事" 部门主管要"做正确的事"突然明白了这句话.所谓做正确的事,即为不做不正确的事。这是要求做事的人要有区分正确的事和不正确的事的本领。这对于软件需求分...2012-04-16 13:22:01 · 1906 阅读 · 0 评论 -
效率低下的加班的结果就是没有质量的产品
如果公司有事没事都要加班,这样的害处是很大的。它会导致软件没有质量可言。 最根本的问题是:对于管理和设计人员,由于没有人力成本的约束,再差的软件解决方案也敢用,因为可以靠加班进行补偿,然后应付了事。这样就造成了对软件设计的不重视,从而也不重视软件人才。 随意的解决软件中的复杂问题,是不会产生好的软件的。 不重视软件人才,是不可能形成优良的技术团队的,没有好的团队是...2012-09-05 22:08:46 · 134 阅读 · 0 评论 -
软件开发过程新领悟
最近做项目对于产品开发过程控制有了新认识,先暂记如下,以后再研究。需求分析与设计是按主题划分的基本上一个研发类项目可按如下主题划分:1.业务与问题主题 分析需求和问题、得出产品构想。2 解决方案主题 需求分析后设计解决方案(产品架构 核心产品功能设计)。3.产品功能主题 需求分析后产品功能设计。(覆盖所有功能点)4.程序设计主题 需求分析后程序设计(详细数据结构...2015-04-25 21:47:31 · 123 阅读 · 0 评论 -
设计是一种企业文化
文化是什么,真的以为很高深,以下是摆渡出来的内容:[b]文化(culture)是人与人、人与自然、人与观念之间关系的意义系统(罗红光,2014)。与自然界的存在不同,文化特指所有“人为的事实”,它可以传承、传播,是人类沟通的唯一渠道,也是人之所以称之为人的本质特征。认同某文化的人形成凝聚力,与此同时也就拥有了排他性,因此文化是一种力学现象,其约束力在于可规范个体,个体也可以通过文化...2015-02-04 09:46:03 · 139 阅读 · 0 评论 -
封装是软件开发的最基本准则,时序图用于设计良好封装。
1.封装支持了信息隐蔽。2.针对接口编程是封装的结果,支持信息隐蔽。3.内聚和耦合用来衡量封装的优劣。4.时序图的主要作用是促进合理的封装。使设计人员可以在方法级进行思考,从而在方法级得到 一个合理的结构。 在方法级和业务逻辑通常有简单的对应关系,增强了软件的可读性、可修改性、可扩展性及鲁棒性。...原创 2016-12-12 13:03:46 · 291 阅读 · 0 评论 -
Spring DI 的作用
[table]|1.取代程序中的 new、工厂和单粒 |无需接口|2.支持aop |有接口时使用java的proxy技术|3.支持mock |需要接口|4.支特受保护变化 |需要接口|5.隔离软件的不同组件 |需要接口 [/table]...2013-03-22 10:36:37 · 446 阅读 · 0 评论 -
OO和GOF设计模式的关系
OO本身是一种软件的构造范型。它本身的分解形式,使得软件可复用、可扩展。OO本身并不要求应用GOF设计模式。但OO在某些情况下,直观的OO表达,仍就为软件引入了不好的因素比如:两个对象需要用到一个算法。这时会产生重复逻缉,不能应对变化,类爆炸,不易修改和维护。这时就需要一些方法来达到某种设计目的。这时:需要自已想办法,GOF设计模式是可选途径之一。...2013-03-09 07:27:26 · 155 阅读 · 0 评论 -
界面和领域模型的关系
软件必然体现领域模型。对于面向过程的软件是以数据和过程拆分开了的型式体现。面向对象则是将数据和过程放到一起,这样能和领域在表式上采用类式的形式。对于编缉器类软件,编缉器本身必须能表达被编缉的数据,所以编缉器本身就以一种特殊的形式体现了领域。因此对于这样的软件,可能只在编缉结束时,才把数据写到自定义的领域模型中。用自定义的类来体现领域,是一种理想的领域表达方式。对于一些软...原创 2013-03-09 07:08:57 · 241 阅读 · 0 评论 -
Spring带来了什么?OOD学而无用
2年前曾发过一个贴子被评为新手:[url]http://www.iteye.com/topic/865387[/url]终于有机会使用spring了,也用了一年了,再谈谈现在的感想,是否还会评为新手呢?目前我接触到的spring功能包括:IOC 构建分层关系:具体指 action->service->dao 架构。我参与的项目都采用接口类型注入,这里还包括了spring...2013-02-25 19:18:45 · 151 阅读 · 0 评论 -
switch 最后应加上break,由此想到的
如果switch中的每个case都加了break语句,最后一个case要不要加呢?从逻缉上看是没有差别的,但今天遇到一个情况,我同事改我之前写的一段代码,直接在switch中又加了一个新的case,而原来的最后一个case没有加上break,这就导致了错误。因此,在写switch时,最后加上一个对逻缉没有影响的break是有意义的。就象我之前写了一个单粒的类,没有把构造设为...2012-11-30 10:03:04 · 156 阅读 · 0 评论 -
注意初级人员无项目意识
初级人员的工作认识很局限,常常以为完成分配的任务就行了,其他的就不管了。项目经理一定要注意子任务的对接。初级人员无法意识到任务完成后,需要做的协同工作,造成任务不能对接,却常常给项目经理造成任务完成的假象。一个需求牵扯到不同技术的工作人员,明确任务的负责人,是一个可用的方法。...2015-10-13 11:15:05 · 115 阅读 · 0 评论 -
识人与用人
最近为公司招人,连续招了5个,最后仅仅留下一个。为项目带来了很大影响。现在的开发人员很不稳定。我原来小看了招聘这件事,只是以为,公司有强大的技术和资金,足以招揽人员。但实际情况是:1.应届生没有经验,不能通过公司的技术实力,向其展现公司实力。这时公司的形象更起作用。2.有一定经验的,可以理性的进行选择。3.应届研究生,工作能力弱,选择多(比如:海外读博)。能否稳定要看人,得...2015-10-13 10:12:33 · 129 阅读 · 0 评论 -
通用化产品的研发
什么是通用化产品:在我看来,需要具有以下特性:1.功能全面,具有前瞻性用户没想到的有用功能有很多,这些功能都是产品功能应该覆盖的。产品的功能是全面总结现在的用户需求,并要包括未来用户的需求。这和在现场用户要什么做什么的定制化开发,是完全不同的。这就需要有产品的设计师,产品不是单个项目需求驱动的,产品是设计师驱动的。只有一帮程序员,是做不出产品的。2.功能通用,适用性广泛...2015-10-10 14:33:01 · 277 阅读 · 0 评论 -
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 · 127 阅读 · 0 评论 -
再论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 · 174 阅读 · 0 评论 -
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 · 250 阅读 · 0 评论 -
错误的file.encoding会导致java程序在控制台输出乱码
测试代码如下public class Test{ static public void main(String argvs[]){ System.out.println("你好"); }} 编译后按如下方式运行:java Test显示正常。 按如下方法运行则出现乱码:java -Dfile.encoding=UTF-8 Test则出现乱码。...2010-11-08 14:22:32 · 133 阅读 · 0 评论 -
分层方式的两种存在形式
1.层次之间以依赖关系存在。比如: osi 7层模型 2.层次之间以精化(?)关系存在。比如: 自顶向下逐步求精的过程。先会考虑总体的解决方案,然后再在这个基本上进行细化。...2010-10-25 10:41:46 · 243 阅读 · 0 评论 -
tomcat6 embeded(2009-03-02 12:17)
Tomcat 中 Embeded 是tomcat为了方便嵌入Tomcat而准备的类,这个类的源代码头部注释,有如何使用Embeded类的说明。原创 2010-01-25 11:54:20 · 106 阅读 · 0 评论 -
设计层次和实现层次并不是完全统一的(2009-03-01 23:01)
设计层次是从大处着眼,处理软件的结构性问题。设计模型需要忽略实现的细节。而实现时统满了细节,自然的设计模型,可能在实现时的细节是不自然的。比如:使用strusts1.2 对公司的信息进行组合查询,公司的类型在设计时规定以整型来代表,分为三类,对应的整型值为:1 2 3。查询接口直接以组合查询条件作为参数,这里如果用户没有输入某个条件,则忽略这个条件(这种方式不能查询某字段为空的记录...原创 2010-01-25 11:52:17 · 100 阅读 · 0 评论 -
新认识 程序员的 设计能力 和 模仿能力(2009-02-27 10:15)
也许是个假设但是很有可能是真的程序员都有模仿能力,无论什么水平的程序员,都在应用模仿能力。模仿能力使得程序员的工作快速,但是工作的结果好坏取决于被模仿的程序。这可以解释为什么一些普通程序员可快速的完成工作,工作结果可能是很高质量的,也可能是很低质量的。高级程序员具有独立运用所学知识和现有工具设计程序的能力。这里仍旧有模仿的行为,将已有的框架、程序打散,混合自已的知识,新的方...原创 2010-01-25 11:34:46 · 163 阅读 · 0 评论 -
用户表中以用户登录名作为主键的好处(2009-02-25 13:29)
以前一直认为在一个表中应该使用代理主键而不应该使用业务主键。这个理论大多时候是正确的。但对于用户表我觉得应该使用登录名作为主键。其原因如下:1. 方便实现日志功能。对用户信息的使用可能出现在软件的不同部分,在不同部分间通常都是传递用户表的主键来标识用户的,如果主键是代理主键则是一个无意义的数字,直接记录到日志中,必然给日志的使用代来不便,想要得到用户的登录名又必须得查询数据库。2....原创 2010-01-25 11:29:16 · 1667 阅读 · 0 评论 -
子程序(方法、函数)设计要点(2009-02-23 10:13)
1. 以重用为基本设计目标。目的并不是重用而是为了提高软件代码质量。这样当然对重用会有益,不过我认为,能够被重用的内容是综合考虑用例的共性而特意设计出来的功能(也许设计时并不能这样做,但也可以通过重构而得到重用的效果,前提是原来的代码设计优良所以容易调整。)。而不是这里说的在功能即定的情况下再考虑重用。在种情况下特定的功能也许只存在于特定的逻辑中,而不会得到重用。但仍要按重用进行设计,原因是它会导...原创 2010-01-25 11:22:56 · 178 阅读 · 0 评论 -
一点关于JNI的知识,但却是解决所有包冲突的关键知识,很有用(2008-11-13 14:48)...
这段异常是什么意思?java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V这里关键就是看懂visit方法的参数类型。这个属于jni的相关知识,如下:...原创 2010-01-25 11:18:49 · 110 阅读 · 0 评论 -
EdenPark项目的几点新认识(2008-09-03 14:31)
1.效果图的制作要比制作真实的html静态页容易,因此在需求还不确定的情况下应尽量用效果图来传递界面设计信息。2.当界面需求不定,而又需要实现界面时,选择容易实现和修改并且又不失界面整洁的方案可能是最好的选择。3.当程序编写完毕,除了会出现逻上的bug,界面也会出现大量的问题,因为加入逻缉的html生成的结果并不同于单纯的html页,同时逻缉完成后,也需要对不同的浏览器进行调试,因...原创 2010-01-25 11:16:35 · 89 阅读 · 0 评论 -
怎么才能找到正确的解决方案?(2008-09-03 14:05)
有时一个方案在掉到它的细节当中后发现行不通,然后被迫找其它的方法,这时却能发现非常高明的方案。那么为什么不在找方案时就尽量多选几个方案来比较呢? ...原创 2010-01-25 11:12:30 · 103 阅读 · 0 评论