为啥Github对编程和软件工程工作很重要?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥Github对编程和软件工程工作很重要?相关的知识,希望对你有一定的参考价值。

如题

GitHub是一个面向开源及私有软件项目的托管平台,确切地说是现阶段最大的项目托管平台。

很多很多著名的项目都托管在GitHub上,比如JQuery,RoR,python。为什么对于编程工作很重要呢,作为一个程序员,以编程为主,全球最大的项目库重不重要?最丰富的代码库重不重要。

所以Github确实很重要,不然微软也不会花75亿美金收购Github。

希望对你有用,望采纳。

参考技术A 从来没听说过这种说法。
Github是一个开源平台,与你据说的“编程”、“软件工程”、“工作”没半毛钱关系。
参考技术B 上面有很多开源代码,你想要找一些代码的话上github找会很方便,然后工作上因为多人共同开发就需要代码托管平台,github就是这么一个代码托管平台本回答被提问者采纳 参考技术C

    版本控制系统对开发很重要

    github其中一个功能就是对于程序员来说,是最大的搜索引擎

参考技术D GitHub 之所以如此受欢迎,它的优势是不容忽视的。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_classsingleton_methodsdefine_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对编程和软件工程工作很重要?的主要内容,如果未能解决你的问题,请参考以下文章

ManageEngine:为什么IT服务台对您的业务很重要?

分享我编程工作经历及对软件开发前景的看法

为啥人工智能,软件要比硬件重要呢?

软件工程个人总结

软件测试相关面经

软工学期总结