`
pda158
  • 浏览: 193322 次
社区版块
存档分类
最新评论

看开源编程高手的11个技巧

阅读更多

如今,非常多的人都想涉足开源的,但不知道从什么地方入手。这里有几种方法可以帮帮忙,即使你缺乏信心,你但仍然能够让你挑起技术大梁。

 

开源软件改变了计算乃至整个世界,也许你也想为这样一件事做出贡献。但不幸的是,很多人认为参与这样的项目具有很高的门槛。我经常听到人们说,他们很乐意贡献但不能的原因有三个:

 

“我不是一个很优秀的程序员。”

“我没有太多的时间投入进去。”

“我不知道什么项目值得去努力。”

 

我从开源代码的新手中观察到最有害的想法是,想要做一名优秀的有贡献的开源编程人员必须具有极高的天赋,这是不正确的。当然,还有那些在开源世界谁被认为是摇滚明星的,他们可能确实是天才程序员。然而,我们中的绝大多数都不是,但我们仍然为改变世界做着自己的贡献。

 

开始听

在开源代码的一切涉都及到其他人。如果你想加入一个团队,这意味着了解社会,了解它是如何工作的。进入一个项目中,并说:“这是我认为这个项目应该做的 事”,这通常不视为一件好事。有些项目可能会喜欢这样的想法,但是如果项目已经运行了一段时间,那这种态度被接受的可能性就很小。听是要知道这个项目需要 以什么样加入方式为最佳。

 

1.加入邮件列表

对于许多项目,邮件列表都是关于项目开发沟通的主要渠道。在大型项目中,有许多邮件列表可供选择。例如,postgresql的项目有不少于12个面向用户的列表和6个开发人员的邮件列表。我建议主要从面向用户的列表和核心开发者的邮件列表开始听。

 

2.关注博客

由核心开发人员维护的博客往往会给出在将来的版本当中出现的一些信息,以及什么时候能够得到那些信息等等。

 

3.加入一个irc频道

很多开源项目都有专门的互联网中继聊天(irc)的渠道,开发人员和用户挂出问题以及讨论项目的进展等等。

 

入门工作

代码是任何开源项目的核心,但编写代码并不是帮助入门的唯一途径。代码以及周围代码系统的维护通常都容易被忽视,这些地方不仅能修正错误而且能够创新功能,可以从这些地方入手来参与一个项目。

 

4.诊断错误

诊断和筛选一个错误可以帮助开发人员节省更多的时间来找出问题的细节。如果用户反映到,“当我做x工作的时候软件不工作”,那么这时候你应该检查这个问题 的细节。是否这个问题是重复的,如果是你可不可以创建一组解决这类问题的步骤,将此类问题缩小。即使你不知道是什么原因造成的问题,你可以把问题的范围缩 小从而减少其他人员解决问题的时间。

 

5.关闭修复的错误

错误往往是固定在代码库的,清理这些东西可能非常的耗费时间,但是对整个项目非常有价值。检查项目发布的更改日志,看看错误是否是固定的,如果是可固定的,注意版本号并将其关闭。

 

处理代码

所有有经验的程序员都可以在整个项目的代码当中起到很大的作用,你不必认为只有天赋异禀的程序员才能对项目起到作用。每个项目都有自己的工作流程,所以在 提交代码之前询问清楚如何做。当你修改代码时,请确保你作为项目当中的一员,并保持你的代码风格和代码库的其他代码是相匹配。

 

6.测试一个测试版或发布一个候选版

任何项目运行在多个平台都可能遇到各种各样的兼容性问题。当测试版或候选版发布后,该项目负责人希望它会由很多不同的人在不同的平台进行测试,你可以负责这个工作来帮助项目能够顺利的完成。

 

7.修正bug

这通常都是代码工作者刚开始想从事的工作,这很简单:在interesting-sounding系统中找到错误并且尝试修复代码,并检查代码的放置是否合适。同时添加测试的套件来测试那些固定的代码。有些项目需要bug修正并且测试。

 

8.编写一个测试

大多数项目都有一个测试套件的测试代码,但很难想象一个测试套件不能附加给它更多的测试。使用类似于gcov或者c的测试工具来检测到未通过测试套件的源代码领域,然后添加一个测试套件来掩盖它。

 

9.无声的编译器警告

构建许多以c为基础的项目往往会在屏幕上出现奇怪的编译器警告标志。这些警告通常是没有问题的指向的,这时你应该检查是否该代码实际上有隐藏的错误。

 

10.添加评论

当你开发过的代码你感到疑惑时,别人也可能在同样的地方感到疑惑。此时你应该记录这样的代码同时提交一个补丁。

 

使用文档

文档在一个项目中往往是遭到冷遇的一部分。文档可能是以熟悉项目的角度来编写的,而不是以一个刚接触项目的角度。因此很多项目的试用文档并没有被重视起来。

 

11.创建一个示例

没有一个项目有太多的示例,无论是webapi,还是一个gui应用程序都没有使用的较好的示例,也没有可以更明显和迅速解释正确使用的程序的示例。对于 一个api或库,创建一个使用的示例程序,这甚至可以从你写的代码提取出来。因此我觉得创建一个使用的示例是非常必要的。

6
8
分享到:
评论

相关推荐

    Go语言精进之路:从新手到高手的编程思想、方法和技巧1.docx

    Go 语言精进之路:从新手到高手的编程思想、方法和技巧 Go 语言是一种开源的静态类型编程语言,由 Google 的 Robert Griesemer、Rob Pike 以及 Ken Thompson 于 2007 年创造。它被设计成为一种快速、高效且易于构建...

    编程高手箴言(梁肇新 著)

    《编程高手箴言》是梁肇新先生的一部著作,旨在分享编程领域的深入见解和实践经验。这本书不仅是技术的探讨,更是编程思维与方法论的精华集合。以下将围绕标题和描述,结合编程高手的成长路径,深入阐述一些重要的...

    成为编程高手的秘诀

    同时,在具备了一定的基础之后,选择一个或几个方向进行深入研究也非常重要。例如,如果你对前端开发感兴趣,可以专注于HTML、CSS和JavaScript等技术的学习;如果你更倾向于后端开发,则可以考虑学习Java、Python...

    编程高手箴言.rar

    总的来说,"编程高手箴言"这一资源为我们提供了一个宝贵的窗口,让我们得以窥见编程界的智慧结晶。无论你是初学者还是有一定经验的开发者,都可以从中受益匪浅,学习到如何更好地思考、编写和维护代码,以及如何在...

    编程高手箴言(编程学习必读)

    "编程高手箴言"就是这样一份宝贵的资源,它凝聚了前辈编程大师们的精辟见解和实战经验,旨在引导编程初学者少走弯路,快速提升编程技能。下面,我们将深入探讨这些箴言所涵盖的编程知识要点。 首先,编程的基础至关...

    编程高手箴言 chm文件

    11. **问题解决能力**:面对复杂问题,编程高手能够运用批判性思维,分解问题,寻找最合适的解决方案。 12. **文档编写**:清晰、准确的文档可以帮助他人理解代码,也是自身思维的整理过程,提高代码的可读性。 13...

    编程高手箴言 想成为编程高手的就下吧

    8. **学习与成长**:编程是一个不断学习的过程。书中鼓励开发者保持学习的热情,分享了学习新技术和跟踪行业动态的方法,以及如何通过开源项目和在线社区提升自己。 9. **跨平台开发**:随着云计算和移动互联网的...

    如何成为编程高手如何成为编程高手

    ### 如何成为编程高手 在IT领域,特别是编程方向,成为一名真正的高手是许多人的追求目标。本文将基于提供的部分信息,深入探讨如何成为一个优秀的程序员,包括掌握基础技能、熟悉平台特性、理解系统架构等多个方面...

    编程高手是怎样练成的.rar

    在编程的世界里,成为高手并非一日之功,它需要时间、耐心和持续的学习。"编程高手是怎样练成的...这个.chm文件很可能是这样一个全面的指南,它会引导你一步步攀登编程的高峰。记得,持之以恒,是成为编程高手的关键。

    编程高手经验

    "编程高手经验"这个主题,旨在为初学者提供一条清晰的学习路径,避免在编程学习过程中迷失方向。让我们深入探讨一下编程高手的必备知识和成长路径。 首先,理解编程的本质是至关重要的。编程是一种通过计算机语言来...

    模拟编程高手之路

    要成为一个模拟编程高手,你需要掌握以下关键知识点: 1. **编程语言基础**:无论是Python、Java还是C#,选择一种主流的编程语言作为基础至关重要。你需要熟悉基本语法、数据类型、控制结构以及函数的使用。 2. **...

    成为编程高手的八大奥秘

    在探讨“成为编程高手的八大奥秘”这一主题时,我们深入分析了文件中的关键信息,提炼出了一系列宝贵的编程学习与提升策略。以下是对这些奥秘的详细解读: ### 第一奥秘:深入理解结构与设计模式 在编程的世界里,...

    成为编程高手的二十二条军规

    选择一个专业方向深入研究是必要的,但同时也要保持对其他领域的兴趣。专业技能是立身之本,而广泛的兴趣能激发创造力,为解决复杂问题提供新的视角。 ### 3. 实践与理论结合 实践是检验真理的唯一标准。虽然理论...

    JAVA编程高手JAVA编程高手

    "JAVA编程高手"这个主题是针对那些希望深入理解和掌握Java编程技术的初学者,它旨在提供一个良好的起点,帮助新入行的开发者建立起扎实的Java基础。 在Java编程的入门阶段,理解基本概念至关重要。这包括了解Java的...

    怎样成为编程高手 txt

    对于初学者来说,如何从一名编程新手成长为真正的编程高手是很多人关心的问题。本文将从几个方面详细阐述这一过程,希望能帮助那些希望在编程道路上不断进步的朋友。 #### 1. 广泛学习,奠定基础 - **广泛涉猎**:...

Global site tag (gtag.js) - Google Analytics