开源个性化内容推荐引擎

团队合作自然会引起意见分歧,这是一件好事。 各种各样的意见有助于确保讨论所有想法,确定问题区域,并且手头任务的重点放在正确的位置。

但是,开源世界的情况有些不同。 开源贡献者充满热情-他们经常尽自己所能,因此通常将自己的性格根深蒂固。 这也发生在外部世界中,但是有一种趋势是,贡献者会在来之不易的空闲时间里更加热衷于他们正在做的事情。

在一家开源公司工作会增加自己的困惑:尝试平衡驱动力以完成管理层要求的工作以及项目前进的方向。 这可能是一个充满挑战的环境,尤其是如果公司是项目的贡献者,而不一定是所有者。

在本文中,我将研究做出贡献的人们的不同特征,他们的目标是什么,以及在阅读所有关于原始和明显完美的拉动要求的评论时如何平衡他们。 人们可能具有这些特征中的几个特征的组合,但通常围绕一个特征。 诀窍是找出人员的目标,并确定其是否符合项目目标。

泛型专家

此特征与项目在任何给定情况下的可用性有关。

一个genericist确保该项目是在任何情况下使用。 这通常伴随着范围的非常广阔的视野。 对代码的任何更改通常都会用变量替换字符串,添加抽象层或将其转换为插件,所有这些都是为了使项目更具可定制性和通用性。 尽管这种方法没有什么问题(相信我,我是一名泛型专家),但它通常会导致更复杂的代码,需要花费更长的时间编写且更难实现。

另一方面, 专家负责特定的用例。 他们通常会指出代码不需要处理这些用例,并且经常会在变量中进行硬编码并将内容附加到现有代码上,而不会使其在其他情况下可用。 专家会精通做好特定任务,并且这样做通常会导致更优化的解决方案。

在考虑评论和请求请求时平衡这种特性并不容易。 我的经验表明,人们通常会写得更具体,评论也更笼统。 人们很少会说“此代码太通用”,但他们可能会说它太具体了。 底线:考虑项目的未来。 通用主义者希望该工具成为瑞士军刀。 专家希望它是一把手术刀。

完美主义者/概念主义者

此特征与项目如何遵守标准和实践有关。 承担任何任务并将其交给一群人,您会得到一些以完美的标准完成任务的人,其他人将其置于中间,而另一组人以您从未想过的方式完成任务。

完美主义者将对语法进行质疑。 他们会告诉您,这只是做某事的唯一方法。 他们会告诉您,如果您想做Right™,那么您将按照自己的方式做。 老实说,他们通常是正确的。 他们还将是查看您的代码并查找性能问题的人员。 您只运行了3次(大声喊叫)的循环仍将被评论如何使它们加快6个循环。 完美主义者希望您的代码变得美丽。 他们喜欢优雅,高度优化,符合标准的代码。

另一方面, 概念主义者更热衷于将适用于代码库的内容。 在“使之工作,使其良好,使其快速”的生命周期中,他们正处于“使之工作”阶段,并且不愿意让它坚持完美主义者的内置短绒棉的每一个抱怨提供。 当然,把重点放在使某些东西起作用而不是使某些东西变得简洁上往往会使概念主义者击败完美主义者。

平衡此特征也可能很棘手-这取决于概念主义者的建议。 有时,时间可能是一个很大的因素,允许不符合完美主义者标准的代码不一定是一件坏事。 有时需要快速修复。 有时,概念验证代码也是必须的,并且没有时间或资源来使解决方案完美。 完美主义者还可能使概念主义者感到疯狂,因为他们对完美编码准则的坚持似乎已成为障碍。 但是,当涉及到可读性时,完美主义者的代码(满分100)中有99倍更容易阅读和维护。 底线:考虑时间限制,以及您是否有资源在以后做得更好。 完美主义者需要尽可能最锐利,最直的刀刃。 概念主义者不害怕使用看起来像小刀的东西来完成工作。

