• 目前公司的一个产品使用的架构是struts+sessionBean+DAO+DB模式,平时所谓的设计工作也都是在做数据库方面的设计,增加几个DAO方法,或是在原DAO方法上if else来满足客户需求,到目前为止系统已经有三年了,都没对整个系统做过重构,随着现在需求的增加,对一个小需求的修改往往迁一
  • Avanza银行是一家瑞典的银行,让投资者易于作出股权交易和基金交易。它通过自己的在线银行提供很好工具给投资者使用,当前在线系统是典型的基于Java/Jsp和Spring的Web网站。 当前大部分操作是读取,主要可伸缩性的挑战是并发读操作,采取的是目前很多 icon
  • 软件是有生命的,随着时间推移,软件规模不断扩大,大家会发现新功能难以添加扩展,系统变得改一动百,老程序员开始辞职,这些都是说明软件系统必须重构了, icon
  • 这是kent Beck大师有关一篇编码工艺的文章: 在“改变生活的魔法”一文中,我描述了一种零碎的、日常代码卫生学,代码将变得混乱。好像没有没有羞耻感吗,看到代码杂乱表明你已经学到了一些东西,整理就是做一些关于凌乱代码的事情。 icon
  • 模块之间紧耦合是一件坏事情,无论你是否使用OSGI这些模块化技术,在套入模块技术之前,你必须从设计高度来降低模块之间的耦合。 icon
  • 千里之行,始于足下,千里之堤,毁于蚁穴,做好设计的第一步就是写好你的代码,博文8 Signs your code sucks总结了代码中第一个感觉的臭味,让 icon
  • 单一职责是让一段代码只做一件事,实现一个功能,软件复杂性来自于让一段代码做两件事: "So much complexity in software comes from trying to make one thing do two things." – icon
  • 当我完成一个设计时,我需要逐个原则去比对吗? icon
  • 如果有这么一个项目你该如何去重构呢? 1.三个独立的项目使用一个数据库。数据库没有E-R实体模型,没有设计文档,也没有任何关系图,表之间没有外键关联(意味着逆向工程不可用),所有表关系、数据完整性和约束全部由存储过程控制(10年前这么干过,但今天居然又看见 icon
  • 顶顶大名的Redis作者谈如何在Redis这样系统软件上进行代码文档注释,以下是九种注释类型的大意说明: 很长一段时间以来,我一直想在YouTube上发布一段“如何对系统软件文档注释”的新视频,讨论如何进行代码注释,然而,经过一番思考后,我意识到这个主题更 icon
  • 项目目前描述:1.项目基本没做什么架构设计2.为了达到快速开发,达到定期交付的目的,项目采用目前最最流行的s2sh框架,基本分层为:表现层+业务层(业务都写在service),连DAO层都省了,用HIBERNATE里的模板包装成一个通用的dao搞定。3.直接用持久化对象作为传 icon
  • 有许多优秀,整洁的代码风格指南。这些标准包括缩进,空格,行长度,命名约定等。一些著名的例子是: PEP8 用于Python icon
  • 对于遗留系统的维护:想对数据库中某张表增加若干字段这张表非常关键,系统中多处程序都要用到此表,这张表被抽象成了一个类,并且类中包括了处理表的方法(eg:create,update,search.......)请问有什么方法来更改这个系统吗?个人想法:写一个类继承原类, icon
  • 本人菜鸟,写了个计算器程序,但是觉得没什么面向对象思想,也学了工厂,策略,装饰,代理4种设计模式,但是应用起来还是不会,谁能帮我用面向对象思维重构一下我的程序。阅读我的程序可能会比较混乱。。。。希望大家见谅。import java.awt.*;import java.awt.even icon
  • 现在经常遇到这种问题:接手一个别人做了50%的程序,有可能他代码写的不好也可能是他写的思路与我的思路不同,总之总是需要很多时间来看他的代码考虑怎么加入自己的,还不能保证不出问题,这样导致严重的代码堆积和结构混乱。我在考虑,大家在遇到这种情况的时候会重新把他的代码按自己的思路重构么?我没敢这么做,因为 icon
  • 公司貌似忽然的刮起一阵风“我们要招牛人” 公司现在有一个被认为很牛的人,2天写了3000来行代码,也实现过一些非同寻常地功能。在现在的大环境中他应该是被广泛认可的牛人。但是他写的程序被公认为难懂,没有谁愿意去捧。 icon
  • 这是一组编写代码的10个实践,重点是提高可读性和降低复杂性。 我已经编写了20多年的代码。我与17个编写不同语言的团队合作,共建了数百个项目。这些内容包括从简单的博客站点到支持3,000个请求/秒的API,以及畅销应用程序。 icon