合金开发日记—第 1 部分

合金开发日记—第 1 部分

原文:https://medium.com/hackernoon/alloyci-dev-diary-part-1-8ae564fce9f3

开始一个新项目

通过 AlloyCI 的介绍帖子,你可能会认为编写 CI 协调员的想法对我来说是很自然的,但实际上我花了相当长的时间来为一个新项目找到完美的想法

由于开始这个新项目的主要目的是巩固我新获得的灵丹妙药知识,我可以选择更简单的东西,或者甚至只是跟随所有语言学习书籍中的辅导项目。比如博客管理系统,GitHub 发布 API 客户端,一个非常简单的 CMS,等等。但是我知道,如果我走那条路,我一写完这本书就会停止给项目添加功能。我不希望这种事发生。

我真的认为一个持续时间更长、更有用的项目会比一次性的辅导项目产生更积极的影响,特别是如果你试图做一些其他人可能会觉得有用的东西。但是这里有一个问题:想出一些其他人可能会觉得有用的东西真的很难

一个很好的起点是找到一个当前产品无法完全解决的问题。很可能不止一个人和你有同样的问题。现在,我不打算撒谎,你会花很多时间来想出一些有用的东西,但这也是乐趣的一部分!

我花了大约 3 个月的时间,直到 CI 协调员的想法出现在我的脑海中。在那之前我考虑过在 Elixir 中重新实现omniauth-saml Ruby 库,但是当我意识到 SAML 支持在 Erlang 中几乎不存在,更不用说 Elixir 了,至少没有什么能和ruby-saml及其威力相比,这个想法很快就夭折了。一旦这个想法消失了,我又继续重新实现了一段时间。当我注意到我必须重新实现的每一个想法都已经有了相应的灵丹妙药时,我最终放弃了。事后看来,这可能不是最好的主意。即使已经有了一个库,你也可以通过重新实现它学到很多东西。您自己的特殊观点和意见可以引导您更好地实现现有的解决方案。至少你会学到很多东西。

就像许多想法一样,在我洗澡的时候,我产生了创建 CI 协调员的想法。理清你的思路,不去想一个问题通常是找到解决方案的最好方法,我在生活中多次经历过这种情况。一旦这个想法“出现”,我知道它有很大的潜力。通过在 Elixir I 中重新实现 GitLab CI API,可以解耦它的系统并释放 GitLab Runner,使它与其他 SCM 系统兼容。它会给一个已经很棒但被锁定的项目(CI Runner)带来新的可能性。最后一部分是真正让我兴奋的开始。我可以利用现有的项目来构建新的东西,并简化我的一些方法,这将给我一个良好的开端,并使更快地发布 Alpha 版本成为可能。

第二天,我开始做基本的项目布局,直到第二天凌晨 4 点才睡觉😬

这就是我如何开始与 AlloyCI 合作的 squick 故事。开发日记的第 2 部分将讲述一个新的 Phoenix 项目的项目结构,以及 AlloyCI 在公开发布之前从 1.2 到 1.3 的过渡。


本站为非盈利网站,作品由网友提供上传,如无意中有侵犯您的版权,请联系删除