Java架构师最关键三个思维转变方式

简介:

Java架构师最关键三个思维转变方式

1.从紧耦合到松耦合(解耦的最终目的是灵活组装和匹配)

640?wx_fmt=png&wxfrom=5&wx_lazy=1

在软件设计开发里面,我们经常会谈到松耦合和解耦,其原因就是今年保证各个模块充分自治,受外部其它模块影响最小。

而在 SOA 架构里面如果谈到松耦合,其核心的原因是松耦合是进行灵活组合和编排的基础。

思维的最终目的是解决问题,当我们面对一个具体的问题解决后,就有了问题和解决方法:

问题A-》解决方法A

那可能在我们头脑里面就存储了这么一个关系,即遇到问题A用解决方法A去解决。

如果我们头脑里面都是去存储这种信息,那就是我们说的紧耦合,试想一下问题成千上万,我们得存储多少解决方法和知识点?这种穷尽和大量记忆存储的方法显然是不现实的。

那我们实际要做什么呢?即将解决方法分解为细粒度知识点。

问题A-》解决方法A(知识点A1, 知识点A2,知识点A3)

即任何问题的解决都是已有的知识点的组合和组装。问题和知识点时间是完全松耦合的,而解决方法只是知识点的灵活组合而已。我们只要有了最基本的知识点,就不怕任何形式的问题。

就类似我前面谈售前技术建议书一样,客户的招标要求千差万别,但是你只要有了(业务方案,技术方案,部署方案,实施方案,运维,人员,案例,报价单模板)等基础知识点,你就可以应对所有的售前方案,你唯一需要做的就是讲客户的招标要求或需求分解为一个个的需求点,同时将这些需求点映射到你已有的知识点上。

通过解耦,我们没必要去存储和记忆大量粗粒度的解决方案内容,我们只需要关系问题能否分解到已有的知识点上,只需要培养知识点如何根据问题进行组装和编排的能力即可。

也正是这个原因,任何一个问题解决后,你都要思考有哪些可复用的知识点可以入你的知识库,而不是将该问题的解决方法入库存储。

2.从静态到动态(动态的目的是知其然并知其所以然)

640?wx_fmt=png

第二点我们想谈的是从静态到动态,因为最近我们在做PPT汇报材料评审的时候发现一个关键问题,即静态内容多,而动态内容少,讲最终结果多而讲分析过程少。

在讲 PPT 制作的时候我曾经谈到过,对于 PPT 的呈现只有两类,一类是动态呈现(阶段,流程,活动,演进),一类是静态呈现(组成,架构)等。

而这两类呈现必须相互结合,相对来说动态呈现更加重要,只有动态呈现能够说明一个事物实际内部各个组件之间是如何运作的,而只有了解了内部运作你才可能东西事物内部机理。

从 PPT 的呈现回到我们思维逻辑上也是同样的道理。

当我们去了解任何一个事物的时候,一定要注意前期我们可能只是了解下事物的结构和组成,但是如果你真想去深入了解事物,那么就必须从这种静态的组成转变到对动态的组成过程的研究。

即事物是如何动态发展演进到当前这个结构的?只有这样你才能够洞悉事物内部各个组件之间是如何协调运作的。

我们平时太注重结果,而忘记了对这种科学思考过程的关注。而实际上再好的结果本身都不具备可复制性,而只有科学的思考过程和方法本身是可以复制的。

你得出一个好的结果不代表你就很牛逼,中间有很多偶然性;但是当你自我论证是通过很好的方法和过程,得出了这么一个结果,那这种过程本身就具备了举一反三能力。

原来我写过一篇文章,谈搜索引擎之毒,为啥这样谈?所有千奇百怪的问题,你到互联网一搜马上就搜索到答案并解决掉了,那么这个时候你不会再去深究回答者是如何进行问题分析和思考而得出答案的,即你随时搜索到了答案,但是你没学会是思考和解决问题的方法。

从静态答案到去寻找答案是如何分析出来的,本身也是静态到动态的过程。

3.从泛化到抽象(抽象的目的是最小化记忆,并提供为了演绎的入口)

640?wx_fmt=png

在互联网时代,当前人和人比较的一定不是记忆能力,而是问题分析和解决能力。

而这个能力里面最重要的一点就是当你拿到问题后,你知道从哪里入手去解决,即问题的入口在哪里。

我原来谈到过,互联网是一个海量的知识库,每个人都可以获取到,你自己的电脑里面可能也有一个你自己归纳整理好的大的经验库。

这么多信息一定是不需要记忆的,需要记忆的仅仅是能够通达知识的索引。通俗点来讲就是当问题来了的时候,你知识在哪里拿到最能解决问题的资料。

泛化和抽象,实例和类都是偏IT领域的一些词汇。但是这些词对于思维领域同样适用。

你平时看到的东西,实践的东西,学习到的知识都很多,你需要做的就是进行归纳和抽象,形成你自己的概念模型,形成自己能够记忆的最小知识集,这个知识集最后就是索引信息。

有了索引我们就能够按图索骥。

索引类似于软件设计中最高的抽象层次,即接口的定义。接口中只有方法,没有具体的实现。

