」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > Hacktoberfest 週深入探討程式碼貢獻

Hacktoberfest 週深入探討程式碼貢獻

發佈於2024-11-01
瀏覽:315

Hacktoberfest Week Diving Deeper into Code Contributions

大家好!今年的 Hacktoberfest 怎麼樣?就我個人而言,到目前為止我真的很享受。我們現在已經進入 10 月的第二週,這意味著是時候提出完成挑戰所需的四個拉取請求 (PR) 了。本週,我決定進一步推動自己,為專案的程式碼庫做出貢獻,而不是像第一週那樣只專注於文件。

第一周回顧

在 Hacktoberfest 的第一個 PR 中,我致力於改進專案文件。作為一個初學者,我想透過較小的、可管理的任務來輕鬆進入這個過程。然而,在第二週,我決定做一些更具技術性的事情:為 GitExplorer 專案做出貢獻。

項目概述:GitExplorer

GitExplorer 是一個 Web 應用程序,可簡化頂級 GitHub 儲存庫的發現和探索。它允許用戶根據程式語言、主題和其他排序標準來過濾儲存庫。雖然 UI 仍在開發中,但該計畫為貢獻者(尤其是初學者)提供了寶貴的學習機會。存儲庫中的許多問題都被標記為“好第一個問題”,使其成為一個很好的起點。

為了做出貢獻,我選擇實作一個導航功能,以增強瀏覽儲存庫時的使用者體驗。

確定問題

該專案最初有一個用於導航到儲存庫下一頁的按鈕,但它缺乏完整的分頁系統。使用者無法輕鬆地在頁面之間來回導航或跳到特定頁面,這帶來了可用性問題。我注意到了這個限制,並要求專案維護人員將問題分配給我。

在我從事這個專案期間,突出的一個方面(但不是很好)是程式碼庫的結構方式。該專案將所有邏輯寫入單一 script.js 檔案中,隨著專案的成長,該檔案可能會變得難以維護。雖然我不想在此 PR 中進行重大更改(因為它僅關注分頁按鈕),但我計劃建議在未來的問題中重構程式碼結構。

實際上,在此之前,還有另一個開發人員創建了一個導航到下一頁的按鈕,但是當他們想要來回導航以及特定頁面時,這對用戶體驗不好。由於這個原因,我評論要求維護者為我分配這個問題。
當我從事這個專案時,有一點我不喜歡它。這是維護者建立程式碼庫的方式,因為他將每個邏輯僅寫入 1 個 script.js 檔案。但是,我不想對此問題進行太多修復,因為它只要求分頁按鈕。我將創建一個新問題,要求稍後重新建立程式碼庫。

新功能:增強分頁

現有功能只有一個按鈕可以在頁面之間導航,每頁顯示 10 個儲存庫。我的目標是實現一個更用戶友好的分頁系統,其中包含「上一頁」、「下一頁」和編號頁面按鈕。這將允許用戶直接跳到他們感興趣的頁面,使導航體驗更加流暢。

執行

GitHub API 約束

在實現分頁時,我遇到了 GitHub API 的限制,它將結果限制為 1,000 個專案。如果搜尋產生超過 1,000 個儲存庫,則嘗試超出此限制會導致錯誤,並傳回未定義的資料。鑑於設計每頁顯示 10 個儲存庫,我將頁數限制為 100 以避免遇到此問題。

代碼更改

  • 我在 script.js 中引入了一個新的

    部分用於分頁。這使我能夠添加一些 CSS 樣式來改善按鈕美觀和使用者體驗。
  • 分頁的核心邏輯被封裝在兩個新函數中:

    • createButton()
    • renderPagination() 這些函數會根據可用頁面動態生成分頁按鈕並套用樣式來停用目前頁面按鈕,防止使用者意外地重新點擊它。我還為按鈕添加了懸停效果,以獲得更精美的外觀。
  • CSS 改進

    對於分頁設計,我確保當前頁面按鈕已停用,並以不同的樣式來指示其狀態。其他頁面按鈕可獲得懸停效果,以增強互動性並改善使用者體驗。

    結論

    我對 Hacktoberfest 第二週的貢獻就到此結束。我現在正在尋找下周可以貢獻的另一個存儲庫。理想情況下,我希望找到一個更具挑戰性的項目,這樣我就可以繼續鞭策自己並逐步提高我的技能。

    感謝您的閱讀,我期待分享更多有關我的 Hacktoberfest 之旅的資訊!

