嗨!我叫 Peter,如果你不認識我,我是電腦科學專業的學生,目前正在學習 David Humphrey 教授的 2024 年開源主題課程。
自 2024 年 9 月以來,我一直致力於在開源社群中建立自己的影響力。如果你想跟隨我的旅程,可以在 GitHub 上找到我:
全端開發人員 |遊戲與人工智慧愛好者 -彼得丹萬
第一步:了解我正在做什麼。 expressjs.com 是express 的官方文件網站,express 是最受歡迎的 Node.js Web 框架之一。雖然從他們設計精美的網站上可以很快掌握這一點,但旅程才剛開始。
Express 是一個快速、無主見、簡約的 Node.js Web 框架,為 Web 和行動應用程式提供了一組強大的功能。
熟悉專案後,我尋找了一個可以解決的問題。我找到了這個:
以下連結已損壞 _includes/header/header-id.html
_includes/header/header-th.html
建議更改為:發布更改日誌缺少頁面導致 UZ 語言控制台錯誤: /css/langs/uz.css
建議新增此頁面。
我選擇這個問題是因為它涉及 HTML 和 CSS - 我熟悉且熟悉的技術。然而,看起來簡單的東西實際上教會了我關於開源開發的重要一課:
即使是看起來熟悉的任務也可能涉及不熟悉的領域。
儲存庫使用了我以前從未接觸過的技術,這才是真正學習的開始。我花了大約一個小時才決定是否嘗試這個問題——回想起來可能太久了。我很猶豫,因為該專案使用了 Ruby,這對我來說是全新的。
劇透警告:設定 Ruby 是...一次冒險。
設定本地開發環境通常是開源貢獻中最具教育意義的部分之一。
透過嘗試在本地運行expressjs.com,我了解了一些關於 Ruby 和 Jekyll 的知識。
以下是我的旅程:
最初的困惑:我先直接在 Windows 上安裝 Ruby。雖然它有效,但並不理想,因為我安裝的版本與專案中使用的版本不同而出現問題。 Windows 上的版本管理並不有趣。因此,我卸載了 Windows 上安裝的 Ruby 及其其他依賴項,並尋找替代解決方案。
WSL 發現:我的研究使我得出的結論是,我應該在Windows Subsystem for Linux (WSL) 上運行Ruby,因為它提供了更好的開發環境並可以存取強大的Ruby 版本管理器(RVM),它使我能夠處理使用不同版本Ruby 的專案。對我來說,安裝 RVM 的感覺非常相似,因為我使用 nvm-windows 來允許我在不同的節點版本之間切換。
版本管理學習曲線:我再次了解了 RVM 以及它與 Node.js 的 nvm 的相似之處。這教會了我在開發環境中版本管理的重要性。
以下是我用來準備開發環境的實際指令:
## 1. Installing RVM (Ruby Version Manager) # First, import GPG keys needed to verify RVM installation gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB # Download and install RVM \curl -sSL https://get.rvm.io | bash -s stable # Verify RVM is installed and get its path which rvm # Load RVM into your current shell session source /home/peter/.rvm/scripts/rvm ## 2. Installing Ruby # Install Ruby version 3.3.5 (latest stable as of early 2024) rvm install 3.3.5 # Set 3.3.5 as your default Ruby version rvm use 3.3.5 # Verify RVM and Ruby installations rvm -v ruby -v ## 3. Setting up Jekyll # Install Jekyll and Bundler gems gem install bundler jekyll # Install project dependencies from Gemfile (must be within the target directory with the Gemfile) bundle install # Start the Jekyll server with live reload and external access # --host 0.0.0.0 allows access from other devices on your network # --livereload automatically refreshes your browser when files change bundle exec jekyll serve --host 0.0.0.0 --livereload
配置好我的開發環境後,我就可以開始解決手邊的問題,即簡單地更新
包含指向英文版連結的損壞連結的錨標記(因為英文版連結並未損壞)。
這是整個貢獻中最簡單的部分。
我還確保查看一些日誌以查看是否有任何需要修復的錯誤。我建議添加另一個檔案 css/id.css,它遵循相同的
已新增的文件的編碼格式,因為我有一個可以解決某些錯誤日誌的暗示。
expressjs.com 的維護者之一 Chris Del,提供了非常即時的回饋,表明這是要做的事情(謝謝 Chris!)。
因此,我也將此變更新增至我的拉取請求。
話雖如此,我所做的更改現在正在等待合併到expressjs.com的主分支中。
後續也特別討論了expressjs.com網站的標準。即:
使用者應該被重定向到有效的英文頁面而不是正確語言的損壞連結嗎?
這不是由我決定,但我想參與討論。您可以在這裡關注討論。
最初的一個簡單的 HTML/CSS 修復變成了一次旅程,教會了我有關開源開發的寶貴經驗:
走出舒適圈:雖然我選擇了一個涉及熟悉技術(HTML/CSS)的問題,但我最終學習了一個全新的技術堆疊(Ruby/Jekyll)。這告訴我,當我們願意應付不熟悉的事情時,成長就會發生。
技術發展:設定開發環境、管理版本和使用新工具都是至關重要的技能。每一個挑戰都會讓下一個挑戰變得更容易實現。
社群參與:透過諸如語言重定向討論之類的討論,我了解到開源不僅僅是程式碼 - 它是關於參與影響專案決策的有意義的討論。
展望未來,我計劃透過以下方式進行改進:
最重要的是,我了解到,成為一名高效的開源開發人員並不是要了解一切,而是要願意學習任何東西。每一次貢獻,無論多小,都是一個成長的機會,並對我們關心的專案產生正面影響。
如果您正在考慮參與開源,請記住:從小事做起,保持好奇心,不要害怕邊學習邊學習。社區隨時幫助您成長。
以上是為expressjs做貢獻的詳細內容。更多資訊請關注PHP中文網其他相關文章!