而索引就是这个道理,我们只需要知道不同的问题究竟应该用什么的方法来解决,这个方法究竟是怎么解决的?

我们不需要记忆,我们只需要找到我们存储或网上存储的资料即可。

不同场景下不同的问题究竟应该用什么样的方法解决,正是我们在思维里面谈到过的,对于一个人最有价值的能力,即模式和方法论。所有的实践我们都在积累我们自己的模式库和匹配库。

比如你原来做开发工作,转到做软件需求和业务顾问工作,你的模式库做一次更新。

你从做财务域的顾问,转到做供应链域的顾问,你的模式库做二次更新,后续再转域无任何问题。

一生二,二生三,三生万物,但是万物没法全部穷举和了解,我们要做的是记忆1这个索引。

原文地址http://www.bieryun.com/2257.html

相关文章
|
3月前
|
Java
【思维导图】JAVA网络编程思维升级:URL与URLConnection的逻辑梳理,助你一臂之力!
【思维导图】JAVA网络编程思维升级:URL与URLConnection的逻辑梳理,助你一臂之力!
51 1
|
2月前
|
设计模式 Java 关系型数据库
【Java笔记+踩坑汇总】Java基础+JavaWeb+SSM+SpringBoot+SpringCloud+瑞吉外卖/谷粒商城/学成在线+设计模式+面试题汇总+性能调优/架构设计+源码解析
本文是“Java学习路线”专栏的导航文章,目标是为Java初学者和初中高级工程师提供一套完整的Java学习路线。
374 37
|
2月前
|
设计模式 架构师 Java
Java开发工程师转架构师需要学习什么
Java开发工程师转型为架构师需掌握多项技能:精通Java及框架、数据库与分布式系统;熟悉设计模式与架构模式;积累项目经验;提升沟通与领导力;持续学习新技术;培养系统设计与抽象能力;了解中间件及开发工具;并注重个人特质与职业发展。具体路径应结合个人目标与实际情况制定。
66 18
|
2月前
|
Kubernetes Java Android开发
用 Quarkus 框架优化 Java 微服务架构的设计与实现
Quarkus 是专为 GraalVM 和 OpenJDK HotSpot 设计的 Kubernetes Native Java 框架,提供快速启动、低内存占用及高效开发体验,显著优化了 Java 在微服务架构中的表现。它采用提前编译和懒加载技术实现毫秒级启动,通过优化类加载机制降低内存消耗,并支持多种技术和框架集成,如 Kubernetes、Docker 及 Eclipse MicroProfile,助力开发者轻松构建强大微服务应用。例如,在电商场景中,可利用 Quarkus 快速搭建商品管理和订单管理等微服务,提升系统响应速度与稳定性。
57 5
|
2月前
|
Java API 开发者
【Java模块化新飞跃】JDK 22模块化增强:构建更灵活、更可维护的应用架构!
【9月更文挑战第9天】JDK 22的模块化增强为开发者构建更灵活、更可维护的应用架构提供了强有力的支持。通过模块化设计、精细的依赖管理和丰富的工具支持,开发者可以更加高效地开发和管理应用,提高应用的性能和可维护性。
84 10
|
2月前
|
存储 Java 开发者
【Java新纪元启航】JDK 22:解锁未命名变量与模式,让代码更简洁,思维更自由!
【9月更文挑战第7天】JDK 22带来的未命名变量与模式匹配的结合,是Java编程语言发展历程中的一个重要里程碑。它不仅简化了代码,提高了开发效率,更重要的是,它激发了我们对Java编程的新思考,让我们有机会以更加自由、更加创造性的方式解决问题。随着Java生态系统的不断演进,我们有理由相信,未来的Java将更加灵活、更加强大,为开发者们提供更加广阔的舞台。让我们携手并进,共同迎接Java新纪元的到来!
61 11
|
3月前
|
存储 NoSQL Java
一天五道Java面试题----第十一天(分布式架构下,Session共享有什么方案--------->分布式事务解决方案)
这篇文章是关于Java面试中的分布式架构问题的笔记,包括分布式架构下的Session共享方案、RPC和RMI的理解、分布式ID生成方案、分布式锁解决方案以及分布式事务解决方案。
一天五道Java面试题----第十一天(分布式架构下,Session共享有什么方案--------->分布式事务解决方案)
|
2月前
|
存储 缓存 Java
JAVA并发编程系列(11)线程池底层原理架构剖析
本文详细解析了Java线程池的核心参数及其意义,包括核心线程数量(corePoolSize)、最大线程数量(maximumPoolSize)、线程空闲时间(keepAliveTime)、任务存储队列(workQueue)、线程工厂(threadFactory)及拒绝策略(handler)。此外,还介绍了四种常见的线程池:可缓存线程池(newCachedThreadPool)、定时调度线程池(newScheduledThreadPool)、单线程池(newSingleThreadExecutor)及固定长度线程池(newFixedThreadPool)。
|
3月前
|
消息中间件 Java 数据库
解密 Java 后台架构设计之道
解密 Java 后台架构设计之道
63 2
|
2月前
|
架构师 Java 程序员
Java架构师的工作年龄是什么?
Java架构师的工作年龄是什么?
47 0
下一篇
无影云桌面