記錄下在部署exchange中的經驗

2021-07-13 05:09:49 字數 2912 閱讀 9885

部署的過程不再細說。但這個過程非常值得記錄,因為這是乙個未知的領域,並沒有經驗可以依賴,可以說每走 一步都是在黑暗中進行。

關鍵的問題就在這,在開發中,會遇到大量未知的領域,沒有接觸過的技術,尚且不知道的解決途徑。這個時候,能否找到一條有效的道路,快速的獲取未知事物的規律,是解決問題的關鍵。在隨後的開發中,還將遇到更多的未知的領域,所以最重要的,是處理一門新的技術的途徑,而不是在黑暗中不斷的摸索和試錯,尤為重要。

每個人其實有適合自己的學習方式,不能一概而論,所以有些經驗其實不能直接套用,但別人走過的彎路,卻可以加以避免,不繼續在同乙個地方跌倒。

最突出的問題有兩個:

一. 在沒有儲備一定知識量的情況下,急躁冒進,貪多求快。

上面那句話可能會引起誤會,讓人以為只有在了解了關於該技術所有的細節,以及方方面面的知識後,才能開始動手。這其實是種幻覺,知道的越多,並不意味著你能掌握得更多。

舉個很明顯的例子,如果你要學會游泳,買了一本教游泳的書,從頭背到尾,但是卻從不下水。那麼一旦你開始下水,你同樣不知道該怎麼做,因為那些知識,你只是死記下來,沒有將知識轉變成自身的一部分。而之所以會這樣,是因為,在行動中,會暴露你對知識掌握的深度,當出現問題的時候,就是考驗你利用已有知識進行解決的過程,出現的問題會逼著你去反思自己的知識架構,以及對於該技術的理解。當你做錯了時候,其實是改變自己最大的機會。

另乙個極端同樣不可取,那就是過於輕視理論和基礎知識,過於急躁,希望快速的得出成果。

在這種情況下,其實包含了一種,希望用快速的成果來建立自信的情感,讓成就感成為前進的動力,但這種情感在面對大量的挫敗的時候,會成為吞噬自己的毒藥,對成就感的渴望越深,對失敗的恐懼越嚴重,就越是懼怕失敗,導致自己根本不願去面對問題。這樣的話,不去做,就不會犯錯,從而被情緒所左右,但這其實是過於自我的表現,不肯面對自己的失敗,也是不夠成熟的。做開發切忌將個人情緒代入其中,情緒的波動將會對思考造成惡劣影響,篤定目標不斷前行,不斷的靠近目標,才是最有價值的。

在缺乏乙個大的知識框架的情況下,冒然前進,一旦出現問題,將會沒有乙個解決問題的思考路線。為了去解決出現的問題,就開始利用各種能想得到的辦法,這是種碰運氣的行為,即使運氣好,解決了問題,當下一次遇到的時候,如果上下文環境稍有不同,那就幾乎要重新再把各種想到的解決方法再試一遍。每次處理出現的問題,都是在黑屋子裡摸索。在這種情況下,其實是最能摧毀乙個人前進的勇氣的,不斷的試錯,不斷的失敗,再不斷的試錯,導致了大量精力和時間的損耗。

兩種極端都是不可取的,這兩種極端的情形,都是偏離問題的解決之道的。在處理乙個未知的領域時,其實最本質的,是不斷加深對該領域的理解,進而不斷的增加對該領域的駕馭能力,當出現問題,是依靠對該領域的理解和駕馭力去解決問題,這樣才能一針見血,直破問題的核心,從而才能快速的將出現的問題予以解決,並且不會再犯。要做到這一點的話,一開始並不是行動和實踐,而是建立對該領域最小的知識維度,閱讀該領域的文獻和資料,閱讀一些簡單的教程,梳理出大的知識架構,知道該領域的邊界,從而建立該領域的骨骼。然後開始一步步的前進,前進過程中遇到的每個問題,都是一次增進自己理解的機會。問題的出現,其實是種良機,能讓你不斷的思考為何如此,從而不斷的修正自己的思路,修正對該領域知識的理解,在這個時候,再去讀更多更深的資料,必要的時候需要暫停腳步,做更深的思考,從而從該領域的知識本身去解決該問題。這樣,對該領域的理解,在一次次的前進中,得到了加強,並且融入進了自身。這樣,主線其實是對該領域的理解,以及對該領域知識掌握的深度和廣度,而非為了解決問題而解決問題,那樣的話,即使問題被解決,在該領域,依然沒有建立相應的知識體系,再次出現問題,將依然無法有效的解決。

