1. 程式人生 > >Java 架構師最關鍵三個思維轉變方式

Java 架構師最關鍵三個思維轉變方式

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

編輯 | 山河

很久沒有寫思維的文章,特別是在寫完思維的邏輯和思維的框架後,對於理論層面的自己也不太想寫。

但是對於實際案例層面的寫起來又比較花時間,而且案例基本在IT專業領域不是所有人都能看明白。

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這個索引。

Java 架構師群:619881427

進群可獲取免費的架構師學習資料

640?wx_fmt=png 

關注微信公眾號:Java 架構師學習   

可獲取免費的架構師學習資料

640?wx_fmt=png

相關推薦

Java 架構關鍵思維轉變方式

編輯 | 山河很久沒有寫思維的文章,特別是在寫完思維的邏輯和思維的框架後,對於理論層面的自己也不

成為阿里Java架構,必須經歷這階段

每個程式設計師、或者說每個工作者都應該有自己的職業規劃,如果你不是富二代,不是官二代,也沒有職業規劃,希望你可以思考一下自己的將來。今天給大家分享的是一篇來自阿里Java架構師對普通程式設計師的職業建議,希望對你有啟發。 程式設計師的三個階段 第一階段—三年 我認為三年對於程式設計

史上java架構技能圖譜(下)

實戰 試題 能力 資料 系統調優 分庫分表 監控系統 文件存儲 大量 “java架構史上最全技能圖譜分為上下兩篇,這是java架構史上最全圖譜下篇,包含:大數據以及性能、設計模式、UML、中間件、分布式集群、負載均衡、通訊協議、架構設計等技術圖譜等章節。如果需要上篇內容:數

史上java架構技能圖譜(上)

線程數 分支 選擇排序 linu 系統 窮舉 熱部署 batis err java架構師最全技能圖譜上篇,包含:數結構算法、java進階、web開發、框架與工具四大技能圖譜。下篇將包含大數據以及性能、設計模式、UML、中間件、分布式集群、負載均衡、通訊協議、架構設計等技術圖

史上牛的Java架構進階路線

驀然回首自己做開發已經十年了,這十年中我獲得了很多,技術能力、培訓、出國、大公司的經歷,還有很多很好的朋友。但再仔細一想,這十年中我至少浪費了五年時間,這五年可以足夠讓自己成長為一個優秀的程式設計師,可惜我錯過了,我用這五年時間和很多程式設計師一樣在困惑和迷茫中找不到出路! 路其實一直都在那裡,

阿里P8架構談:成長為Java架構必須突破的六技術點

