点的思维与系统的思维

重构绝对是这些年出现的高频词,大家都在讲重构,似乎稔熟于心。

我个人并不掩饰对“重构”一词的偏好。

我觉得重构是解决问题的更高段位,处理好了,足以让问题自然消失…

一点观察感悟:

工作生活中遇到的问题常常错综复杂,纷纷扰扰,人云亦云,

大多数人的解法是关注具体问题,及时对问题表层进行修修补补。

这是“点”的思维。解法就是“万金油”或“蜻蜓点水”,优点是见效快,缺点是难以解决根本。

“脚痛医脚,头痛医头”,虽暂时不痛了,病根却留着。时间一长难免复发,积重难返,直至崩溃,所谓“出来混总是要还的”。

具体问题具体解决,是常规套路,安全可靠可预期,容易及格…

我觉得重构是个不错的思路。

我更推荐“重构”思维,去理清内部结构,解构出相关要素、流程、架构、顶层、底层、本质、关系等等,然后再去重组构造,实现系统解。不能说因此就能“长治久安”,因为环境变化场景发展,新问题总是还会来的,但至少会有一个比较可预期的稳定期、安全期、缓冲期。

重构不是推倒重来

我感觉不少人对重构一词的理解可能存在偏差,可能认为重构就是推倒重来。

重构并不意味重倒重来,其关心本质需求、关心底层逻辑,关心顶层设计,也关心架构规划等核心的东西,但重构更多是理顺内部各个要素(factor)之间的结构关系和架构关系,当然也关心要素本身的颗粒度大小合理性,目的是让整体系统跑得更顺畅、更惬意、更爽些,反映到用户价值上就是体验好、成本低、收益高。

嗯,这里说的系统,建议不要仅局限于 IT 产品系统,而将其扩展到更多领域,包括人生大系统,生态大系统….

一样适用,何乐不为呢?

重构、重建与重新设计

特将相关词汇整理出来供你参考。

“重构”在中文语境中,通常指的是对某个已有的结构、系统、模式或方案进行重新设计或调整,以使其更高效、更合理或更符合当前的新需求和新环境。在英文语境中,“重构”对应的词是“refactor”或“restructure”(其实结合不同场景,应有更多的英文词汇与之对应)。

在不同的领域,“重构”一词可能略有区别:

软件工程:在软件开发中,“重构”是指在不改变软件外部行为的前提下,对代码的内部结构进行调整和优化,以提高代码的可读性、可维护性和扩展性。如,为了提高系统性能,开发团队决定对整个代码库进行重构。

建筑:在建筑领域,“重构”可以指对现有建筑的重新设计或改造,以改善其功能、美观或使用体验。

商业管理:在商业管理中,“重构”可能涉及对企业组织结构、业务流程或商业模式的重新设计,以提高效率、创新能力或市场竞争力。如,面对市场的激烈竞争,公司决定重构其管理体系和业务流程,以提升竞争力。

社会学:在社会学领域,“重构”可以指对社会结构或文化模式进行调整或重组,以适应新的社会发展和时代需求。如,随着社会的发展,家庭结构和社会关系也在不断重构,以适应新的生活方式。

而“重建”或“重新设计”才是完全推倒重来的准确用词,在英文语境中可以用“rebuild”或“redesign”来表示。与“重构” (refactor/restructure) 不同,这些词强调从头开始,彻底推翻现有的结构或系统,然后重新构建一个新的。

重建(Rebuild):表示将现有的结构或系统完全拆除,然后从零开始重新构建新的系统。

重新设计(Redesign):重新设计表示完全抛弃现有的设计理念和框架,开发全新的设计方案。如,这款软件的问题太多,团队决定重新设计整个系统。

与“重构” (refactor/restructure) 相比,“重建” 和 “重新设计” 更加强调彻底性、颠覆性和从头开始,而不是在现有基础上的优化和调整,它们通常意味着更大规模的改变和更高的成本投入。

写到最后

基本路径好像是这样的:新建/构建->重构->重建/重新设计。如此循环。

其实,我想说,重构一切…

走起。