版本聲明 本文轉載於:https://dev.to/anhchienvu/hacktoberfest-week-2-diving-deeper-into-code-contributions-12g1?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>
  • 在Python中如何創建動態變量?
    在Python中如何創建動態變量?
    在Python 中,動態創建變量的功能可以是一種強大的工具,尤其是在使用複雜的數據結構或算法時,Dynamic Variable Creation的動態變量創建。 Python提供了幾種創造性的方法來實現這一目標。 利用dictionaries 一種有效的方法是利用字典。字典允許您動態創建密鑰並...
    程式設計 發佈於2025-07-12
  • 可以在純CS中將多個粘性元素彼此堆疊在一起嗎?
    可以在純CS中將多個粘性元素彼此堆疊在一起嗎?
    [2这里: https://webthemez.com/demo/sticky-multi-header-scroll/index.html </main> <section> { display:grid; grid-template-...
    程式設計 發佈於2025-07-12
  • 大批
    大批
    [2 數組是對象,因此它們在JS中也具有方法。 切片(開始):在新數組中提取部分數組,而無需突變原始數組。 令ARR = ['a','b','c','d','e']; // USECASE:提取直到索引作...
    程式設計 發佈於2025-07-12
  • Python高效去除文本中HTML標籤方法
    Python高效去除文本中HTML標籤方法
    在Python中剝離HTML標籤,以獲取原始的文本表示 僅通過Python的MlStripper 來簡化剝離過程,Python Standard庫提供了一個專門的功能,MLSTREPERE,MLSTREPERIPLE,MLSTREPERE,MLSTREPERIPE,MLSTREPERCE,MLST...
    程式設計 發佈於2025-07-12
  • 如何干淨地刪除匿名JavaScript事件處理程序?
    如何干淨地刪除匿名JavaScript事件處理程序?
    刪除匿名事件偵聽器將匿名事件偵聽器添加到元素中會提供靈活性和簡單性,但是當要刪除它們時,可以構成挑戰,而無需替換元素本身就可以替換一個問題。 element? element.addeventlistener(event,function(){/在這里工作/},false); 要解決此問題,請考...
    程式設計 發佈於2025-07-12
  • JavaScript計算兩個日期之間天數的方法
    JavaScript計算兩個日期之間天數的方法
    How to Calculate the Difference Between Dates in JavascriptAs you attempt to determine the difference between two dates in Javascript, consider this s...
    程式設計 發佈於2025-07-12
  • 編譯器報錯“usr/bin/ld: cannot find -l”解決方法
    編譯器報錯“usr/bin/ld: cannot find -l”解決方法
    錯誤:“ usr/bin/ld:找不到-l “ 此錯誤表明鏈接器在鏈接您的可執行文件時無法找到指定的庫。為了解決此問題,我們將深入研究如何指定庫路徑並將鏈接引導到正確位置的詳細信息。 添加庫搜索路徑的一個可能的原因是,此錯誤是您的makefile中缺少庫搜索路徑。要解決它,您可以在鏈接器命令中添...
    程式設計 發佈於2025-07-12
  • 如何有效地轉換PHP中的時區?
    如何有效地轉換PHP中的時區?
    在PHP 利用dateTime對象和functions DateTime對象及其相應的功能別名為時區轉換提供方便的方法。例如: //定義用戶的時區 date_default_timezone_set('歐洲/倫敦'); //創建DateTime對象 $ dateTime = ne...
    程式設計 發佈於2025-07-12
  • 版本5.6.5之前,使用current_timestamp與時間戳列的current_timestamp與時間戳列有什麼限制?
    版本5.6.5之前,使用current_timestamp與時間戳列的current_timestamp與時間戳列有什麼限制?
    在時間戳列上使用current_timestamp或MySQL版本中的current_timestamp或在5.6.5 此限制源於遺留實現的關注,這些限制需要對當前的_timestamp功能進行特定的實現。 創建表`foo`( `Productid` int(10)unsigned not ...
    程式設計 發佈於2025-07-12
  • 如何同步迭代並從PHP中的兩個等級陣列打印值?
    如何同步迭代並從PHP中的兩個等級陣列打印值?
    同步的迭代和打印值來自相同大小的兩個數組使用兩個數組相等大小的selectbox時,一個包含country代碼的數組,另一個包含鄉村代碼,另一個包含其相應名稱的數組,可能會因不當提供了exply for for for the uncore for the forsion for for ytry...
    程式設計 發佈於2025-07-12
  • Python環境變量的訪問與管理方法
    Python環境變量的訪問與管理方法
    Accessing Environment Variables in PythonTo access environment variables in Python, utilize the os.environ object, which represents a mapping of envir...
    程式設計 發佈於2025-07-12
  • 如何避免Go語言切片時的內存洩漏?
    如何避免Go語言切片時的內存洩漏?
    ,a [j:] ...雖然通常有效,但如果使用指針,可能會導致內存洩漏。這是因為原始的備份陣列保持完整,這意味著新切片外部指針引用的任何對象仍然可能佔據內存。 copy(a [i:] 對於k,n:= len(a)-j i,len(a); k
    程式設計 發佈於2025-07-12
  • Java中Lambda表達式為何需要“final”或“有效final”變量?
    Java中Lambda表達式為何需要“final”或“有效final”變量?
    Lambda Expressions Require "Final" or "Effectively Final" VariablesThe error message "Variable used in lambda expression shou...
    程式設計 發佈於2025-07-12
  • 如何有效地選擇熊貓數據框中的列?
    如何有效地選擇熊貓數據框中的列?
    在處理數據操作任務時,在Pandas DataFrames 中選擇列時,選擇特定列的必要條件是必要的。在Pandas中,選擇列的各種選項。 選項1:使用列名 如果已知列索引,請使用ILOC函數選擇它們。請注意,python索引基於零。 df1 = df.iloc [:,0:2]#使用索引0和1 ...
    程式設計 發佈於2025-07-12
  • 為什麼我在Silverlight Linq查詢中獲得“無法找到查詢模式的實現”錯誤?
    為什麼我在Silverlight Linq查詢中獲得“無法找到查詢模式的實現”錯誤?
    查詢模式實現缺失:解決“無法找到”錯誤在銀光應用程序中,嘗試使用LINQ建立錯誤的數據庫連接的嘗試,無法找到以查詢模式的實現。 ”當省略LINQ名稱空間或查詢類型缺少IEnumerable 實現時,通常會發生此錯誤。 解決問題來驗證該類型的質量是至關重要的。在此特定實例中,tblpersoon可能...
    程式設計 發佈於2025-07-12

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3