2021年總結

語言: CN / TW / HK

過去一年中有什麼變化嗎?這是我每年對自己的提問。

深入研究的技術

在技術研究方面,我在上半年的時候主要研究了 Golang 這門語言,並寫了很多相關實現原理的文章,都記錄在這裡 。由於 Golang 很早就實現了自舉,所以當時研究它的時候還是所獲很多的,包括對 Golang 的 GMP、GC、堆疊、彙編、記憶體分配、一些常用庫的實現原理等進行了一系列的探討。包括現在我還會偶爾寫一篇文章講講 Golang 的某些庫的實現原理,或是工程運用。

下半年當時是想著要找一個比較知名的專案進行研究,正好專案中正好因為要切換到分散式資料庫,所以我也找到了 TiDB 這個專案進行了比較深入的研究,並寫了一系列的文章,在這裡 可以檢視,但是資料庫這個領域還是比較專業的,裡面為了適配各種業務功能充滿了各種瑣碎的程式碼,研究下去太浪費時間,話個半年深入研究一門技術已是我的極限,再加上工作中很難用到,所以不想再深入下去。

研究這些東西當然不是說我要去寫這些專案,或者說是一定要用這些東西在工作中進行施展,而是要讓自己在一定時間內保證一定的技術深度和廣度,並且對這個世界保持一定的好奇心,這些都是以後自身發展的資本。

技術之外

前一段時間我在看《程式設計師修煉之道》的時候,裡面講了一個知識組合投資的概念。就像我們做股票投資一樣,一般都推薦不要將所有資金都放到一個籃子裡,同樣學習也是一樣,我們的時間是有限的,不應該將所有的時間都投資到一個領域中。

所以在《程式設計師修煉之道》中講到的知識組合投資包含以下幾點:

  • 每年學習一門新語言 :不同的語言以不同的方式解決相同的問題。多學習幾種不同的解決方法,能幫助自己拓寬思維,避免陷入陳規。
  • 每月讀一本技術書 :在你掌握了當前正在使用的所有技術後,擴充套件你的領域,學習一些和你的專案不相關的東西。
  • 還要讀非技術書 :計算機是由人來使用的,你做的事情是為了滿足人的需要,這非常重要。
  • 上課: 在本地大學或是網上找一些有趣的課程
  • 加入本地的使用者組和交流群: 獨來獨往對你的職業生涯是致命的;瞭解一下公司之外的人們都在做什麼。
  • 嘗試不同的環境 :如果你只在Windows下工作,那麼就花點時間在Linux上。如果你只使用簡單的編輯器和Makefile,那就試試最新的炫酷複雜的IDE;
  • 與時俱進 :關心一下和你當前專案不同的技術,閱讀相關的新聞和技術帖。

所以最近幾個月中我自己也嘗試一些別的東西,避免自己的思維固化。

嘗試不同的環境

其實我的工作中是使用 mac 開發,在家裡自己搭了一臺效能還算強的 PC 作為主力機學習,在下半年的時候我也想嘗試使用 Linux 來作為我的主力機使用,看看如何。

其實剛使用的時候還是有很多麻煩,比如它的中文輸入法不太好找(不想用搜狗),後來使用了鼠須管輸入法;我一般會使用figma來做圖,官方沒有linux版,只能下載第三方的使用,經常卡死;在 jetbrain 的 goland IED 中輸入法無法跟隨游標,我只好將輸入框調整到一個固定的位置使用;很多工具都沒有 Linux 版,導致我只能被迫找替代品,以至於我現在使用工具的時候都會關注一下它是不是支援多平臺。

但是也有好的一面,比如開發很順暢,不會因為環境問題而阻塞;由於無法使用微信,也不會因為閒聊浪費時間;也不能玩遊戲,所以每次開啟 Linux 只有一個目的,那就是學習。

嘗試安卓系統

我記得安卓系統我是在很早之前用過了,最近很多年我都是在使用 IPhone 作為我的主力機,所以最近在考慮添置一臺平板的時候購買了三星 tab s7,主要用它閒暇時看看影片,看看 pdf 等。下面我說說作為一個蘋果使用者是怎麼看待這塊安卓平板 。

首先不得不說,這應該是能在4k這個價位能買到的最好的平板了,不管是影音,還是手寫,我感覺都不遜色於 ipad pro,並且安卓還可以安卓類似李跳跳這樣的app來跳過開屏,這是在蘋果辦不到的。

它還有一個另我驚喜的是,可以通過 termux 來安裝一個完整的 Linux 系統,並不只是如此,它還可以通過 VNC 開啟一個圖形化介面,也就是說我可以通過它來使用 jetbrain 家的產品來做一些輕度的開發,外出應急還是沒什麼太大的問題。

系統互動也比較舒服,我特別喜歡一點是任何的軟體都能直接側滑返回。在蘋果上這可不行,有些軟體可以通過左邊側滑返回,有些必須要點選左上角的箭頭返回這非常的操蛋。

我還比較喜歡安卓的檔案系統,非常的靈活,可自定義程度比較高,檔案想放哪兒就放哪兒,不像蘋果是一個沙箱,檔案操作非常的麻煩。