二.  沒有及時儲存現場,在發生問題的時候,不能快速的切換回上乙個有效的里程碑。

而且,在處理未知的領域的時候,有各種因素都可能會對結果造成影響,所以也需要控制不確定性,每次更改環境中的乙個變數,試探對結果的影響,獲得成果之後,立即儲存。在部署exchange的過程中,有各種因素導致安裝失敗,先決條件不滿足的情況也有很多,例如,依賴的補丁沒有安裝,域控制器的許可權和管理存在問題,與已有的exchange服務產生衝突,版本相容錯誤,諸如此類,如果不控制環境的不確定性因素,那麼數個因素同時在其作用,會導致陷入混亂狀態。解決掉乙個,儲存現場,然後處理下乙個,有條不紊的進行。

處理未知領域的途徑

在說明我處理未知領域辦法之前,先要再次說明,每個人有適合自己的方法,絕不可邯鄲學步一樣直接套用別人的經驗,那樣可能會適得其反。

1. 快速閱讀大量簡明教程,簡介,特性,處理領域,範圍。

第一步的目的,是為了快速的對該領域有乙個最初的印象,了解該領域的邊界,對其基本特性有所了解,與其他相關技術的關聯,與類似的技術的區別。建立最基本的知識架構。這一步不用太深入,但一定要明白該領域的知識骨架,不要糾纏於細節和具體實現。

2. 快速試錯。

在這一步展開行動,但行動的目的,是為了獲得對該技術切身的體驗,建立直覺,從大量的經驗中,尋找到規律,所以快速失敗至關重要,快速失敗本身便是暴露自己的盲區的過程。這個時候,就需要大量的試錯,每一次錯誤,都要進行反思,思考為何如此,然後分析原因。處理之後,再次前進,繼續遇到問題,再次反思,讓直覺和經驗不斷累加。尤其是處理未知的領域 的時候,這種經驗和直覺非常重要。

這個過程,如果是在掌握新的語言,新的框架,那就意味著要去讀一些別人寫的小demo,先做到正常執行,此後就不斷增加該demo的複雜度,不斷的練習,在內心中,培養對該領域的駕馭的感覺。

試錯的次數,因人而異,如果每次都進行反思,並不需要太多次。因為你觀察的越多,想的越多,就會發現,某些相同的東西在重複的出現,這些重複出現的事物 ,重複出現的感覺,重複出現的現象,重複出現的bug,重複 出現的路徑。這些重複出現的,就是該領域的規律本身,一旦找到該領域的規律,就意味著由量變達到 質變,可以進行下一步。

3. 建立自己的思考框架 

當建立了屬於自己的思考框架 之後,就可以將其作為指導,去構建更龐大的專案。這時因為已經有了自己的思考,所以即便出現新的未知的問題,也能從該領域本身,去思考為何會如此,從而能快速的鎖定問題的根源,從源頭扼殺bug。

從今天開始,記錄下在公司的點點滴滴。

公司不給上外網啊.木有辦法只好用這樣的方式了.今天由於家裡還是不能上網,所以果斷來公司加班以防止在家成為鬍子拉碴的宅男過一天跟ai三國殺的日子.來到辦公室發現沒有什麼人,於是想起這週的工作成果還沒有編寫單元測試.提起鍵盤建立了 test類才發現不知道該從何下手.於是隨手抄起junit in acti...

簡單記錄下HTTPS中的SSL

大概思路 大概思路是混合加密的方式,即對稱加密方式混合非對稱加密方式。非對稱加密會更加安全,功能也更強大,但他複雜而且速度慢。對稱加密速度快,但要保證這個公共金鑰的正確性和真實性。所以兩者結合,在確定公共金鑰的時候,採用非對稱加密的方式來傳遞這個公共金鑰,然後後面的交流的資訊都用這個公共金鑰來進行加...

小程式製作中遇到的坎,記錄下

之前也是從往上找到了一些方法,但是沒有改過來,然後測試修改,才發現級別不夠,所以給整個輪播前加上page 就可以修改他的樣式了,可以看控制台裡面,page是頂級的標籤。page homeb1d2 swiper wx swiper dot page homeb1d2 swiper wx swiper ...