一、原始碼分析 原始碼分析是一種臨界知識,掌握了這種臨界知識,能不變應萬變,原始碼分析對於很多人來說很枯燥,生澀難懂。 原始碼閱讀,我覺得最核心有三點:技術基礎+強烈的求知慾+耐心。 我認為是閱讀原始碼的最核心驅動力。我見到絕大多數程式設計師,對學習的態度,基本上就是這幾個層次(很偏激哦

史上Java架構進階路線

1.工程化專題 (團隊大於3個人之後,你需要去考慮團隊合作,科學管理)   2. 原始碼分析專題 (好的程式設計師,一行程式碼一個設計就能看出來,原始碼分析帶你品味程式碼,感受架構)   3.高效能及分散式專題 (跟上技術節奏,擴寬技術視野

阿里P8架構談:成長為Java架構必須突破的11技術點

架構師之路沒有捷徑,需要在不斷在工作中去實踐這些知識點。 1、Java基礎技術體系掌握牢固: JVM記憶體分配 垃圾回收 類裝載機制 JVM效能優化 反射機制 多執行緒 網路程式設計 常用資料結

想面試Java架構?這些基本的東西你都會了嗎?

系統架構師是一個既需要掌控整體又需要洞悉區域性瓶頸並依據具體的業務場景給出解決方案的團隊領導型人物。一個架構師得需要足夠的想像力,能把各種目標需求進行不同維度的擴充套件,為目標客戶提供更為全面的需求清單。 崗位職責: 1、負責技術架構設計,重構、優化現有的技術架構,根據業務規劃,制定

Java架構之旅(

夜光序言: 最痛苦的是,消失了的東西,它就永遠的不見了,永遠都不會再回來,卻偏還要留下一根細而尖的針,一直插在你心頭,一直拔不去,它想讓你疼,你就得疼     正文:JAVATomcat企業級學習 搞清楚tomcat架構/ 具體的處理流程~~

【福利】BAT架構分享Java架構學習技能圖譜:包含Java程式設計+網路+設計模式+資料庫+分散式等

**【福利】**總結了一份架構圖譜,希望對想成為架構師的朋友有一定的參考和幫助。 我簡短談下目前大家關心的話題:網際網路裁員浪潮裡,大家會發現一般裁員會先從可替代性的業務性程式設計師開始,原因很簡單,由於日常負責專案大部分都是業務性的,真正有技術實力提升機會非常有限,平時工作繁忙,忽略了

提高Java架構和程式設計師效率的10工具

Java受到全球百萬計開發者的追捧,已經演變為一門出色的程式語言。最終,這門語言隨著技術的變化,不斷的被改善以迎合變化的市場需求。 無論你是否擁有一家科技公司,軟體已經成為幾乎每一個企業不可或缺的一部分,為了吸引你潛在的顧客,你應該交付給客戶一個技術上有創新的產品。那麼,J

如何在年內成長為一名JAVA架構

工作前三年是職業生涯中成長最快的幾年,在這段時間裡你會充滿激情,做事專注,也容易養成良好的習慣。在我們公司有些同學在前三年中就快速成為某一個領域的技術專家,有些同學也可能止步不前。本文和大家一起探討下如何在三年內快速成長為一名技術專家。 學習方法 1:掌握良

Java架構進階路線 - Java高級架構推薦書籍

揭秘 最好的 分布式 概念 方法 jdk 層次 枯燥 java並發 學習Java,書籍是必不可少的學習工具之一,尤其是對於自學者而言。廢話不多說,下邊就給大家推薦一些Java進階的好書。 第一部分:Java語言篇 1.《Java編程規範》 適合對象:初級、中

Java架構進階路線(年薪80W)

1、原始碼分析專題 詳細介紹原始碼中所用到的經典設計思想,看看大牛是如何寫程式碼的,提升技術審美、提高核心競爭力。

我的程式人生——年開發的思考,阿里朋友給我總結的“Java架構技術棧”

想寫這篇文章已經很久了,本來計劃在3月份,也就是剛好滿3年的時候寫的,但是因為各種各樣的原因推到了現在才開始碼字。 小感慨

JAVA架構之路----maven001---何為Maven

maven本人犯了猴子掰玉米的錯誤;現在從頭開始:成功=可行的計劃+執行力何為Maven?答:1>關鍵字:構建、依賴、項目信息、解決方案/gav、誇平臺、開源/apache、分布式開發集群式部署、本地倉庫、遠程倉庫、中央倉庫、私服/nexus、插件;2>2個url:http://mvnreposi

Java 架構 -- 必讀書單

評論 mybatis blog 競爭 事情 美國 上下 好的 案例 “學習的最好途徑就是看書“,這是我自己學習並且小有了一定的積累之後的第一體會。 個人認為看書有兩點好處: 1.能出版出來的書一定是經過反復的思考、雕琢和審核的,因此從專業性的角度來說,一本好書的價值遠超其

15套java架構、集群、高可用、高可擴展、高性能、高並發、性能優化、Spring boot、Redis、ActiveMQ、Nginx、Mycat、Netty、Jvm大型分布式項目實戰視頻教程

mycat 擴展 並發解決方案 入門到 -1 高端 資料 src nio * { font-family: "Microsoft YaHei" !important } h1 { background-color: #006; color: #FF0 } 15套java

java架構課程、性能調優、高並發、tomcat負載均衡、大型電商項目實戰、高可用、高可擴展、數據庫架構設計、Solr集群與應用、分布式實戰、主從復制、高可用集群、大數據

慢查詢 主從復制 難題 jms 整合 大數 數據庫設計 企業級 nginx網站 15套Java架構師詳情 * { font-family: "Microsoft YaHei" !important } h1 { background-color: #006; color: