像专业人士一样准备和发布Elixir开源软件包

在Shedul,我们坚信开放源代码,并且与在此基础上发展业务一样多地与社区共享。 特别是Elixir,我们是一大堆软件包的骄傲所有者,例如Surgex,Jabbax,Confix,PlugDeviseSession或Protein。 但是,每次发布Elixir开源软件包时,我都会发现自己重新组装了相同的动作列表和它们之间的依赖关系,从而导致了适当管理和(有希望)专业的发布。 本指南旨在将所有这些操作纳入如何使您的开源程序正常运行的有序,端到端的有序列表。 还有一个更重要的方面。 不知道如何设置一个开源应用程序(或组织不好的应用程序)会导致在项目开发周期的后期进行此操作,尽管它从一开始就对项目有利可图-最好是在运行mix new或mix phx.new 。 这是通过上述方法获得的一些基本收益: 由于尽早建立了仓库,整个项目的开发都通过Github PR记录下来,包括早期开发 通过对PR进行测试,代码质量和覆盖范围的检查,使代码审查更加容易,并从一开始就极大地提高了项目质量 所有这些都得到了文档的支持,这些文档可以在代码审查期间的代码中看到,也可以在每个软件包发行后在Hex上看到 由changelog支持的语义版本控制可作为更改文档和带有严重性指示符的更新指南(中断与不中断) 在GitHub和Hex上都可见的测试和覆盖徽章将该项目宣传为值得信赖的项目,从而在开源社区中占据优势 我认为本文中配置的所有内容都是现代开源项目配置难题的必不可少的部分。 如果省略任何内容,则可能会遇到各种项目质量和/或管理问题。…

跟踪,跟踪和跟踪之间的区别

作为领导New Relic的分布式跟踪项目的人之一,我经常使用“跟踪”一词,以至于有时我开玩笑说它对我失去了所有意义。 但是单词很重要,这一点特别重要,因为“跟踪”可以指许多不同的事物。 我们的分布式跟踪项目涵盖了整个New Relic工程组织,从十一个语言代理到我们的数据提取层,再到处理和存储,最后到我们的许多前端UI。 当我们开始计划下一代跟踪时,我发现自己正在设法一种方法来解释这个庞大而笨拙的项目可能会分解为独立的问题:数据收集,传播和显示。 尽管这些域是分开的,但它们也是相关的(我们称其为“分布式跟踪”),因此向与该项目有关的所有人进行解释具有挑战性。 有些人知道我们已经宣布了对OpenTracing的支持,但不确定到底是什么使我们成功。 在这一点上,我们开始谈论其他的CamelCase项目,例如TraceContext和OpenCensus,目光注视着。 每个标准项目都在解决一个独特的问题,我们统称为“跟踪”。 2月,我参加了一个分布式跟踪研讨会,本·西格尔曼(Ben Sigelman)通过询问和回答“跟踪,跟踪和跟踪之间的区别是什么?”来捕捉这些区别。在他的允许下,我将在此处介绍该框架并解释为什么我们很兴奋参与新兴的分布式跟踪标准。 跟踪是关于分析交易 跟踪是您监视系统并深入了解其性能的方式。 在去年秋天的FutureStack会议上,我们加入了不断增长的APM供应商列表,并提供了具有自己的可视化功能的跟踪支持。 如果我们不能以一种有用的方式向客户展示它,那么所有收集痕迹的工作都将被浪费。 从仅将一条特定的迹线缝合在一起的基本知识,到了解为什么通过摄取管道中的最热点显示特定工作流程的历史趋势比较缓慢,再到使用机器学习来找出系统中的模式,可视化迹线非常重要。 包括New…

OAS 3.0

在过去的5天里,我写了很多行以及更多的API规范行,因此可以开始实施。 没有规范,就无法在没有大量来回操作的情况下开发任何东西来确保端点按预期工作。 如果您还没有编写API规范,则会发现这是一个很大的挑战。 您必须找到一种方法来正确告知信息将如何工作,并找到一种方法来展示该信息以及最好的信息,正确的方法是提前进行处理。 与TDD(测试驱动的开发)相似,先编写测试然后进行开发。 在寻找在网络上动态呈现文档的方法时,我遇到了OpenAPI 3.0规范(以前的Swagger),该规范以一种非常简单的方式提供了一种预定义的标准,以可以与任何语言和工具一起使用的方式编写该规范。呈现此规范。 根据要点,您正在做的是编写一个巨大的yaml文件,该文件将保留所有API行为,并且该yaml文件将具有以下内容: API信息:将保存有关服务器,联系人,许可证等的信息。 对象:在整个说明书中用作参考。 路径:这将成为您的API的终结点,并且很可能会生成和使用对象。 Swagger提供了一个编辑器,该编辑器将提供规范的可视化效果,并将执行适当的解析以确保所有内容都是正确的。 该编辑器是一个很好的起点,因为它将为您提供一种解析和可视化初始规范的方法,但是过一会儿,它将主要用于解析规范中的错误。 在此阶段,编辑器提供的Docker映像非常有用。 规范完成后,事情变得很有趣。 现在,OpenAPI规范可以与实际上将呈现SDK的工具以及将基于包含整个API规范的相同yaml文件呈现文档(例如ReDoc)的工具一起使用。 并非所有事物都是完美的。 这仍然是一个开源项目,需要进行一些微调,但是潜力确实存在。

OWASP十大漏洞列表-您可能错误地使用了它

如今著名的OWASP Top 10漏洞列表(包含在本文的底部)于2004年由Open Web Application Security Project首次发布,它可能是开发社区就如何保持安全性提出的一系列诫命中最接近的一个。他们的产品安全。 根据OWASP的说法,该列表代表了当今对软件安全性最相关的威胁,这令许多人惊讶不已,这些人想知道这些年来,SQL注入仍然是一个令人担忧的问题。 他们基于四个标准点来判断漏洞类型:易用性,普遍性,可检测性和业务影响。 有趣的是,OWASP指出,他们实际上并未将攻击者尝试利用某个漏洞的可能性纳入考虑之中。 当它开始时,作者认为覆盖最大范围的最佳方法是将他们认为最受关注的类似漏洞放入分组中。 他们认识到,缺少适当的统计数据,总会存在一个问题,即哪些漏洞必定是最令人担忧的问题,尤其是根据每个组织的威胁模型,这可能是一个主观的问题。 但是,经过大量辩论,他们提供了他们认为可以解决最广泛的组织问题的清单,尽管顺序并不特别。 随着时间的流逝,许多组织将OWASP十大漏洞列表作为最佳实践和要求的标准,从某种意义上为发展设定了标准。 该列表的一个著名采用者是PCI-DSS的支付处理标准。 不幸的是,随着OWASP十大漏洞列表的受众越来越广泛,其作为指南的真实意图已被误解,伤害了开发人员而不是提供帮助。 那么,我们应该如何理解此列表的目的,并实际上鼓励开发人员更安全地进行编码? 从那以后的几年中,他们刷新了条目并对其进行了重新排序,并在它们相关时添加了一些新的漏洞类型,即使其他漏洞类型已从列表中删除。…