如何管理和优化日益增长的代码复杂度?

随着时间的推移,软件项目会变得越来越大,项目中组件之间的依赖关系也会变得越来越错综复杂,项目的维护也会变得越来越困难。

Plumbr(Java内存泄露检测器)开发团队的一篇博文揭示他们这个项目在开发过程中,其代码复杂性是如何演变的。[......]

阅读全文

Struts自爆漏洞利用代码为哪般?

  近日,很多安全公司和互联网公司安全部门的工程师们都没睡好觉,通宵达旦地在加班。

  Struts 这个漏洞这次来势之所以这么凶猛,直接导致国内的很多银行、政府机构、几乎所有的大中型互联网公司,国外的包括苹果的开发者网站都被黑掉了,和 Struts 官方不负责任的态度有很大关系。Struts 这次在自己的漏洞公告中直接把漏洞利用代码给贴出来了,这是一种很罕见的做法。[......]

阅读全文

高效清理烂代码的10个建议

猜猜看怎么了!你接手了一堆混乱的旧代码。恭喜你!现在都是你的了。混乱的代码可能来自任何地方——中间件、网络、可能来自你自己的公司。

你知道在一个角落里有一个家伙,没有人过去管他在做什么。猜猜看他一直在做什么?辛辛苦苦写出了代码,却是一堆烂代码。

你还记得这个模块是一个家伙几年前写的,在他离开公司之前。这个模块已经有20个不同的人加过补丁,进行过代码修复,而且他们也并不理解代码到底是做了什么。是的,就是这样的代码。[......]

阅读全文

代码里的命名规则:错误的 vs 正确的


编程初学者总是把大量的时间用在学习编程语言、语法、技巧和编程工具的使用上。他们认为,如果掌握了这些技术技巧,他们就能成为不错的程序员。然而,计算机编程的目的并不是关于精通这些技术、工具的,它是关于针对特定领域里的特定问题创造出相应的解决方案,程序员通过相互合作来实现这些。所以,很重要的一点,你需要能精确的用代码表达出你的思想,让其他人通过代码能明白你的意图。[......]

阅读全文

21世纪什么最重要?要会写代码!

2010年电脑程序员的工作岗位总数为91.3万个,而预计到2020年这一数字将比2010年增长30%。与此同时,其他所有美国工作岗位的平均数量的增长率则预计仅为14%。北京时间6月3日消息,国外媒体近日刊载文章称,编程已经成为二十一世纪的核心工作技能。文章指出,让更多人学习编码不仅能够满足公司对程序员人才的极大需求,同时对于公司管理者来说也是必不可少的,原因是在当今社会中,所有人都需要与电脑进行互 动,以至于电脑技巧对所有工作者来说都已成为至关重要的一项技能。[......]

阅读全文

Java程序优化的一些最佳实践

本文转载自IBM DeveloperWorks(原文),作者通过经历的一个项目实例,介绍了 Java 代码优化的过程,总结了优化 Java 程序的一些最佳实践,分析了进行优化的方法,并解释了性能提升的原因。作者从多个角度分析导致性能低的原因,并逐个进行优化,最终使得程序的性能得到极大提升,增强了代码的可读性、可扩展性。[......]

阅读全文

你需要的不是重构,而是理清业务逻辑


最近我遇到了一位以前公司的同事。他提到了数年前我在那个公司曾经开发过的项目。他说这个项目现在已经变成了“职业杀手”。基本上,任何接触过这个“职业杀手”项目的人最终都会离开这个公司。如果公司想让名下的程序员人数>0,唯一的办法就是花数月时间完全重构这个系统。

对于这事我有两点要说。首先,在我离开这个公司前,这个系统的单元测试覆盖率已经达到了85%,所以,不要责备我。第二,这么大规模的重构?肯定会出问题。[......]

阅读全文

开发者生产力/代码质量与经验无关?!

引用
你知道吗,我们从来没有发现一个开发人员多年的经验与他的代码质量或生产力之间有直接关系。


关于开发人员经验与生产力关系的研究

最初对于个人编程生产力的研究是在1968年进行的,在这之后的30年间,其他研究人员至少做过8次同样的研究,结果并没有什么不同。他们在研究了一些平均有7年开发经验的专业开发人员后统计出:[......]

阅读全文

作为开发者,你不应该害怕的8件事

1.  改变

在软件开发中,没有什么事情会一直停滞不前。现在你正在开发的东西,只是软件的其中一个版本,未来随时可能发生变化。

变化是在软件开发中最常见的事情,你最好接受这一事实。一种好的做法是,使你的代码更加模块化,这样在未来需求改变时,可以容易地进行更改。[......]

阅读全文