開發者,別讓自己孤獨

2021-10-11 19:08:13 字數 3708 閱讀 9064

作者 | 溪洋

**|

「社會之所以能夠運作,並不是人類有意使然,而是因為它是進化過程**現的人類秉性。確切地說,它就是人性的一部分。」 ——《美德的起源》馬特·里德利

所謂「助人者自助」,或許協作、互助這種能力就是我們為了滿足人類與生俱來的一部分「個體私慾」而進化來的,讓自己和他人都能從中受益。 在開源社群中,這一點得到了很好的體現。「開源」本身就是乙個社會性事件,它的流行很大程度上得益於協作以及由協作帶來的創新。特別是隨著雲原生成為大勢所趨,企業 it 技術體系越來越朝著原生化、標準化的思路演進,這些都推動著開源來到乙個新的**年代。

不得不說,今天的開發者是幸福的:雲讓基礎設施使用起來像水、電一樣便利;雲原生將分布式的應用門檻不斷下放;開源社群幫助開發者找到各種為自己所需的基礎軟體。剩下的,就是需要開發者自己去思考如何利用好這一切,比如通過主動融入更大範圍的學習、交流、溝通圈子,以及借助開源社群的能力等方式,讓產生於開發者群體中的「分布式」和「社交方式」的決策形成事實標準,進而讓每一位開發者自己成為推動技術發展浪潮的主角。

從 oam 剛發布開始,roy 就投入了積極的貢獻。作為全球首個定義雲原生應用標準與架構模型的專案,2019 年 10 月開源的 oam 和 roy 一樣,都是年輕而快速生長的:年輕的 oam 在今年鋒芒顯現,被評選為「2020 年度十大開源新銳專案」;年輕的 roy 憑藉自己的貢獻成為 oam 核心實現 kubevela 專案的核心 maintainer,需要從更加全域性的視角幫助專案發展。

我們向 roy 了解了他成為 maintainer 的心路歷程,並且從中得到了一些關於如何看待開源精神、貢獻社群以及對 oam 的理解等問題不一樣的答案。

roy 在實驗室的研究方向是「雲計算與雲應用編排」,解決的問題是幫助應用開發人員遮蔽掉由底層基礎設施帶來的複雜性和差異性,使他們更好地運用雲平台上豐富的應用管理能力,來構建和編排規模龐大且複雜的雲原生應用。這在現階段是非常具有挑戰的乙個課題。

隨著雲原生領域的迅猛發展,開源社群也湧現出了許多與之相關的開源專案,roy 會經常關注一些雲原生相關的開源專案。在他看來,oam 的價值在於以乙個俯瞰整個雲原生領域的視角,通過建立全新的應用定義與交付模型,在應用層提供了乙個用於構建和交付雲原生應用的標準規範,這給過往一直專注於基礎設施層的雲原生領域開闢了全新的前進方向。

因為看到 oam 實現的目標和自己的研究課題非常接近,加之有阿里巴巴、微軟這樣的大型企業背書,再加上自己對 oam 社群核心初創成員過往開源經歷的「背調」,roy 逐漸建立了對 oam 的信任,開始了真正意義上的「跟隨」。

roy 對 oam 的貢獻是從翻譯 oam-spec 的英文文件開始,「當時我在 issue 裡看到有開發者提出了這樣的需求,在孫健波老師的牽頭下就著手開始翻譯。這個過程對我理解 oam 的幫助很大,因為我需要將說明從頭到尾完整地學習一遍」。

除了翻譯文件,roy 還介紹了很多除了寫**之外的社群貢獻方式,比如:

「oam 是乙個新專案,大家可以做出的貢獻很多。其中,**是一種重要的方式,但絕不是唯一的,你總能找到一種適合自己的方式參與到社群中來,而且一定會從給社群的貢獻中收到回饋」,roy 說。

roy 現在很大一部分精力都投在 oam 專案的維護上。支撐他可以這麼做的原因除了還在學校、時間比較自由之外,還有兩個非常強的動力:一是通過參與 oam 使自己的知識和技能不斷增長;二是看到自己參與的專案真的能幫到很多開發者,並且已經被越來越多的人用起來,可以收穫滿滿的成就感。

但作為一名在校研究生,一開始想要融入這樣乙個偏向工程實踐的社群並不容易。缺少雲原生領域在業界的實踐經驗、對一些成熟專案的知識盲區,對 roy 來說都是不小的挑戰:「曾經有前輩向我介紹乙個出現在生產環境中的問題,因為包含很多術語,一開始我根本不知道他在說什麼。直到他們給到具體的例子,甚至把**都貼出來才能看明白。對實踐場景的不熟悉,很容易導致我對功能需求的認識出現偏差。」

