為什麼你還在 ThoughtWorks?
因為不加班。人生總會有很多的選擇,在決策的那一刻,你不知道對與錯。但是,開心就好。
12 月初,ThoughtWorks 開始了 Annual Review 的 Kick Off,我開始總結這一年的工作,與此同時,我也開始總結我的 2019 節點。今年仍然是『平淡無奇』也過完了重要的一年。
太長不讀版:
- 愛情上,領證了,和 @ 花仲馬一起來到了杭州;還差好多錢買房,還得考慮辦婚禮的事情。
- 職業上,從深圳 office 轉到了華東 MU,從華東 MU 轉到了諮詢團隊,開始了在 TW 的出差生涯,還有加班生涯。
- 設計上,每天畫了一張畫,一年 365 張畫;插畫,作為文章的一部分,已無處不在。
- 寫作上,出版了《前端架構:從入門到微前端》,印刷量在 7500 左右,有希望在一年內達到 1 萬。
- 編程上,寫了更多的工具,愈加豐富的重構經驗,順帶深入軟件體系的架構。
- 斜槓上,嘗試電子產品的評測,寫作相關的收入差不多是前兩年之合。
- 影響力上,開始了 International 的嘗試 —— 時間仍然是一個限制因素。
- 社交上,我退出了大量的微信羣,專注於生產內容。
嗯,還有遊戲,文明大法好。
所以,對比一下上一年的目標:
- 技術隱私,打造了自己的 Serverless 密碼管理器:https://github.com/phodal/mopass ,作為一個 Chrome 插件,它很好地作為了我的二次管理認證工具。
- 非技術寫作。好似沒有一個開始,似乎也不是一個好的目標。借這個名義,我看完了《刺客信條》的小説。
- 工具。開發了更多、更有意思的工具,還有更多的 PoC。
- 設計。天天練習插畫,更快的畫畫速度,質量上也有所提升。也燒了更多的錢繪畫工具上。
- Coach。幸好在上一年裏,它不是一個目標,扶不起的人太多了。對的人,對的事,才能成——藉口。
- 影響力。受眾級別比上一年有所提升,還有更深度的內容。
不算太好,也不算太糟糕。
編程:平台 + 工具 + DSL
慣例,依舊是工作 + 業餘。
工作:Platform & Tools
工作上沒有圈,也沒有點,今年的工作簡直是一團糟,還加了人生的第一次班,而明年還會有更多。Work–life balance 不斷被打破,就得尋找一個更合適的地方 —— 如果有的話。
平台
上半年,工作的主要內容是大前端開發框架 / 平台,所以研究了一段時間低代碼編程,寫了那篇《無代碼編程》的文章。一番操作下來,發覺重點在於 AST 和 DSL。因此,除了開發一些日常的工具之外,我開始擼 dilay 框架,創建了 subal 項目……。作為一個苦逼的 Tech Lead,除了項目相關的兩個團隊,還要照顧公司的其它多個團隊。日常不是一般的忙,開會、開會、開會,還得做架構??還要評績效??填別人的坑??還有寫代碼……
一個也不能落下,每個都落下了。
做了一個大前端開發平台,這樣一折騰下來,收穫倒也是挺大的,我對研發體系有了更深入的研究。考慮問題的時候,比以往更加系統,更加全面。文檔、腳手架、示例應用、CLI 工具、IDE / 編輯器集成、售後 Q & A 等等一個都不能少。於是,在項目上寫了對應的 CLI 工具,嘗試把文檔融入了開發工具中……
沒毛病,老子可以各種吹了:不要做平台。我 Phodal 就是……,我也不會……。
工具
下半年,beach 了兩三個月,寫了個重量級應用 Inception,然後,轉到了諮詢團隊。來到了新的 U,有了更多的靈感和時間去寫工具,也從公司大佬新哥那獲得一堆 Todo List。所以,下半年在業餘時間寫了更多的代碼,寫了更多的 DSL。所以,DSL 成為我這一年的一個主要風向。
我有了遺留系統重構工具: Coca,還有了 Badsmell 識別工具:Sprite,以及對應的重構建議工具:fanta ……。
它們都是使用 Go + Antlr 寫的,target 是便宜的後端開發語言 Java。一頓瞎操作下來,除了更懂 Java 語法,我還學會了 Go。明年,我就可以 Rust + WebAssembly 搞 C or TypeScript 的語法分析了,一下子學會好幾種東西的感覺好爽。
卧槽,又要興奮的失眠了。想想,還是很美好的。
業餘:工具 + DSL
2018 年底,我的 GitHub 數逼近 40,000;2019 年底,也有 48,615了,可不敢説逼近了。明年我的目標就是 50,000 star 的時候,發個朋友圈,哦,不對應該是 Twitter。
依舊的 Serverless 仍然是我的後端最佳選擇,我用它寫了我的密碼管理工具:[moPass] https://github.com/phodal/mopass 。繼 ADR 和 Phodit 之後,我的另外一個日常使用工具。我的業餘項目上還上手了 Golang,嗯,真香。
Architecture
今年,有幸可以在項目中引入對於前端架構的探索,進一步地完善了我的前端架構體系,也產生了前端架構守護框架 Dilay,完美的造了個 PPT。
所以,在實踐了 Domain Driven Design 和 Clean Architecture 之後,我開始思考 One Architecture 的可能性,儘管我已經用 JavaScript / TypeScript 證明了它的可能性:https://github.com/phodal/one
然而,Java 仍然是後端的主流語言,一個 Java 轉 JavaScript 的工具不可缺少,而編程語言有那麼多,所以我們需要的一個是 DSL 轉任何語言的工具。也就是我最近在做的 Code 項目: https://github.com/phodal/code ,實踐上還有待完善,只是 hello, world 出來。大抵,還需要半年地時間完善。
基準化
考慮到人總是會老的,Phodal 是人,所以 Phodal 會老的。我繼續寫工具、文章來沉澱知識,以用於以後甩出一個鏈接(裝 x 神器):
- [Clean Architecture]:https://github.com/phodal/clean-frontend
- [React Boilerplate]:https://github.com/phodal/react-boilerplate
- [New Project Checklist]:https://github.com/phodal/new-project-checklist
- Inception 工具:https://github.com/phodal/inception
- [Path to Productioon]:https://github.com/phodal/path
- [Tech Lead Assessment]:https://github.com/phodal/tla
對應的還有一篇相關的文章:《如何創建你的應用腳手架》,年輕就是好,對了,還有 Tech Lead 的基準化:《Tech Lead 的養成》。
Everything as Code:DSL
作為一個 Markdown 資深用户,除了進一步完善我的 Phodit,我還結合 Markdown 寫了很多工具:
- Markdown 定製文檔工具,見 《【架構拾集】基於 Markdown 文檔展示系統設計》
- Markdown 轉思維導圖,見 Inception 工具。
- Markdown 轉 PPT 工具 mdppt
不過呢,定製別人的 DSL 始終是比較一個比較 hack 的方式,所以如何卓有成效地開發一個 DSL,便成為了一件非常有意思的事。所以,公司大佬説的 DSL as Data, Data as DSL 仍然是一個不錯的目標。
在那篇《雲開發:未來的軟件開發方式》中,我提到了在未來幾年,我要做的一些事情:
- 更易於實踐的微架構
- 完善的代碼化體系
- 尋求合適的協作設計
所以,設計和抽象 DSL(Domain Specific Language)將成為了我未來幾年一個重要戰略。也因此,從大體上來説,它仍然是我的下一年目標和計劃。
寫作:100 萬瀏覽量 + International
年初,出現了一個新的里程碑,我的博客 phodal.com 累計訪問量突破了 1,000,000 萬。
考慮到在微前端和 Clean Architecture 的實踐,已經和國外的速度差不多,外加國內的 996 環境。所以在在今年年中,我嘗試將 International 作為 Impact 的一個新方向。因此,在這篇總結裏,我把寫作相關的部分分為了大中華區和 International 區。
“大中華區”
雖然我在寫新書的時候,看了很多小説,試圖去改進,但是依舊在豆瓣上被吐槽『寫出來太理論太像翻譯腔』。沒救了,沒救了,寫過 776 篇博客的我,表達能力依舊還有巨大地提升空間。
出版
今年 5 月出版的《[前端架構:從入門到微前端]》,出版社的總印刷數已經有 7500(並非賣完),豆瓣讀書上的評分也有 7.6 分 —— 比前兩本書多出了一份。瞬間又有動力準備下一本書了,只是怕是沒有那麼多時間了。
頗為遺憾的是,出於字數少的原因,我在『前端架構』 一書中多加了一個章節。而由於出版時間太早,少了後來實踐的『Clean Architecture』——這是另外一個前端所需要的分層架構模式。將它與 Serverless 配合,就形成了我們所需要的 One Architecture。
文章:體系規劃
從內容上來看,我對今年的文章倒是頗為滿意的:
- 《無代碼編程》
- 《整潔架構》
- 《構建可信的軟件架構 10 要素》
- 《微前端架構》
- 《管理依賴的 11 個策略》
- 《雲開發:未來的軟件開發方式》
- ……
但是如你所料,我創建了一篇又一篇地長文章,手就有點疼,坐久蛋也疼。
只是呢,好像也沒有新的亮點了。
International
今年從我的觀察來看,我在開源領域開始逐步走向非中文世界。Mooa 和 ADR ,迎來了一個又一個的國際友人的支持。我的 GitHub followers 也多了一個又一個的國際友人。
內容國際化,是今年年中開始的一個新的方向 —— 之前的另外一個國際化目標是:開源軟件的國際化。
雖然我的英語語法並不是那麼靠譜,但是 Google Translate 也差。我相信同翻譯腔一樣,只要會被人吐槽英語語法不行,説明我已經成功引起大家地注意了。
English Articles
由於種種原因(諸如文章太長懶得翻譯、高質量的文章不夠多),產出仍然相對比較少。
不過,也算還行,我在 Dev.to 上創建了我的賬號,發了一篇微前端相關的文章,還有一篇 Clean Architecture 相關的文章,也產生了一定的影響力。除了幾十個的掌聲,一萬左右的單篇文章瀏覽量,還有 StackOverflow 有相關的問題指向了我的文章,笑而不語~。
所以,繼續翻譯更多的文章吧,是時候依賴反轉一下了。
Review
過去的幾年裏,Review 英文書籍顯然是國際賽道的一部分,只是呢,當時呢,這個 business line 還沒想好,現在也沒想好。
今年還是 Review 了 Packt 出版社的一本書籍《Web Development with Angular and Bootstrap - Third Edition》,遺憾的是近一二年 review 的書,都沒有被引入國內。
不管怎樣,國際化應當成為 2020 的一個繼續前進的方向。
設計
我換了一個又一個的工具:
- iPad + Apple Pencil。買前生產力,買後愛奇藝
- Wacom Intuos Pro。專業級手繪板,相當的不錯。
- 繪王 Kamvas Pro 16。嗯,解控屏,效率就是高。對於我這種非專業級選手,還是非常好用的。
- Wacom Intuos Mini。出差專用,個小板子雖然不那麼好用,但是我也算是習慣了。
終於,我還是沒畫好畫。
年中的時候,我嘗試錄製繪畫的過程到 B 站、抖音上。但是,畫的時候往往發現,錄視頻的時候,會影響我畫畫,也就作罷了。
畫:365 天
上一年考慮到設計的邊緣化,我開始採用日常練習的方式,來提升這方面的感覺。
Daily
最初設計的目標是每天 0.5 小時,但是受編程狀態的影響,往往會被擠壓到 15分鐘。好在,隨着練習的進一步
一深
深入,我還是能在短暫的時間內,畫出一些不錯的作品。
稍有不同的是,受出差的影響,我有時候不得不在早上畫畫。
Whatever,我已經有一堆畫了。
所以,如果沒有問題的話,它仍將作為我下一年的日常。問題的關鍵在於:如何結合文章的意圖,創建對應的作品?
Design Thinking
尋找更廣泛維度的設計思考。
TBD。
受限於有大量的代碼要寫,以及好像沒有遇到好的設計師。沒有靈感嘛,就先這樣,慢慢來,路子還長着。萬一明年可以遇到可以愉快合作的小夥伴呢。
其它
人生苦短,一點點做
Hello, 2020
嗯,我要登機回杭州了。
咦,2020 呢,要小康。
哦,不對,説好的婚禮呢。
本文參與了 SegmentFault思否徵文「2019 總結」,歡迎正在閲讀的你也加入。