不好的方面也有,那就是軟體適配很有問題,甚至在 goolgle 的 play store 上根本看不到平板 app 這一分類,可見連官方都放棄了對它的支援。例如,比如微信、企業微信,在ipad上有特殊優化過,但是安卓平板沒有;常用的QQ音樂也沒有適配,但是聽歌軟體後臺播放就好了,不影響。

所以綜上,安卓是有一定的生產力,可以裝 Linux 執行 IDE,可以執行任何 Linux 軟體,玩法很多。作為一個正常的平板,看看電影,看看書也完全沒問題,對於現在 ipad 動不動要六七千來說,我覺得是比較值的。

作為不想被蘋果生態綁架的我來說,這次的嘗試給我一個重新回到安卓勇氣,也許下次換機會選擇安卓機。

平時學習

平時在家學習的時候我特別喜歡開啟 Youtube lofi 一邊聽一邊看書學習,真的是非常愜意。因為 tab s7 的四揚聲器音響效果還不錯,所以我使用它來播放 lofi,如下圖:

下面我推薦幾個我比較喜歡的 Youtube 的 lofi 頻道吧。

  • Lofi Gril:這個頻道有直播,可以隨時聽, 24小時直播線上;
  • 阿鮑Abao:他的影片會經常配上日本東京的景色,比如東京日落、日出、雨天等等,有種比較安靜的感覺;
  • pikeチャンネル:他的影片會比較乾淨地展現出他學習地場景,標誌性地會有一個漂亮地計時鐘,配上純白的環境和純音樂,也是挺愜意;
  • The Soul of Wind:通常會配上一個漂亮的動態桌布,配上純音樂,我也是蠻喜歡的;

其他

最近在思考專案中軟體工程方面的問題,也在做不同的嘗試,比如這篇:Golang 簡潔架構實戰 ,就想在專案中嘗試用更加清晰簡潔的方式來構建我們的程式碼,使程式碼更加清晰易懂。

接下來我還會繼續探索一些和技術雖然沒什麼關係,但是和軟體工程相關的問題。對於我來說,以前還是過多的關注軟體的具體實現,很少有回過頭來看整體,缺少一種抽象思維與總結歸納的能力。

數碼產品

顯示器

最近我換了一臺戴爾的 U2720Q 顯示器,以前我使用的使 LG 的某款顯示器,因為它的色彩偏白,在家學習的時候看久了經常容易眼睛脹痛,但是換了這臺之後沒有出現過了。

從顯示角度上來說,它的各個方面都很優秀,色彩不會偏白,據網上測評它的顯示還是比較準的,並且自帶閱讀模式,我看書時用起來還是比較舒服的。並且還帶有 90w 的反向充電,用mac的同學可以只插一根線就可以解決充電和顯示的問題,不過可惜我用的是桌上型電腦,這個功能用不上。

掃地機器人

我在618的時候購買了一臺小米掃地機器人 pro, 我感覺這應該是今年買過體驗相當好的產品。我家養了貓,所以每次回到家裡都是一地貓毛,經常感覺空氣中瀰漫了貓毛,有了它以後基本上不怎麼需要打掃了。

買之前還擔心它得避障能力,買了之後發現完全是多餘的,掃地機器人發展到這個階段基本上不會亂串,也不會撞到東西,每次都規劃好路徑仔細清掃乾淨。不過我這款拖地水箱和塵盒是在一起的,經常水箱會漏水,弄的塵盒裡面的垃圾溼黏黏的,建議買個水箱和塵盒分離的。

安卓平板

上面已經說過了。

xbox

可以看我這篇文章,已經分享過了: 國行 Xbox Series X 體驗

推薦軟體

微信讀書

首先我感覺它的介面挺簡潔的,我使用的時候基本上把所有的社交排名功能都關了,畢竟看書就是看書,不需要在看書的時候搞社交。

再來就是它的讀書記錄可以全平臺同步,我一般在公司裡面用瀏覽器看書,然後晚上坐車回家再手機上接著閱讀,回到家再換到平板上還可以接著讀,這個體驗感比我以前用 kindle 不知道強多少倍。

最後令我感覺好用的就是它的傳書功能,因為微信讀書上很多書沒有,所以我一般在 zlibrary 上把書找好傳到微信讀書上再閱讀,讀書記錄同樣可以同步!

Termux

這個軟體是我最近使用安卓平板上的軟體,用它可以安裝一個完整的 ubuntu,簡直不要太舒服。外出學習或者是輕辦公只要帶一個平板就是可以了。

NextCloud

我體驗過很多雲盤,但是每個或多或少都有一些缺點。iCloud 同步太慢了,並且在 mac 上無法手動觸發同步;Dropbox 體驗是最好的,但是太貴了,並且需要翻牆;OneDrive 雖然便宜,但是同步有些不穩定;Google Drive 體驗最接近 Dropbox,但是同樣需要翻牆。

正好我最近弄了臺伺服器,不知道做什麼用,就搭建了 NextCloud 作為同步盤使用,用了一段時間感覺還挺好用的,首先它是跨平臺的,其次它的速度取決你的雲伺服器,再來就是它資料非常安全,雙端加密,即使放一些賬號密碼放到上面也不怕。