可视化改变
版本控制和变更可视化与软件开发工作紧密相连。如今,任何有能力的程序员都不会考虑在讨论某个代码的新版本时,不使用“差异”(diff)来显示将要改变的内容。
这种期望是不均匀分布的未来的另一部分,大多数其他知识工作者是无法达到的。这是一种基本的数字素养,与组织中的每个人都相关,但还没有普及。它传播的障碍既有文化方面的(“我们以前从未这样做过”),也有技术方面的(“我的工作产品不是文本文件”)。
软件开发的数字伪影仍然是包含Hark返回打击卡的文本行的文件。我们仍然以按线为基础可视化这些文件的更改。编译器和IDE在模块和方法方面了解代码,但版本控制系统不分享该理解。归因于模块x或方法y的变化,并随着时间的推移观察这种变化,是可以在理论上是机器支持的认知咕噜作曲,但实际上不是。
这种阻抗不匹配存在深刻的历史原因,短期内不会得到解决。与此同时,有两种方法可以解决这个问题,GitHub正在寻求这两种方法。
一种方法是将丰富的文档转换为文本文件。根据Ben Balter的说法,这是通过Github进行的政府机构进行的共同做法。他创建了一种工具,可以将广泛使用的单词文档转换为在Markdown中,是Github上使用的纯文本格式以及许多其他环境。此替代方法仍然是理想的两个原因。通过格式转换器的循环文档是危险的 - 并且标记不是标准格式。有许多变种;事实上,GitHub上使用的那个称为Github调味的破平。
理想情况下,GitHub会理解富格式,而且在这方面已经取得了进展。很长时间以来,我们都可以用视觉的方式来比较改变后的图像。一年前,“散文差异”支持内联颜色编码突出显示Markdown文件的HTML呈现之间的差异。这种方法还有助于使CSV数据和HTML表等表格格式的差异更清晰,但没有充分利用对文档结构的深刻认识。
这种意识现在可以用于一种格式:地理学。它以JSON格式编码地理空间信息,即Github不仅使用作为数据的一个渲染的地图,而且还使用滑块显示地图的修订历史,以滚动通过版本。扩展到Word文档,PDF文件和电子表格的方法将使GitHub风格的协作对工作产品以这些格式表示的人更加吸引力。
GitHub作为一个平台
GitHub不可能为其数百万托管项目提供所有服务,但它可以让其他人在其上构建并与之集成。使用GitHub api来围绕现有存储库包装项目管理功能的工具包括Waffle.io,HuBoard,ZenHub.
像Travis和Jenkins这样的连续集成系统可以使用状态API报告与提交相关的测试结果。此外,CRUD API使程序能够在存储库中创建,更新或删除文件。BEN BATHER已经使用它,例如,在从HTML窗体中输入的应用程序中,并将其附加到GitHub存储库中的CSV文件。
当然,GitHub并不是一个适合所有人的平台。O ' reilly媒体的阿特拉斯是一个托管系统,用于以多种格式出版图书,它直接构建在Git之上。但对于许多非传统的Git使用来说,GitHub的界面——以及对它的扩展——将是一个强大的组合。
合作文化
与Git一样,GitHub支持多种风格的协作。它鼓励关键的最佳做法,比如从可随意使用的分支机构发出拉取请求,但不试图立法限制其他机构。考虑标签,它是分配给问题和拉请求的关键字。(其他社会系统可能会调用这些标记,但在Git中,标记识别存储库历史中的特定点。)没有什么要求您使用标签,但如果您这样做了——如果您的团队采用了深思熟虑和一致的词汇表——您就启用了过滤视图,以帮助每个人理解项目。
制作有用的提交消息是成为有帮助的合作者的另一种方法。程序员们拿提交消息开玩笑,比如“我改了一些东西”,多年来,他们已经学会了如何以及为什么更有效地叙述他们的工作。然而,大多数其他知识型员工并不习惯于将小的工作单元形式化,将它们贡献到广泛共享的空间中,并以对他人有意义的方式描述它们。
这些实践,基于一个共同的理解,即所有共享的工件都应该被版本化,所有的变更都应该被仔细地控制和文档化,不应该被限制在软件开发中。我们都在做分散的工作,这些工作必须以谨慎、关注细节和团队意识进行协调。Git让程序员能够做到这一点。GitHub让我们其他人也能做到这一点。
这个故事,“GitHub for the rest of us”最初是由信息世界 .