冒险家/传统主义者

在解决问题时,有些人喜欢将其作为尝试新事物的机会。 冒险家就是那个人。 毫不畏惧,有远见,前途无畏的冒险家一直在使用您所见过的最新技术,最新语法和最奇特的文档策略。 他们希望项目能够向前发展并“与之保持一致”,但也有一种天生的愿望,他们必须超越界限继续尝试新事物。 为什么不? 时髦! 这些冒险家经常会以科学的名义提议使用您从未听说过的图书馆,例如芥子酱或牛油菌。 当然,当一切都出错并且库不成熟时,手指指向何处? 那就对了。 我在看着你,冒险家。

另一方面, 传统主义者希望坚持使用久经考验且值得信赖的强大技术。 这并不是说他们很无聊,他们只是喜欢按照自己所知道的去做。 他们希望确保它能正常工作,并且通过使用去年(或之前一年)使用的相同技术,可以确保这一点。

是的,您猜对了,平衡这一特性:棘手的。 这是关于在新库/工具/代码库中发现新问题时,您可以花多少时间才能工作并可能清理问题的全部时间。 冒险家经常会告诉你这是双赢的,没有什么可以出错。 那时,传统主义者将开始恐惧。 一句话:您有时间花时间学习新技术吗? 团队其他成员吗? 它带来的好处是否超过了最初的学习曲线? 冒险家将要使用从未有人用过的钼钢合金刀片。 传统主义者将坚持使用多年来使用的相同材料。

放在一起

本文不是关于拳击的人。 这并不是要确保人们被分类在他们的小盒子里,并且永远不要离开他们。 当然,这与如何对待人无关。 所呈现的是在基于代码的环境中工作的人们的一些共同心态。 哎呀,在非基于代码的环境中甚至很常见。 它是作为一种工具提供的,因此您可以希望看到参数的另一面,并理解一个人在编写注释和代码时来自何处。

一个人永远不会仅仅是这些特征之一。 他们总是混在一起。 这种混合方式也将根据他们正在从事的项目,他们的时间和理解水平而变化。 就个人而言,我会称自己是一位相当沉重的普通主义者/完美主义者,具有中途冒险/传统态度。 了解自己的特质可以帮助您了解其他人如何对您的代码和注释做出React,以及识别其他人的这些特质。

在开源世界中,这些特征常常被夸大了。 当人们将自己的时间和精力投入到项目中时,他们会感到投入,并且真的想表达自己的声音。 因此,下一次您查看或撰写评论时,请尝试着将自己摆在每种个性类型的鞋子上,以了解为何按这样的方式写东西。 太容易以完美主义的观点抨击概念主义者,或者总是通过建议冒险的方式使传统主义者疯狂。 保持敏感并平衡所有观点。

翻译自: https://opensource.com/life/16/2/whats-your-open-source-personality-type

开源个性化内容推荐引擎

