gdpglc的博客 -凯发k8国际

`
gdpglc
  • 浏览: 84749 次
  • 性别:
  • 来自: 长春
博主相关
  • 博客
  • 微博
  • 相册
  • 收藏
  • 社区版块
    • ( 0)
    • ( 413)
    • ( 9)
    存档分类
    最新评论
    文章列表
    两种模式: 1.接口调用模式 2.数据通道模式
    1.封装支持了信息隐蔽。 2.针对接口编程是封装的结果,支持信息隐蔽。 3.内聚和耦合用来衡量封装的优劣。 4.时序图的主要作用是促进合理的封装。使设计人员可以在方法级进行思考,从而在方法级得到 一个合理的结构。   在方法级和业务逻辑通常有简单的对应关系,增强了软件的可读性、可修改性、可扩展性及鲁棒性。
    初级人员的工作认识很局限,常常以为完成分配的任务就行了,其他的就不管了。 项目经理一定要注意子任务的对接。初级人员无法意识到任务完成后,需要做的协同工作,造成任务不能对接,却常常给项目经理造成任务完成的假象。 一个需求牵扯到不同技术的工作人员,明确任务的负责人,是一个可用的方法。
     
    最近为公司招人,连续招了5个,最后仅仅留下一个。为项目带来了很大影响。现在的开发人员很不稳定。我原来小看了招聘这件事,只是以为,公司有强大的技术和资金,足以招揽人员。 但实际情况是: 1.应届生没有经验,不能通过公司的技术实力,向其展现公司实力。这时公司的形象更起作用。 2.有一定经验的,可以理性的进行选择。 3.应届研究生,工作能力弱,选择多(比如:海外读博)。能否稳定要看人,得注意观察。   因为研究生的自身定位,要混日子多半去大的单位。在小单位不图名,不图利的混日子,那就是没安好心了。 因此,招人绝不是靠:坦诚相待、和技术实力,就行的。 现在的从业人员,别有用心的很多。从业者常常把 ...
    什么是通用化产品: 在我看来,需要具有以下特性: 1.功能全面,具有前瞻性 用户没想到的有用功能有很多,这些功能都是产品功能应该覆盖的。产品的功能是全面总结现在的用户需求,并要包括未来用户的需求。这和在现场 ...
    hibernate 的map 用起来的确方便,但是对字段的命名,可能是 aj_key和aj_value,这样不好。 另外发现,hibernate3,不能根据map的key查value。不得不把map都查出来,在内存里查找。 hql="select elements(p1.variablesencode) from processinstance p1 where p1.dbid = 145 and index(p1.variablesencode)='" autojobconstants.$busipathhaserr$ "'" 生成 ...
    从2012年到现在使用spring已有4个年头。 记得当时发了个贴http://www.iteye.com/topic/865387 还吵来吵去的。 现在再看看这些框架的作用,其实我所用到的其实是简单的思想,即: 积木式的程序设计 我一直研究oo方法,现在可以确认,m ...
    • 2015-09-17 09:34
    • 浏览 592
    • 论坛回复 / (3 / 6333)
    • 分类:编程语言
     突然想到软件的领域可以用一幅图来表示。 在软件中的领域,其实是已明确的。 在需求分析阶段要想明确用户的领域,需要抛开软件本身,理解用户的术语(有时用户的术语恰好和软件的术语混淆,那不如另选一个词)。比较头痛的事用户只能说出一个词却不知如何解释它。这时要需求分析人员引导用户,比如:用户说a,然后不说了。因为他知道a是什么,却不知如何解释。那要问a包括什么,用户如何使用这个概念等,把用户口中的概念弄清楚。有时用户说的概念的含义是含糊的,只能在上下文中理解,这时要让用户多举例子,从多个例子中分析把握住这个词的意思,可用其他明确的术语进行定义。    
    最近做项目对于产品开发过程控制有了新认识,先暂记如下,以后再研究。 需求分析与设计是按主题划分的 基本上一个研发类项目可按如下主题划分: 1.业务与问题主题 分析需求和问题、得出产品构想。 2 凯发k8国际娱乐官网入口的解决方案主题 需求 ...
        文化是什么,真的以为很高深,以下是摆渡出来的内容: 文化(culture)是人与人、人与自然、人与观念之间关系的意义系统(罗红光,2014)。与自然界的存在不同,文化特指所有“人为的事实”,它可以传承、传播,是� ...
    • 2015-02-04 09:46
    • 浏览 460
    • 论坛回复 / (0 / 852)
    • 分类:研发管理
    1.取代程序中的 new、工厂和单粒 无需接口2.支持aop                 有接口时使用java的proxy技术3.支持mock                需要接口4.支特受保护变化          需要接口5.隔离软件的不同组件      需要接口
    oo本身是一种软件的构造范型。它本身的分解形式,使得软件可复用、可扩展。 oo本身并不要求应用gof设计模式。 但oo在某些情况下,直观的oo表达,仍就为软件引入了不好的因素比如:两个对象需要用到一个算法。这时会产生重复逻缉,不能应对变化,类爆炸,不易修改和维护。这时就需要一些方法来达到某种设计目的。 这时:需要自已想办法,gof设计模式是可选途径之一。
    • 2013-03-09 07:27
    • 浏览 584
    • 论坛回复 / (5 / 7069)
    • 分类:企业架构
    软件必然体现领域模型。 对于面向过程的软件是以数据和过程拆分开了的型式体现。 面向对象则是将数据和过程放到一起,这样能和领域在表式上采用类式的形式。 对于编缉器类软件,编缉器本身必须能表达被编缉的数据,所以编缉器本身就以一种特殊的形式体现了领域。因此对于这样的软件,可能只在编缉结束时,才把数据写到自定义的领域模型中。 用自定义的类来体现领域,是一种理想的领域表达方式。对于一些软件来说,可能做不到,或不需要这么做。比如显示系统目录的程序,用jtree来表式目录树就行了,不需要再自定义一套类。而对于基于数据库的软件比如:spring mvc orm,可以有领域对象,但为了避免实体对象和db技术 ...
    2年前曾发过一个贴子被评为新手: http://www.iteye.com/topic/865387 终于有机会使用spring了,也用了一年了,再谈谈现在的感想,是否还会评为新手呢? 目前我接触到的spring功能包括: ioc 构建分层关系: 具体指 action->service->dao ...
    • 2013-02-25 19:18
    • 浏览 692
    • 论坛回复 / (124 / 66584)
    • 分类:企业架构
    如果switch中的每个case都加了break语句,最后一个case要不要加呢? 从逻缉上看是没有差别的,但今天遇到一个情况,我同事改我之前写的一段代码,直接在switch中又加了一个新的case,而原来的最后一个case没有加上break,这就导致了错误。 因此,在写switch时,最后加上一个对逻缉没有影响的break是有意义的。 就象我之前写了一个单粒的类,没有把构造设为私有,我同事直接new来用,导致了一个奇怪的错误,查了许久。 由此可以想到:java的访问控制和spring的依赖注入(分层注入),都起到了可见性限制的作用,用好这些内容,对软件开发能起到很大的作用。
    • 2012-11-30 10:03
    • 浏览 652
    • 论坛回复 / (14 / 5566)
    • 分类:编程语言
         如果公司有事没事都要加班,这样的害处是很大的。它会导致软件没有质量可言。      最根本的问题是:对于管理和设计人员,由于没有人力成本的约束,再差的软件凯发k8国际娱乐官网入口的解决方案也敢用,因为可以靠加班进行补偿,然后应付了事。这样就造成了对软件设计的不重视,从而也不重视软件人才。      随意的解决软件中的复杂问题,是不会产生好的软件的。 不重视软件人才,是不可能形成优良的技术团队的,没有好的团队是不会产生好的产品的。      这样到有一个好处,大部份人员是可以随意更换的(因为人员的技术不重要),只要能招来愿意加班的人就行。
    • 2012-09-05 22:08
    • 浏览 636
    • 论坛回复 / (13 / 4347)
    • 分类:研发管理
    记得几年前看 <>看到这样一句话: 分析和设计可以概括为:做正确的事(分析)和正确地做事(设计)。 当时 "做正确的事" "正确的做事" 没看明白. 这两天再看这本书,还是没看明白.昨天偶尔看到一本讲管理的书上说 领导要"正确的做事" 部门主管要"做正确的事"突然明白了这句话. 所谓做正确的事,即为不做不正确的事。这是要求做事的人要有区分正确的事和不正确的事的本领。这对于软件需求分析是很重要的,如果不能找到满足用户需求的软件功能,花再多的精力做出的软件也是无用的。 ...
    • 2012-04-16 13:22
    • 浏览 1226
    • 论坛回复 / (0 / 1689)
    • 分类:研发管理
    js界面组件,可以通过组合jquery插件形成。界面的状态数据由控件自已保持。例子就是之前实现的,右边widget例表拖到左侧widget例的功能。例表的顺序、widget状态都是由jquery的sortable和draggable的使用。 有的界面可以不使用现成的,完全自已实现,比如tab页。这时把当前tab记录在变量中,用来协调tab的显示是一个办法。 从上边的例子,说到交互式编程就会想到mvc。我认为,对于以上例子可以认为是没有模型的。在软件实现时,如果没有应用数据则不需要模型。
    • 2011-11-27 16:20
    • 浏览 843
    • 分类:web前端
    平台:aix 5 jdk:jdk5_aix_64 process的waitfor方法是否完成和process的输入输出流的ready()方法返回值的关系可以是任意的,包括: 调用返回前 false 调用返回前 true 调用返回后 false 调用返回后 true
    对象已经存在,但没有你需要的功能。这时需要在已有对象的基础上编写逻缉,这样的逻缉作为控制逻缉存在是合适的。 比如:string的 非null非空串判断 又如:调用别人提供的webservice api,一样存在类似的情况。 这说明,在现实的oo编程中,还是需要一部份逻缉是独立存在的,而它相关的数据不是和它在一个地方的。 这样的逻缉,因为不能随着对象的出现而出现,因此可能会写死到业务逻缉中,从而形成重复代码。 软件中的helper或util类就是用来放这种逻缉的地方。可以在任意位置使用。
    也许这是高深的话题,但在这上边我有一些心得,写在这里与大家分享,高识之士万误见怪。 内容: 1.领域、领域模型、软件 领域是软件所涉及的问题空间。这话太不好懂。其实就是软件所解决问题的相关环境。比如:一个图书管里系统a,一定会涉及图书馆本身的内容。比如:书、读者、借书卡、书架、等。 领域的内容就是领域内存在的事物即领域对象。按需要抽取领域内的信息,即可得到领域模型。通常可以用类图表示。 我觉得领域是一种存在。可以是客观存在,也可能是人为创造出来的,比如:顶蘑菇中的马力。 软件必然体现领域 因为,软件解决的问题是以领域为基础的。比如说:图书管理系统中一定会涉及书这个概念。 唯物论中有物质 ...
    领域是需求生存的环境。 领域也可被称为:问题空间、问题域。 领域的重要特性是:存在性。也就是说,它是存在的,且必须存在,并具有一定的稳定性。 但领未必是客观存在,有的邻域是人为创造出来的。比如:超级马力游戏。这个领域是人为创造出来的,但是当创艺完成后,会具有一定的稳定性。 领域的构成:和需求相关的事物(领域对象)。它具有属性和行为。因此可以用类图来表示领域模型。 因为领域的存在性,因此可以直接依据它设计软件的对应部份。 软件在开发时,会创造出一些对象用来实现功能。这样的对象不作为领域对象看待。比如io库中的输入流和输出流对象,用来读写数据源。数据源可以作为领域对象看待。因为的确存在实际的 ...
    需求可以分为业务需求和软件功能需求。 业务需求来自于用户领域。 软件功能需求,是由用户的业务需求、用户的直接意见、当前的软件技术、成本共同决定的。 业务需求和软件功能需求,用户可能会直接给出。但通常有模糊不清和不完整的地方。这时需要分析人员进行展开。展开时不明确的地方将它明确、不完整的功能需要补全。 展开时要尽量和用户确认,以避免用户有不同意见。 开发工作不必等需求完全展开再进行,以经明确的部份可以和需求分析同时进行开发。
    面向对象编程的目的不是造出完美的对象,而是造出符合要求的软件。 面向过程的方法是将数据和步骤分开的。这是一种计算机的思维模式。这样会对数据和操作分开进行思考,这样忽视了数据和操作的相关性。 数据和操作是关系密切的。如果将数据和数据上的操作一同思考,是更加合理的,这自然形成了对象的概念。我想,这是面向对象方法的起因之一。
    面向过程编缉是最容易让人理解的编程方式。将数据与逻缉分开,逻缉本身就是一些步骤。 面向对象支持:封装、继承、多态 封装: 面向对象的编程方法,要求把数据和数据相关的操作放到一个对象中,从而在语言层面上,� ...
    • 2011-10-20 15:11
    • 浏览 847
    • 论坛回复 / (0 / 2242)
    • 分类:企业架构
    axis1.5.5的服务端如果采用pojo的形式,则由于使用了java.beans.introspector 处理服务的返回值对象,而java.beans.introspector会到处搜索beaninfo信息,会返复的调用系统的classloader对象,从而造成效率不高。(在并发请求很多时,会体现出来) 参看:https://issues.apache.org/jira/browse/axis2-4524 解决的直接办法是在服务端不使用pojo的方式,而采用由axis1.5.5生成的skeleton,这时效率会得到显著的提高。 但是,这样的方式在开发上比较麻烦。 目前,我采用的方法 ...
    主键我通常使用自增形式的长整数。 今天遇到一个情况,客户要用sql导入一些老数据,这些老数据插入后,生成了最新的主键,但是日期却是老的。 由此我想到,以前的代码里有用主键进行新老记录排序的作法。 对于可能出现这样情况的表,这种做法会带来错误的结果。 应用程序的表通常是程序私用的,因此用主键大小区分新老记录通常是安全的。
    • 2011-06-22 17:28
    • 浏览 759
    • 论坛回复 / (0 / 1260)
    • 分类:企业架构
    寓尔看过几眼jquery插件的代码,发现这样的代码很是希奇: (function($){    js code... })(jquery); 从未深究,今天突然想明白了。 实际上,上边的代码就是一个js函数调用。 以下这部份 (function($){    js code... }) 相当于是函数; (jquery) 则是函数调用时的参数列表。 以上代码等价于如下代码: function test($){    js code... } test(jquery); 新手的盛宴!
    • 2011-06-16 17:29
    • 浏览 1404
    • 论坛回复 / (39 / 15112)
    • 分类:web前端
    为了某种应用场景,在工作流模型中的创新概念,需要谨慎对待。 往往一个人的思路是不全面的。有多人参与讨论,有助于确定合理的方案,在讨论中逐渐明晰相关的问题。 这次对动态xx的讨论过程,是一个明显的例子。讨论出来三个方案,只有一个是最恰当的。这个过程是一个创新和探索的过程。可能正确的观点直接导出的结论是不恰当的。比如这次,动态xx和静态xx是存在概念区分的观点,直接导致我认为工作流中相同的xx应该有两个表示。而换一种思路,动态xx是可以当作静态xx使用的,那工作流中就只需要动态xx了。 我最初的思路只是从xx是共享的,还是独占的角度来考虑的。经过讨论后发现,这个观点是片面的。独占是xx共享的特例 ...
    hibernate的值类型集合用起来很方便,但在最近的使用中发现它有并发问题。如下: 有一个持久化类a需要包括n个有序的long型数。类a需要保存到数据库中。 类a如下: public class foo{ // some properties list longnumbers=new arraylist(); // some propertes' getter and setter public list getlongnumbers(){ return this.longnumbers; } ...
    • 2011-01-10 01:05
    • 浏览 943
    • 论坛回复 / (2 / 1982)
    • 分类:企业架构
    global site tag (gtag.js) - google analytics
    网站地图