人脸关键点及检测 开源项目
开源在过去30年中已经走了很长一段路,并且正在进入大多数现代文化的意识。 在考虑开放源代码项目时,人们将它们分为几种方式:治理结构,产品平台的类型,编程语言,实用程序,技术细节(用书面语言编写),行业赞助或完全独立的等等。
但是,什么真正定义了任何开源项目,使其成为一个与所有其他开源项目不同的独特实体? 我建议在任何开源项目中,框架,定义和区别于其他所有项目的三个关键要素是:代码,社区和品牌。
代码
代码为王。 代码是什么使一个产品做的事,这就是为什么在首位存在的开源项目:打造一些有用的东西。 技术专家感到兴奋的代码做什么,以及它是如何做的事情一样。 营销人员对产品如何解决客户的问题感到兴奋。 大多数人在寻找要使用的开源项目时都在寻找代码。
听起来很简单-那么为什么我们不仅仅基于其代码来定义一个开源项目呢? 正如任何从事软件开发工作的人都知道的那样,代码是日新月异的。 在不受企业主导项目的传统控制的开放源代码领域,“代码”可能很难遵循:开放源代码是无限可分叉的。 根据开放源代码倡议(OSI)许可将代码检入到公共存储库后,任何人和每个人都可以完全访问该代码,以出于自己的目的进行或修改。 一旦其他用户从您的项目中分叉代码并进行了一些修改,它就不再正式成为原始项目的一部分。
社区
如果代码是项目的“目标”,那么社区就是项目的“目标”,即实现目标的人。 项目的核心社区包括任何积极参与推动项目前进的人员,例如编写代码的工程师和提供反馈或要求特定修改的最终用户。 整个社区还包括不检查代码但提供支持的人员,例如治理/流程监督,公共关系/营销,培训或财务或就业支持。 社区的社会规范,礼节和风气有助于使项目与其他项目区分开。
尽管参加开源项目可能是某些人有酬工作的一部分(例如,被分配从事某项开源项目的公司雇员软件工程师,占其一定比例的工作),但大多数开源社区成员都是自愿参加的。与他们的薪水没有直接关系。 因此,成员往往会随着自己的兴趣或其他承诺日趋消亡,或者随着雇主改变策略而来来往往。 像代码一样,社区也在不断变化。
与可以计划让具有一定技能的员工来分配以从事特定工作的公司软件开发项目不同,参与开源社区的工作是不可预测的,并且通常超出项目的控制范围。 人格冲突产生,并可能导致高技能的供款人比离开有薪工作更容易离开社区。 但是,开放社区的好处可以从许多社区成员的热情和驱动力,成功的项目社区的长寿,同步性和代码方面的出色工作中看出。
品牌
品牌是开源项目之外的世界如何了解该项目的方式。 当个人或公司决定使用或投资哪个项目时,品牌可以帮助他们区分提供类似功能的项目。 当然,他们会考虑其他细节,但是想起来容易得多:“我想用黄色的大象支持Hadoop吗?” 而不是“我要支持Cloudera的CDH还是Hortonworks数据平台,还是新发布的ODP?”
“品牌”包括许多内容:项目的正式名称,项目或产品的徽标,甚至项目网站和产品UI的外观。 某些品牌组件尤其是合法商标:尽管包括一致使用的商标,但商标最牢固,通常包括官方软件产品名称和徽标。
与代码和社区不同,项目的品牌不会改变或短暂。 未经法律许可,不得伪造商标,即使社区成员数量波动,项目品牌也可以保持一致。 在许多方面,品牌和商标是项目中最容易控制和维护的元素。 但是,作为定义项目独特性的重要工具,适当的商标用法可能会被忽略(或被项目内部的社区所忽视)。 既然任何人都可以编写代码,并且社区成员来来往往,那么项目的品牌和商标对于维持项目的寿命和独立性以及继续吸引新的项目贡献者至关重要。
鹅毛笔
本文是由Jason Hibbets协调的Apache Quill专栏的一部分。 通过open@opensource.com与我们联系,在Apache Software Foundation的项目内分享您的成功案例和开源更新 。
翻译自: https://opensource.com/life/15/2/3-key-elements-every-open-source-project
人脸关键点及检测 开源项目