关于重构

本贴最后更新于 2006 天前,其中的信息可能已经水流花落

重构

这是一个非常敏感的话题
站在一个有着代码强迫症的程序员角度来看,一堆“烂代码”不进行重构的话估计连觉都睡不好
站在一个不懂技术或者对代码没有强迫症的老板角度来看,重构跟不重构效果上没有任何区别,代码的整洁,高效,易读,易扩展等事情老板是没有概念的
但是,越烂的项目有新的需求或改动时,坑就会越多,花费的时间就越多,如此会恶性循环
如此一来,是否要重构可能真需要好好考虑一下

重构的起因

冰冻三尺非一日之寒,我相信如果从写第一行代码开始,就认真的思考业务与项目的结构之间的关系,并在编写过程中不断进行小的调整的话,代码是不会烂的。重构其实就是在编写过程中没有进行小的调整导致后来需要进行大的调整

过度设计

假设我现在有一个需求,只想要一个接口返回给前端一条数据库里的记录的 JSON 字串

  • 一个 Java 程序员可能会这样(我在这里没有对 Java 程序员有任何的歧视,只是举一个例子,而且这个例子是很普遍的现象):
  1. 先搭建微服务,分布式框架
  2. 分层,定义实体类,定义接口,写 SQL,查询
  3. 将 SQL 跟代码分离,定义实现类,然后接口返回结果
  4. 启动项目,抛异常
  5. debug
  6. 重复 4,5 两步 n 次
  7. 接口正常返回结果
  • 一个 PHP 的程序员可能会这样:
  1. 写代码连接数据库
  2. 写 SQL 查询
  3. 返回结果

结论

所以写代码这件事其实应该是跟着业务走的

  • 如果业务很庞大,那么这个时候设计就显得很重要,代码的结构,模块的耦合,性能的优化等等诸多问题都得考虑
  • 如果业务只是一个很简单的系统甚至都不算系统时,也就不用过度设计了,不能为了设计而设计,要满足实际需求
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3186 引用 • 8212 回帖
  • PHP

    PHP(Hypertext Preprocessor)是一种开源脚本语言。语法吸收了 C 语言、 Java 和 Perl 的特点,主要适用于 Web 开发领域,据说是世界上最好的编程语言。

    179 引用 • 407 回帖 • 489 关注
  • 重构
    7 引用 • 38 回帖
  • 设计
    113 引用 • 797 回帖 • 1 关注

相关帖子

4 回帖

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • csfwff 1

    然后有时候根本不知道用户怎么想的,一开始按要求做的,做着做着,需求就变了……

  • someone
    作者

    其实这种情况我能理解,而且非常常见,不过可能有时候正要凭借着这种情况来对项目进行调整,但是也容易出现不断调整反而变质了,这种东西还真是有点玄乎

  • nobt

    很大一部分公司看中的并不是代码,看中的是业务,比如传统的软件公司

  • someone
    作者

    这样的软件公司可以类比我在文中提到的不懂代码的老板或者对把握问题代码没有强迫症的老板
    站在这样的软件公司的角度当然还是以公司能获得利益为首要目标,也可以理解
    但是这样还是存在恶性循环跟过度设计之间的平衡把握问题