为啥Github对编程和软件工程工作很重要?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥Github对编程和软件工程工作很重要?相关的知识,希望对你有一定的参考价值。
如题
GitHub是一个面向开源及私有软件项目的托管平台,确切地说是现阶段最大的项目托管平台。
很多很多著名的项目都托管在GitHub上,比如JQuery,RoR,python。为什么对于编程工作很重要呢,作为一个程序员,以编程为主,全球最大的项目库重不重要?最丰富的代码库重不重要。
所以Github确实很重要,不然微软也不会花75亿美金收购Github。
希望对你有用,望采纳。
参考技术A 从来没听说过这种说法。Github是一个开源平台,与你据说的“编程”、“软件工程”、“工作”没半毛钱关系。 参考技术B 上面有很多开源代码,你想要找一些代码的话上github找会很方便,然后工作上因为多人共同开发就需要代码托管平台,github就是这么一个代码托管平台本回答被提问者采纳 参考技术C
版本控制系统对开发很重要
github其中一个功能就是对于程序员来说,是最大的搜索引擎
1、GitHub 只支持 Git 格式的版本库托管,而不像其他开源项目托管平台还对CVS、SVN、Hg 等格式的版本库进行托管。GitHub 的哲学很简单,既然 Git 是最好的版本控制系统之一(对于很多喜欢 Git 和 GitHub 的人没有之一),没有必要为兼顾其他版本控制系统而牺牲 Git 某些独有特性。因此没有支持其他版本控制系统的历史负担,是 GitHub 成功的要素之一。
2、GitHub 对 Git 版本库提供了完整的协议支持,支持 HTTP 智能协议、Git-daemon、SSH 协议。
3、GitHub 提供在线编辑文件的功能,不熟悉 Git 的用户也可以直接通过浏览器修改版本库里的文件。
4、将社交网络引入项目托管平台是 GitHub 的创举。用户可以关注项目、关注其他用户进而了解项目和开发者动态。
5、项目的 Fork 和 Pull Request 构成 GitHub 最独具一格的工作模式。对提交代码的逐行评注及 Pull Request 构成 GitHub 特色的代码审核。
6、GitHub 通过私有版本库托管、面向企业的版本库托管和项目管理平台、人员招聘等付费服务获得了商业上的成功,这种成功使得 GitHub 不必以页面中嵌入广告的方式维持运营,最大的受益者还是用户。
7、GitHub 网站采用 Ruby on Rails 架构,在 Web 设计中运用了大量的JavaScript、AJAX、HTML5 等技术,支持对使用 Markdown 等标记语言的内容进行渲染和显示等。关注细节使得 GitHub 成为了项目托管领域的后起之秀。
为啥学习 Ruby 中的元编程和特征类很重要?
【中文标题】为啥学习 Ruby 中的元编程和特征类很重要?【英文标题】:Why is it important to learn about metaprogramming and eigenclasses in Ruby?为什么学习 Ruby 中的元编程和特征类很重要? 【发布时间】:2011-11-01 17:13:37 【问题描述】:我目前正在尝试使用 Ruby 和 Rails,并且我已经阅读了有关元编程的教程和书籍中的一些部分。许多人提到它是 Ruby 的重要组成部分,但他们并没有真正深入细节。就好像元编程是 Ruby 程序员的最后一道防线。来自 .NET 背景的我很难理解为什么它如此有用。
使用元编程有什么好处? 什么是特征类,它与单例有何不同? 在哪些情况下使用元编程很常见? 使用代码修改其他代码(尤其是不属于您自己的代码)的行为有哪些道德影响?【问题讨论】:
【参考方案1】:使用元编程有什么好处?
与没有它相比,您可以创建更具表现力的 API(例如,ActiveRecord 使用元编程来根据表的列名定义访问器方法,因此您可以编写 person.age
之类的东西,而不是 person.read_attribute("age")
之类的东西,其中 person
是一个活动记录对象,people
表有一个名为age
的列),您可以用比其他方式少得多的代码来完成一些事情。
什么是特征类,它与单例有何不同?
术语“eigenclass”和“singleton class”在 ruby 的上下文中可以互换使用。
在什么情况下使用元编程很常见?
在您有大量样板代码或创建 DSL 的情况下。
用例 1 示例:
而不是像这样编写样板代码:
class Foo
def bar
@bar
end
def bar=(b)
@bar = b
end
def baz
@baz
end
def baz=(b)
@baz = b
end
end
您可以使用元编程方法 attr_accessor
编写更短的代码,它会根据您提供的参数自动定义 getter 和 setter 方法的名称:
class Foo
attr_accessor :foo, :bar
end
如果标准库中尚不存在attr_accessor
,您可以自己定义它(让您了解 ruby 中的元编程是什么样的):
class Module
def attr_accessor(*variable_names)
variable_names.each do |variable_name|
define_method( variable_name ) do
instance_variable_get( "@# variable_name " )
end
define_method( "# variable_name =" ) do |value|
instance_variable_set( "@# variable_name ", value)
end
end
end
结束
使用代码修改其他代码的行为有哪些道德影响,尤其是不属于您自己的代码?
无。
【讨论】:
+1 我真的很喜欢attr_accessor
的例子,因为它展示了强大的元编程能力的重要好处:元编程使语言本身保持简单。 attr_accessor
很容易成为另一种语言的单独语言构造(相关:C# 中的属性等)。在 Ruby 中,它只是另一种方法。
好答案。虽然 eigenclass 和 singleton class 在 Ruby 中的含义是一样的,但后者现在是首选术语,正如 singleton_class
、singleton_methods
和 define_singleton_method
方法的存在所表明的那样。【参考方案2】:
元编程有时间和地点。我认为它在 Ruby 书籍中被大量提及,因为人们喜欢炫耀 Ruby 可以做其他语言做不到的事情。
元编程就像不知道“汉堡”或“面条汤”的日语单词,但知道“请这个”(“kore o kudasai”)的日语,并且能够指向菜单上的项目.它提供了更大的灵活性,但您需要更多的上下文才能准确了解正在执行的操作。
如果您正在创建 ActiveRecord,它允许您执行 find_by_foo
,那么元编程是有意义的。
如果您正在编写诸如zombie-chaser 之类的变异测试库,或者编写测试不同Ruby 实现的特征测试应用程序(例如Small Eigen Collider),那么元编程就很有意义。
但是,如果您正在编写一个应用程序,那么您通常不应该是元编程,而只是编程。例如,如果您在应用程序中使用 instance_variable_set
,这更像是代码异味,而不是您的熟练程度。
您可能想阅读的相关问题包括 https://***.com/questions/1236191/what-will-i-learn-from-metaprogramming-ruby 和 Ruby metaprogramming online tutorial 和 Metaprogramming how much is too much?。
我真的推荐“元编程 Ruby”这本书,因为它不仅教你元编程,还教你 Ruby 的工作原理。
【讨论】:
以上是关于为啥Github对编程和软件工程工作很重要?的主要内容,如果未能解决你的问题,请参考以下文章