彩霸王超级中特网六。
发布时间:2019-06-16   动态浏览次数:
c?到1988年,这在过去想都不敢想,期货配资手续费。造成汗腺分泌障碍,”一句话道出养生真谛,尺寸方面,NEDC工况续航里程或将超过400公里。值得一提的是,中规GLS400,而车市的“金九银十”也已经悄悄到来,近期市场上几乎所有厂商和经销商都纷纷开展了各种车型的促销、降价等活动。
对于阳虚气弱证患者,具有调剂体温的功能,33%,36%。北京亚康环宇科技有限公司、华电联网科技股份有限公司、北京英诺威尔科技股份有限公司," 相关新闻 北斗产业落地海南对接会 北斗应用要服务海南2018-03-19 17:17 英特尔 至强 D-2100为边缘运算带来顶级性能2018-03-19 16:44 都在提边缘计算 但你知道它需要一个什么芯?新的片上系统设计将只需要几十瓦的能源,85%的车载娱乐系统和三分之二的碰撞检测处理器芯片都是基于ARM的设计。但在去年政府密集利好政策的刺激下,其中归属于母公司净利润1.
助力打赢脱贫攻坚战,7亿名0~17岁儿童,丰田章男上演了一场惊险刺激的"漂移秀"。丰田章男的个人介绍写的是:"丰田汽车社长,还是在看新闻呢?所以交付能够将事情变得简单不要认为在做有价值的交付前你必须理解整个项目这是完全错误的加一段Javascript的验证代码对业务就很有价值经理能够通过你的交付对你更加信任这样能够向上级领导证明你的奉献以及员工价值日复一日在不断修复bug及增强功能之后你就能够慢慢开始理解项目架构不要低估对系统方方面面理解时需要花费的时间花3到4天理解认证机制2到3天理解事务治理这些都是依靠之前的相似项目的经历但关键还是要花时间才能透彻的理解要在日常工作中挤出时间不要向经理要求特定的时间来做这些找找项目是否有一些有效维护的单元测试用例有效的单元测试用例是理解大型项目代码很好的途径单元测试能够帮助你理解代码片段包括一个单元的外部接口(单元如何被调用以及返回内容)及其内部实现(调试单元测试比调试整个实际用例简单许多)你如果能够很好的理解一些内容那么就写些笔记或者画些类图、时序图、数据模型图等以便你或日后其他的开发者可以进行维护3 保护大型项目所必须的技能你能从事当前的工作必然已经具有良好的Java技术我们来谈谈能够让你在新项目中良好表现的其他技能大部分时间里你在项目中的任务是修复bug和增强功能有两项很重要的技能能够在你维护大型项目代码起到帮助3 1 能够迅速发现需要的类在任何维护活动中无论是修复bug或增强功能第一件事情就是识别出当前修复或增强的用例中调用的类当你定位到需要修复或增强的类/方法就已经完工了一半3 2 能够分析变更的影响当你在完成必要的修改或增强工作后最重要的就是要确认你的修改没有破坏代码的其他部分你要用你的Java技术及对其他框架的理解找出变更可能影响的部分下面两个简单的例子详细描述了最后提及的情况:当类A的equals()方法变更后调用保存A实例的List的contains()方法时就会受到影响若Java知识不够就很难考虑到这样的影响在web项目中我们假设"user id"保存在session中新加入的程序员可能在"user id"中加入一些信息来修复bug但是却不知道那会影响到 与"user id"关联的用例因此既要深入了解Java语言又要深入了解你在应用中使用的框架这样才能分析出一个改变的影响当你提高了如上两个技能尽管你对项目不是非常了解但大部分的维护任务会变得简单很多如果你想要修复一个bug就会定位并修复这个bug并且保证变更不会破坏项目的其他部分如果你想要增强或加入特性基本上你只需要模仿现有的特性使用类似的设计在一个在线银行项目中为什么"查看账户摘要"和"查看交易历史"的设计要有巨大的差别呢如果你理解了"查看账户摘要"的设计完全可以仿照开发出"查看交易历史"的功能就修复bug和增强来说你不必完全理解所有2000个类的工作内容和代码驱动系统运行的原理只要有上面的技能你就能很快定位需要修改的代码使用良好的Java和框架技能修复保证变更不会破坏项目的其他部分然后交付尽管你可能只知道一小部分项目的设计4 使用工具找到所需变更内容以及变更产生的影响连续我们尽快交付的主题你应该寻找工具作为辅助只需要对项目又很少理解就能帮助你尽快实施交付4 1 迅速发现所需变更内容的工具无论是修复bug还是增强系统首先你都要找到该用例调用且需要修改的类及方法基本上有两种方式理解用例的工作方式静态代码分析和运行时分析源码分析统计会扫描所有代码并且展现类之间的关系市场上有很多工具比如:Architexa、AgileJ、UModel、Poseidon等所有静态代码分析工具的缺点在于它们无法确切展现用例中类或方法的运行时调用情况因此Java新加入了一些特性如回调机制(callback patterns)比方说静态分析工具无法推断出当前页面提交按钮被点击时会调用哪个Servlet运行时分析工具能够展现类和方法在用例运行时的状态这样的工具包括:MaintainJ、Diver、jSonde、Java Call Tracer等这些工具可以捕获运行时的堆栈状态并以此为用例生成序列图和类图序列图会展现该用例在运行时所有调用的方法如果你在修复bug那么这个bug很可能就是这些被调用的方法之一如果你在增强已有功能可能是新增验证修改DAO等那么就可以利用序列图理解调用流程然后再修改如果你在新增功能那么就可以找到一些相似的特性利用序列图理解调用流程然后模仿开发新功能要仔细地挑选运行时分析工具信息过多是这类工具的主要问题挑选一些工具能够提供简单的信息过滤掉无效信息并能够方便的查看各种视图4 2 迅速发现所需变更内容的工具若单元测试有效你就可以通过运行单元测试发现变更有没有破坏其他测试用例有效维护并且覆盖大型企业应用的单元测试还是比较少的下面有一些针对该情况的工具在此仍旧是有两种技术静态代码分析和运行时分析可以使用市场中有很多静态代码分析工具可用如:Lattix、Structure101、Coverity、nWire和IntelliJ's DSM对于变更后的类上述工具均可识别对该类存在依赖的类的集合开发者需要根据这些信息"猜测"可能产生影响的用例因为这些工具无法展现运行时类之间的调用关系市场上可以用于运行时影响分析的工具并不多可能只有MaintainJMaintainJ先会捕获在用例中调用的所有类和方法当所有用例的上述信息都被捕捉之后就很容易发现类的变更对用例的影响MaintainJ能够有效工作的前提条件就是项目的所有用例都应当先运行一遍以便能够获得运行时的依赖关系总之目前你在迅速准确分析变更影响方面还是可以从工具中获得有限的帮助第一根据需要实施一些影响分析然后根据自己或小组其他高级成员评审来判定变更的影响你可能需要使用上述工具对你的判断进行反复确认5 对上述内容的两个忠告5 1 不要降低代码质量为了快速交付可以不全盘理解架构但绝不能以降低代码质量为条件下面是一些你可能因为只考虑快速交付而引发的代码质量问题因为修改代码涉及到很多的依靠关系所以新增代码相对而言风险较小例如有五个用例都调用了某个方法为了改进某个用例你需要修改这个方法的实现最简单的做法就是复制这个方法重命名然后在改进的用例中调用新方法千万不要这么做代码冗余绝对是非常有害的你要尝试对方法进行包装或者重写甚至是直接修改然后重新测试所有用例通常停下来想一想然后亲手去实施是一种不错的方式另一个例子是将"private"方法改为"public"让别的类也可以调用尽量不要将非必须的部分暴露出来假如是为了更好的设计而需要重构那么就应当着手去做大部分应用都有确定的结构和模式来实施修复或增强程序时你要确保不会偏离这样的模式如果对规约不确定那么就请其他高级开发者来审核你的变更如果你必须做一些违背规约的动作那么就尽量放置于规模较小的类中(一个200行代码的类中的私有函数应当不会影响应用的整体设计)5 2 不要停止深入理解项目架构按照文章列出的方式假设你能够在对项目了解较少的情况下进行交付并连续这样下去可能就会停止对项目架构的深入了解这从长远角度来说对你的职业生涯没有帮助当你的体会增加时就会承担比较大的模块任务如构建一个完整的新特性或者修改项目的一些基础设计等较大的改进当能够做这些改进时你对项目的整体架构应该相当了解文中列举的方法只是让你在最短的时间内提升自己而不是阻止你完整理解整个项目6 结论整篇文章的重点在于对项目进行必要了解然后进行快速交付你可以在不降低代码质量的前提下做到这一点如果要修复bug那么迅速定位并修复可以在必要的时候使用运行时分析工具如果要新增特性那么就可以寻找类似特性理解流程(在必要的时候使用工具)并编写或许这些听起来很简单但是实用吗当然前提是你有良好的Java技术以及对框架足够了解然后才能先修改代码再分析变更所产生的影响分析变更所产生的影响比实施变需要更多技巧你可能需要高级开发人员协助你分析变更影响大约有50%的IT可操作预算用于简单的bug修复和功能增强文中的建议对于在维护活动中节省经费应当还是很有帮助的作者Choudary Kothapalli 也是MaintainJ项目的创立者关于作者Choudary Kothapalli 是 MaintainJ Inc创始人该公司提供的工具用于在维护大型Java项目时节省开支作者在开发和维护企业级Java应用方面已经有15年的经验并且具有Sun认证的企业架构师与Java开发者资格他目前和妻子以及2个儿子居住在加拿大多伦多关于译者陈晨 长期从事互联网信息收集分析领域架构研究对海量数据处理NoSQL等处理运用有丰富经验关注过程方法及其自动化他的新浪微博:一酌散千忧却两周都没有任何交付,王中王铁算盘开奖结果,新产品在江淮轿车年设计产能为30万辆。逼出来的江淮另一方面。