為了克服這些困難,roy 首先是 push 自己去學習和摸索相關的基礎知識。雲原生本來就是乙個比較新且綜合的領域,就拿 kubernetes 來說,涉及的知識點、功能點非常多,有著不低的學習門檻。roy 和我們分享了他利用開源社群進行學習的一些經驗:「首先我會通過開源社群去學習並整理出一些官方最權威的文件,同時會看一些成熟的基於 kubernetes 的開源專案。因為這些專案在落地過程中被不斷完善,逐漸形成了相對成熟的實踐參考,當我們遇到相似問題時是乙個非常有用的學習物件。」

向社群裡的前輩們請教,是 roy 補齊自己實踐短板最有效的方式:「在社群中,我有機會和許多技術能力很強的前輩交流,比如和阿里雲高階別的技術專家直接溝通,這對我來講是非常寶貴的機會」。他認為社群工作最重要的一點就是溝通交流,不要「閉門造車」。只有大家對同乙個問題有了相同的認知,並且對解決方案達成乙個初步的共識之後,再去動手寫**,才是社群裡協作解決問題的高效方式。

從實際參與社群到晉公升為 maintainer,roy 大概經歷了

四、五個月的時間,幫助 kubevela 完成了不少 feature 的具體實現,得到了專案創始團隊和現有 maintainer 的認可。通過這些工作,讓 roy 自己也對 oam 「以應用為中心」的理念有了更完整的理解。在他看來,oam 的出現及其目前的成績,是雲原生領域自然發展程序中的乙個必然:

「雲原生發展到現在,特別是 kubernetes 出現以來,可以說經歷了乙個野蠻生長的階段。它提供了高度可擴充套件的能力,讓大家可以把幾乎任意形式的軟體都整合到這個平台上來。這一方面促進了 kubernetes 和雲原生的發展、繁榮,但也使平台上的應用管理變得非常複雜。」

作為乙個一直關注雲原生和 kubernetes 領域的開發者,roy 認為過往的開源專案基本圍繞基礎設施層,而 oam 第乙個提出了「以應用為中心」的理念,並且在不久前通過 kubevela 的開源,將 oam 的模型和 kubernetes 執行時以更貼進 paas 平台使用者和 paas 平台構建人員的方式,進行了完整實現。

「成為 maintainer 對我來說是一種認可,也需要我承擔更多的責任。未來,除了更多地傾聽社群反饋、不斷增強 oam 及其子專案的能力之外,我也會向更多的開發者去普及 oam 和相關開源專案的理念,幫助使用者更快上手實踐 oam,就像孫健波等前輩做的那樣」,roy 表示。

談及對於 oam 專案未來的發展,roy 最希望的就是能夠推動「下一代的、完全開放的應用管理生態」的逐步成熟。他認為 oam 的發展,包括 kubevela 的開源,已經搭建好了乙個標準的雲原生應用平台框架,這個框架具備高度的可擴充套件性和靈活性,對使用者也非常友好,提供了不少開箱即用的應用管理能力,而更重要的是,這個框架還給了整個社群乙個「一鍵組裝」雲原生生態能力成為 paas 的最佳路徑,這樣乙個完全開放的、基於雲原生社群能力的應用管理生態,其實已經初見雛形。

這次聊天最後 roy 表達了這樣的期待:「希望有更多的人參與到 oam 社群尤其是 kubevela 專案中,一起去建設這個日趨繁榮的應用管理生態,讓越來越多的平台團隊能夠快速輕鬆的構建出強大而功能豐富的 paas,讓應用開發人員真正享受到雲原生帶來的美好體驗。」

「個體私慾與互助並非絕不相容」。

開發者必備及自己的感悟

從我接觸軟體也有一年半的時間了,從剛進大學時的懵懵懂懂到現在逐步了解軟體是幹什麼用的,這段期間成長了好多。下面跟各位朋友們分享一下自己的經歷與感悟 從小到大我就是乙個調皮搗蛋的孩子,學習也一直不理想,在高中快畢業那會兒,在這期間我有一段思想的轉變,這段時間我和大多數同學不一樣,選擇去上大學,而是選擇...

關於開發者證書,自己的理解

code signing identity 裡面太多證書,想清理怎麼辦在鑰匙串找到多餘的刪除掉即可.provisioning profile 裡面的描述檔案太多怎麼辦,關掉xcode.資料夾目錄 user 你的使用者名稱 library mobiledevice provisioning profi...

開發者,別讓任何人綁架你的工作節奏

編者 聽取使用者意見,但要自己掌控整個工作的節奏 目標和流程。作為乙個軟體開發者,你的工作內容遠遠不止寫 還有一些是你職責範圍內的事 但是在這些職責之上,最重要的是在了解目標使用者的基礎上設定目標。設定目標的意思是對工作的節奏和流程保持始終的掌控力,保證你的工作可以進行下去。這意味著要做風險預計,並...