對技術深度的一些務虛思考

2021-10-16 17:11:35 字數 2242 閱讀 9788

「技術深度」這個詞聽起來很是玄乎,每個人對它的理解都不一樣。我對它的理解主要體現在兩個方面:對業務的理解與思考對業務/業界中用到的技術點的理解深度。

對於業務來說

當我們接到乙個需求或需要去實現某個功能/架構的時候,要有全域性思‎維、整體觀,同時又​能透過現象​看到本質​,抓住​事情的核心。對專案的思考程度夠不夠,專案中解決問題的技術理解的夠不夠深,對於專案採用的技術鑽研足不足。如何在日常的工作中抽象出來,理清思路?這裡面也是有一些門道的。與大家分享一些方**。

首先弄清楚為什麼要做?背景是什麼

在著手解決問題之前先弄清楚背景是乙個特別好卻被大多數同學忽略的好習慣。通常架構師對業務的功能模組拆分,依據的是他們多年的業務感知力和實踐經驗。學會請教,了解清楚為何如此拆分,一是明確需求,不容易出現實踐偏差,另一方面則是對他們經驗的吸收,這可是相當寶貴的財富。不僅如此,還應當盡可能考慮自己承擔模組的任務及其在整體當中的意義,如何承接上下游。標準是能講清楚自己的工作和價值。

如何做?

如何做,說白了就是解決專案問題的方法。注意思考幾個方面。對於專案問題,有哪幾種方案,各方案的優缺點如何,選擇其一而不用其他的理由。對於已經實現的功能,想一想是否有其他替代方案。

標準:時刻記住多往深度走兩步。說容易,做起來靠的是毅力與心性。

總結和覆盤

專案完成之後,學會總結與覆盤。從各個方面去考量,學會去假想一些當前業務中沒有出現的問題,思考如何去解決。舉個例子,當前系統中沒有出現超大流量,想一想如果突發流量洪潮,會不會對目前架構有衝擊,主要會影響哪些方面,如何去預防。

業務中的「技術深度」需要體現自己的思考,無論是對已有架構還是對未知場景的假想都會對專案的理解更加深刻,我想這種批判性的思維,也是各大公司都需要人才具備的素質吧。

對於業務中的技術點而言

技術背景、演變、初衷及目標。

這個技術出現的背景、初衷和要達到什麼樣的目標或是要解決什麼樣的問題。這個問題非常關鍵,在學習乙個技術的時候,需要知道這個技術的成因和目標,也就是這個技術的靈魂。如果沒有了解清楚這些,可能會導致我們看不懂這個技術的一些設計理念。

場景&優缺點?為何專案中用到,用與不用的區別,如何抉擇

任何技術都有其適用的場景,離開了這個場景,這個技術可能會有很多的槽點,比如,mq有很多好處:解耦、非同步、削峰等,但同時也會帶來系統複雜度幾何倍數的增加,因為必須要去考慮資料的一致性、冪等性、可靠性等。所以學習技術不但要知道這個技術是什麼,還要知道其適用的場景。沒有任何乙個技術是普適的。注意,所謂場景一般分別兩個,乙個是業務場景,乙個是技術場景。

這個技術的優勢和劣勢分別是什麼。任何技術都有其好壞,在解決乙個問題的時候,也會帶來新的問題。另外,任何設計同樣存在trade-off(要什麼和不要什麼),所以我們要清楚這個技術的優勢和劣勢,以及帶來的挑戰;

技術的組成部分、底層原理和關鍵實現

如果已經決定要使用該技術,那麼接下來的問題是如何用得好。嘗試去了解技術的組成部分和關鍵點。這是技術的核心及靈魂所在了。學習技術的核心部分是快速掌握的關鍵。對於某些較為通用的關鍵解決方案,必要時去閱讀相關原始碼,一定要帶有目的去看原始碼,不然容易陷入原始碼的泥藻裡越陷越深。

其他競品與它之間的對比。

已有的實現和它之間的對比。一般來說,任何乙個技術都會有不同的實現,不同的實現都會有不同的側重。學習不同的實現,可以得到不同的想法和思路,對於開闊思維,深入細節是非常重要的。

務虛的5why學習法:

其實說白了,核心只有一點,在日常工作中一定要養成刨根問底的習慣。如何做到?豐田公司最早提出了乙個所謂5why分析法,又稱「5問法」,也就是對乙個問題點連續以5個「為什麼」來自問,以追究其根本原因。雖為5個為什麼,但使用時不限定只做「5次為什麼的**」,主要是必須找到根本原因為止,有時可能只要3次,有時也許要10次,如古話所言:打破砂鍋問到底。5why法的關鍵所在:鼓勵解決問題的人要努力避開主觀或自負的假設和邏輯陷阱,從結果著手,沿著因果關係鏈條,順藤摸瓜,直至找出原有問題的根本原因。

5why從三個層面來實施:

一、為什麼會發生?從「製造」的角度。

二、為什麼沒有發現?從「檢驗」的角度。

三、為什麼沒有從系統上預防事故?從「體系」或「流程」的角度。

每個層面連續5次或n次的詢問,得出最終結論。只有以上三個層面的問題都探尋出來,才能發現根本問題,並尋求解決。

C Plug in 技術的一些深度思考 1

c plug in 技術的一些深度思考 2 最近,忙於思考如何重構乙個unix系統。這個系統是由c 寫的,重構的思路是希望能夠抽取出一些公共的東西,作為core。另外一些東西做成plug in。這樣以後如果客戶的規範更新了,我們只需要增加修改plug in就好了,core的部分不需要再修改。要滿足這...

對Python shell的一些思考

對python shell的一些思考 就兩次指令碼處理的編碼練習而言,我感覺如果使用python去寫指令碼來處理日常事務的話,相對於shell是一件比較麻煩的事情,因為我可以使用shell在花費更少的時間內,比較熟練地使用awk sed和grep這些常用的命令在非常簡短的指令碼語句內,完成pytho...

對迷茫的一些思考

最近依然迷茫不安,從3月份開始嘗試去找工作,現在已經4月底,依然沒有著落。不是沒有好機會,而是自己能力不足,抓不住機會,於是自己很慌亂,發現不會或不擅長的東西,拼命在補,同時也在後悔為什麼當初沒有好好努力。然後也明白了一些道理。人們總說學習永遠不晚,其實是會晚的,會錯過很多時機,但時機是不會再次到來...