”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > Hacktoberfest 周深入探讨代码贡献

Hacktoberfest 周深入探讨代码贡献

发布于2024-11-01
浏览:791

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中的metaclasses是什么? Metaclasses负责在Python中创建类对象。就像类创建实例一样,元类也创建类。他们提供了对类创建过程的控制层,允许自定义类行为和属性。在Python中理解类作为对象的概念,类是描述用于创建新实例或对象的蓝图的对象。这意味着类本身是使用类关...
    编程 发布于2025-05-14
  • 如何使用替换指令在GO MOD中解析模块路径差异?
    如何使用替换指令在GO MOD中解析模块路径差异?
    在使用GO MOD时,在GO MOD 中克服模块路径差异时,可能会遇到冲突,其中3个Party Package将另一个PAXPANCE带有导入式套件之间的另一个软件包,并在导入式套件之间导入另一个软件包。如回声消息所证明的那样: go.etcd.io/bbolt [&&&&&&&&&&&&&&&&...
    编程 发布于2025-05-14
  • 解决MySQL插入Emoji时出现的\\"字符串值错误\\"异常
    解决MySQL插入Emoji时出现的\\"字符串值错误\\"异常
    Resolving Incorrect String Value Exception When Inserting EmojiWhen attempting to insert a string containing emoji characters into a MySQL database us...
    编程 发布于2025-05-14
  • 如何使用“ JSON”软件包解析JSON阵列?
    如何使用“ JSON”软件包解析JSON阵列?
    parsing JSON与JSON软件包 QUALDALS:考虑以下go代码:字符串 } func main(){ datajson:=`[“ 1”,“ 2”,“ 3”]`` arr:= jsontype {} 摘要:= = json.unmarshal([] byte(...
    编程 发布于2025-05-14
  • 如何使用Python理解有效地创建字典?
    如何使用Python理解有效地创建字典?
    在python中,词典综合提供了一种生成新词典的简洁方法。尽管它们与列表综合相似,但存在一些显着差异。与问题所暗示的不同,您无法为钥匙创建字典理解。您必须明确指定键和值。 For example:d = {n: n**2 for n in range(5)}This creates a dicti...
    编程 发布于2025-05-14
  • `console.log`显示修改后对象值异常的原因
    `console.log`显示修改后对象值异常的原因
    foo = [{id:1},{id:2},{id:3},{id:4},{id:id:5},],]; console.log('foo1',foo,foo.length); foo.splice(2,1); console.log('foo2', foo, foo....
    编程 发布于2025-05-14
  • 如何在GO编译器中自定义编译优化?
    如何在GO编译器中自定义编译优化?
    在GO编译器中自定义编译优化 GO中的默认编译过程遵循特定的优化策略。 However, users may need to adjust these optimizations for specific requirements.Optimization Control in Go Compi...
    编程 发布于2025-05-14
  • 如何克服PHP的功能重新定义限制?
    如何克服PHP的功能重新定义限制?
    克服PHP的函数重新定义限制 但是,PHP工具腰带中有一个隐藏的宝石:runkit扩展。它使您能够灵活地重新定义函数。 runkit_function_renction_rename() runkit_function_redefine() //重新定义'this'以返回“新和改...
    编程 发布于2025-05-14
  • Java是否允许多种返回类型:仔细研究通用方法?
    Java是否允许多种返回类型:仔细研究通用方法?
    在Java中的多个返回类型:一种误解类型:在Java编程中揭示,在Java编程中,Peculiar方法签名可能会出现,可能会出现,使开发人员陷入困境,使开发人员陷入困境。 getResult(string s); ,其中foo是自定义类。该方法声明似乎拥有两种返回类型:列表和E。但这确实是如此吗...
    编程 发布于2025-05-14
  • HTML格式标签
    HTML格式标签
    HTML 格式化元素 **HTML Formatting is a process of formatting text for better look and feel. HTML provides us ability to format text without us...
    编程 发布于2025-05-14
  • CSS可以根据任何属性值来定位HTML元素吗?
    CSS可以根据任何属性值来定位HTML元素吗?
    靶向html元素,在CSS 中使用任何属性值,在CSS中,可以基于特定属性(如下所示)基于特定属性的基于特定属性的emants目标元素: 字体家庭:康斯拉斯(Consolas); } 但是,出现一个常见的问题:元素可以根据任何属性值而定位吗?本文探讨了此主题。的目标元素有任何任何属性值,属...
    编程 发布于2025-05-14
  • CSS强类型语言解析
    CSS强类型语言解析
    您可以通过其强度或弱输入的方式对编程语言进行分类的方式之一。在这里,“键入”意味着是否在编译时已知变量。一个例子是一个场景,将整数(1)添加到包含整数(“ 1”)的字符串: result = 1 "1";包含整数的字符串可能是由带有许多运动部件的复杂逻辑套件无意间生成的。它也可以是故意从单个真理...
    编程 发布于2025-05-14
  • 同实例无需转储复制MySQL数据库方法
    同实例无需转储复制MySQL数据库方法
    在同一实例上复制一个MySQL数据库而无需转储在同一mySQL实例上复制数据库,而无需创建InterMediate sqql script。以下方法为传统的转储和IMPORT过程提供了更简单的替代方法。 直接管道数据 MySQL手动概述了一种允许将mysqldump直接输出到MySQL clie...
    编程 发布于2025-05-14
  • Android如何向PHP服务器发送POST数据?
    Android如何向PHP服务器发送POST数据?
    在android apache httpclient(已弃用) httpclient httpclient = new defaulthttpclient(); httppost httppost = new httppost(“ http://www.yoursite.com/script.p...
    编程 发布于2025-05-14
  • 编译器报错“usr/bin/ld: cannot find -l”解决方法
    编译器报错“usr/bin/ld: cannot find -l”解决方法
    错误:“ usr/bin/ld:找不到-l “ 此错误表明链接器在链接您的可执行文件时无法找到指定的库。为了解决此问题,我们将深入研究如何指定库路径并将链接引导到正确位置的详细信息。添加库搜索路径的一个可能的原因是,此错误是您的makefile中缺少库搜索路径。要解决它,您可以在链接器命令中添加...
    编程 发布于2025-05-14

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3