2021 年第一个双月总结
2021 年第一個雙月總結
距離上一篇總結已經過去了兩個月,簡單來復盤下這兩個月的事情吧。
技術和分享
截止這篇文章發出,今年我已經公開分享了 9 篇技術相關的內容,也在不同的領域挖了一些新的坑,等待慢慢連載補全。其中提及最多的幾個關鍵詞是:Nginx、NJS、CI、Docker、GitLab、Drone。
這些關鍵詞分別代表著我目前在做和計劃做的部分事情,那么就稍微展開其中花費精力比較多的事情來聊聊吧。
Nginx & NJS:2021 年北京智源大會的高性能方案
相比較往年使用 Node / Java / PHP 這些經典方案來提供服務,今年在一些簡單的通用場景上,計劃將服務提供能力下沉到服務“最前端” 的 Nginx 上,用時髦的話來講:“NJS Serverless 在邊緣計算場景中的實踐”。
相同資源的情況下,可以提供更高的性能,帶來更好的用戶體驗,依靠更低的代碼量、更健壯的代碼基來進一步減少開發心智負擔和維護成本。類似聚合接口、基礎鑒權驗證、生成簡單的媒體文件這類需求,完全不需要再起一套帶有框架的重型武器,一個 Nginx 標準鏡像,帶著一百行以內的 NJS 腳本就能高效的解決問題。
并且因為服務本身無狀態、低狀態的特性,非常容易水平擴展,提供可觀的可預期的線性增長的性能。
CI、Docker、GitLab、Drone:可用于多個外包團隊的通用開發環境
在兩屆智源大會背后這篇文章中,我提到過我們的團隊和許多非互聯網公司一樣,依賴外部外包協助產出、進行人力補充,在去年的項目中,前前后后大概有至少五十余外包同學參與過各種項目的開發。
外包生產對于企業組織架構的精簡有好處,但是對于產品開發來說利弊一半一半,短期能夠明顯的降本提效、能夠用人海戰術來解決一些初級問題,但是長期來看,軟件的交付質量、代碼的可維護性以及產品最終體驗上都會存在一定的問題。
使用外包進行項目開發對于雇主團隊的產品文檔能力、項目管理能力有了很高的要求,除此之外對于項目代碼 Review 、交付驗收也增加了非常多的工作量。尤其是外包團隊還可能會出現因為不可控因素過程中換人、并行開發多個公司項目時間爭搶、存在兼職人員只有在下班才能投入開發和進行項目溝通的情況。
在以往的項目中,我們會更多的照顧開發者的習慣,開發過程集中在開發者本地機器,同時開放測試環境機器權限給項目工程師,在交付前先在測試環境機器進行部署,部署驗收基本功能沒有問題之后,再進行進一步的外部倉庫代碼合并,在最后集成驗收的時候,再進行容器封裝、多機部署,集成測試。這樣做保障了我們最終產品質量下限,保護了內部線上數據安全、也盡可能少的對外暴露代碼,但是也造成了一個很常見的風險:延期。
而導致延期的主要原因是:在開發階段的代碼,和驗收時要求的規范不一致;在驗收的階段的代碼,存在和開發最后提交代碼不一致和暴露額外設計問題的可能性。外部人員不熟悉也不清楚雇主的要求,代碼規范繁雜和過多,等同于沒有規范;將外部倉庫合并至內部倉庫,代碼由子集變成全集(內部也存在需求迭代)、代碼運行環境發生變化,導致運行結果存在一些差異;集群模式下應用出現一些經典的流程控制、資源爭搶問題。
對于后端接口我們可以進行測試覆蓋來驗證項目的正確性,但是對于前端項目,尤其是頻繁變更的前端項目,如果不采取錄制,而是采取編寫測試用例的方式,對于交付時間和用工成本都會有一些額外的投入、能否持續落地也是一件有挑戰的事情。
這類問題最煩人的不是出現問題,而是出現問題太晚了,接近項目開發末期,可能外包人力都接近釋放的時間點。如果我們將驗收這個階段提前,或者說和 CI/CD 一樣的理念一樣,融入到整個開發階段中呢?
如果能夠讓開發產物和最終上線產物除了填充數據外保持完全一致,讓開發過程使用的持續構建和線上最終構建保持完全一致,讓開發過程直接能夠使用線上最終的域名環境和鑒權認證過程,不再去刻意區分不同。那么交付時間和質量就能夠變得的相對可控。
基于此,我在將開發團隊在云服務器環境和本地使用的一些云原生的工具、持續集成的功能下沉到本地,讓每個參與開發的人都能夠有一套分布式的離線環境來根據規則進行符合要求,和目標環境差異幾乎無差異的開發,讓開發過程中的產物更加貼合最終的交付產物。
閱讀數據
前面提到了已經分享的內容,和進行中的計劃和事情,接下來記錄下副產品,閱讀數據。
相比較上次年末統計,知乎閱讀數據增加了 14 萬。
清洗網站數據進行統計看到今年目前已有4萬獨立IP進行了訪問,不過不同的是今年的海外訪客多了起來,或許是因為我在 GitHub 上挖的幾個新“坑”吧。這里面有一些還算比較“硬核”的東西,如果后續有時間,我會整理成完整的文章。
下面分享一個有趣的數據。
來自谷歌和百度的統計的數據
我的讀者多數是互聯網從業者,其中使用 Ad Guard、AdBlock、uBlock Origin的用戶應該不在少數,因為無論百度還是谷歌的數據中,訪客人數和閱讀數量都對不太上,甚至在區域數據上都會有一些差異。
團隊建設
《2020歲末總結》中,關于工作、團隊相關的觀點目前看來依舊保持有效,故不做贅述,聊一些其他的。
提到團隊建設,繞不開的話題是“人數”和“產出”,這里相對更本質的關注點是“有效人效”。之所以在人效前添加有效作為修飾,是因為我們可能會產出很多看似很多、還不錯的結果,但是對于大方向、戰略來說幫助不大。此外更大的規模的團隊,意味著更大的責任。不論是從團隊對組織上看、還是從團隊管理者對團隊成員上來看都是,故招聘需要慎之又慎。
如果團隊當前出現了一些問題,尤其是那些看起來能靠加人來解決問題。相比較盲目的靠添加人力這種笨辦法來掩蓋和解決一些簡單的短期的問題,不如梳理出當前團隊的主要任務和值得長期投入精力去攻克的事情。“選擇并保持合適的團隊規模又有何不妥。”
此外,團隊成員之間的信任、工作中的協作、方法論、基礎效率提升反而應該更值得關注的事情,因為對于這些方面的投資不需要你打雞血 allin 、下很大的賭注,只需要在日常過程中慢慢浸潤即可持續“獲取收益”。
生活相關
在這兩個月里,我學會了開車,已經能夠載著自己上下班了,甚至能夠和妹紙一起帶著貓咪們出門遠行,這件事最大的好處就是我們不必再擔心帶毛孩子體檢遇到不想拉我們的司機。等到駕駛經驗再熟練一些后,或許我會考慮住遠一些,讓居住條件上一個臺階。
學車過程中有一個比較有意思的事情,在寫代碼的時候,我最初接受的思想之一是“防御性編程”,而汽車教練教我的方式則是“防御性駕駛”,奇妙的巧合。
在過年期間,我們和同公寓樓一個陌生的年輕程序員同學,在公寓門口遇到了一頭從樓上窗戶摔下來的小貓,大家七手八腳的把小貓帶到了附近的寵物醫院。
雖然小貓內傷很重,但是經過醫生的努力,當天住院時已經安靜了許多。幾天后,經過手術,小貓目前已經成功出院,并由原主人帶回家照料。這個事情之后,我們對出門關好窗戶的認識更深刻了,你永遠不知道小貓對窗外的世界有多好奇。一時的疏忽,帶來的可能是一輩子的遺憾。
節后第一個現象級產品 ClubHouse 火爆了朋友圈,在朋友的幫助下,我比較早的體驗到了這個軟件,看著不少人沉迷于此的時候,恍惚之間感覺到了嚴重的“知識揀房”,或者說“信息繭房”更為貼切。
為了減少這類情況的發生、多一些有長期價值的沉淀,我和幾十位群友開始了讀書打卡挑戰,目前已經運行一個月,為了有儀式感,我還用 Hugo 生成了一個簡單的“已閱書籍”頁面:https://soulteary.com/reading-list/。
其他
我在考慮添加一種技術分享的方式,在日常使用部分內容開放的 Wiki 進行分享,當分享內容積累到足夠質量后,形成一篇有趣有料的技術文章。為此,我提交了一個新的網站備案申請,以及購置了一臺年付的主機。
先寫到這里吧。
–EOF
本文使用「署名 4.0 國際 (CC BY 4.0)」許可協議,歡迎轉載、或重新修改使用,但需要注明來源。 署名 4.0 國際 (CC BY 4.0)
本文作者: 蘇洋
創建時間: 2021年03月06日
統計字數: 4277字
閱讀時間: 9分鐘閱讀
本文鏈接: https://soulteary.com/2021/03/06/summary-of-the-first-bimonthly-in-2021.html
總結
以上是生活随笔為你收集整理的2021 年第一个双月总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html5的技术串讲,Web前端开发职业
- 下一篇: 金陵五题·并序 刘禹锡