开源个性化内容推荐引擎_您是哪种开源个性类型?相关推荐

  1. 什么是视频内容推荐引擎?

    ▲扫描图中二维码了解音视频技术大会更多信息▲ 翻译.编辑:Alex 本文来自OTTVerse,作者为Krishna Rao Vijayanagar. Easy-Tech #035# 推荐引擎通常是指利 ...

  2. 中国内容推荐引擎市场趋势报告、技术动态创新及市场预测

    内容推荐引擎市场的企业竞争态势 该报告涉及的主要国际市场参与者有Amazon Web Services (US).Boomtrain (US).Certona (US).Curata (US).Cxe ...

  3. python 开源cms内容管理系统_30 个很棒的 PHP 开源 CMS 内容管理系统

    本文汇集了30个优秀的开源CMS建站系统,采用PHP开发.以下列表不分先后顺序. AdaptCMS Lite 是一个开源的CMS系统,主要特点是易用,而且可以轻松和其他系统接驳,提供简单的扩展定制途径 ...

  4. 开源项目面试重要吗_年度最重要的开源新闻

    开源项目面试重要吗 这是我们每周一次的开源新闻摘要的特刊,回顾2014年的热门新闻! 我最仔细地研究了商业,政府和教育领域的新闻. 关于开源如何帮助改变世界,让世界变得更美好,还有一些您不会想到的非凡 ...

  5. node python做游戏服务哪个适合做服务端_当前的几种开源游戏服务端介绍

    当前的几种开源游戏服务端介绍 pomelo Pomelo 是基于 Node.js 的高性能.分布式游戏服务器框架.它包括基础的开发框架和相关的扩展组件(库和工具包),可以帮助你省去游戏开发枯燥中的重复 ...

  6. mysql开源系协议_常见的几种开源协议

    在学习中经常能看到一些词,例如:GPL,LGPL等等,自打上学那会就遇见过,对它们的具体含义却不了解,今天给它们总结一下. 说到开源协议,不得不提GNU.课本上给的定义是"GNU is No ...

  7. 开源的python有限元软件_想从Abaqus转用开源有限元软件有什么好的推荐吗?

    推荐FreeCAD,Code-Aster,Calculix. (1)FreeCAD据说华为在尝试于FreeCAD基础上进行CAE开发,FreeCAD本是一款开源的CAD软件,具备一些简单的有限元分析功 ...

  8. 液压系统管路流速推荐表_液压系统的几种管路

    ①主管路(吸油管和回油管),液压泵的吸油管和系统的回油管是液压系统的主管路,要分别进入由隔板隔开的吸油区和回油区,管端应加工成朝向箱壁的45度的斜口,这样既可增加开口面积,沿箱壁环流. 为了不让吸油管 ...

  9. idea resources目录_最全八种IDEA目录类型标注:Mark Dir as Sources/Resources Root

    IDEA中Mark Directory as对项目的任意目录进行以下八种目录类型标注,这个知识点很重要,必须Get到. 1.Sources Root 标注源代码文件夹 (or source folde ...

最新文章

  1. 47 APScheduler安装及基本概念
  2. 安全 日志挖掘 分析系统数据源
  3. 【深度学习】CV和NLP通吃!谷歌提出OmniNet:Transformers的全方位表示
  4. spotlight soo5072:there was an error reading the tnsnames.ora
  5. sentry使用webpack上传sourceMap源文件定位错误到更详细具体的代码片段
  6. HTTP响应报文与工作原理详解
  7. 嵌入式系统中看门狗概述。。。
  8. 深入理解闭包系列第五篇——闭包的10种形式
  9. lambda python_Python | Lambda和filter()与示例
  10. 鸿蒙系统中的 JS 开发框架
  11. (116)System Verilog类合成(类包含关系)详解
  12. Windows Embedded Webcast 2008年1月预告
  13. Android【报错】android.content.ActivityNotFoundException:activity in yourAndroidManifest.?
  14. 开启MyBatis(三)工作原理
  15. SQL Prompt
  16. Fineui 添加打印控件
  17. 用pe修改计算机ip地址,解决win7电脑禁止更改ip地址的具体步骤
  18. django.relatedField-关联域
  19. SpringCloud极简入门(三)服务提供者与消费者
  20. Class类的使用和背后实现的原理

热门文章

  1. webpack及node.js基础必会--path模块的常见操作
  2. Nginx 状态监控、缓存的两种机制(学习笔记十四)
  3. jdk1.8之lambda表达式
  4. nginx+tomcat 动静分离
  5. Spring Framework 官方文档学习(三)之Resource
  6. 假期数据结构学习总结
  7. 大学生眼中的对方,哈哈
  8. 体系结构笔记(1)Fundamentals of Computer Design
  9. java mybtis关联查询,7.MyBatis 关联查询(一对一)
  10. php之前代码,PHP语法检查源代码前控制