onboarding到Elixir.

2021-06-22 21:49:23

我已经在Elixir项目上的一些客户工作,我在自己身上,我已经坐在旁边,我在别人旁边。并与我的PHP / Python / JavaScript的经历相比,以及我对C#/的有限经验。网我经历过相当的差异。

Elixir项目往往是非常持续布局的。特别是基于菲尼克斯的Web项目。基本的凤凰生成者在任何事情上提供了相当数量的意见。即使没有Elixir项目的一般形状令人惊讶的稳定。

所以在一些不同的客户中,我已经看到了一些在它们上有几年的elixir projecs,而在实际上没有使用模块层次结构,并且将所有这些都在最广泛的命名空间中或覆盖一些常见约定,整体甚至旧项目都非常合理探索。它们倾向于从mix.exs项目文件中流出,您可以在逻辑上遵循运行应用程序时启动系统的哪些部分。这将让您弄清楚它揭露的路线,在后台做了什么工作等等。 Elixir监督树(继承自Erlang)使应用程序的形状更加清晰地作为开发人员。

我的第一个在elixir项目上是一个项目,它基本上捕获的菲尼克斯具有稳定的释放,因此它是在牛仔和websocket的顶部建造的。我已经非常熟悉Elixir。另一方面介绍了我的系统和产品的人,正在做一些酏剂,但主要是在做其他工作。我估计这个客户的一些工作,大约在100个小时内,用于添加一些API端点为外部方提供一些新功能的初步参与。然后我建造了它。了解Elixir但没有经验这个特殊的系统,没有强大的凤凰惯例,我成功地过度交付了一些在估计的几个小时的几个小时内增加了一些佳肴。我喜欢思考我所做的就是但我不相信我会在类似大小的Python或PHP项目上转变。复合复杂性趋于高得多。

在PHP客户端代码库中相对相同的工作可能会让我围绕两次时间。为什么?主要是因为清晰度。 Elixir是一种功能性编程语言,具有非常强大的务实条纹。它可以轻松编写清晰的代码,而不是巧妙的代码。比较两个代码库当然是轶事,但它与我的动态OOP代码基础的所有经历都介绍了VS Elixir代码基础。制作变化的后果更加清晰,您可以访问的数据以及它如何传递到围绕是平原。它删除了很多猜测工作。

同样的elixir码基础,几个月后我是将滚上新开发人员的人。他一直在做PHP很长一段时间,没有Elixir经验。没有真正的问题,他肯定花了一些时间漂白并挑选语言的语法和概念。他是在撰写高效的代码基础的主要维护者时。我想我们有两个视频配对会话来介绍概念以及如何设置的事情。它真的没有需要更多。

另一个客户,是Elixir中的一个重要的Fintech代码库。一些不同的服务,有些不同的凤凰,有些没有。我被带走了,鉴于帮助让事情设置并开始。由于各地的强大惯例,如何使用灵长素和凤凰,主要需要给我凭据并回答关于细节的一些问题。我相信我在同一周犯了我的第一次提交。我的第一次主要贡献可能是下周,然后我们已经去了比赛。

因此,带来了解Elixir的人们往往会在我的经历中进展顺利,我甚至幸福地带来了一个不知道酏剂的PHP Dev。经验丰富的人怎么样?

在实习期间或兼职工作期间,我至少向Elixir推出了至少三所编码学校学生。他们通常知道某些php,一些python和某些节点.js在那一点,但并没有真正使用任何愤怒。一个目前正在专业地与生产Elixir应用程序一起工作,另一个目前正在与我一起作为助理开发人员合作,并在客户工作中使用Elixir做得好。

我没有发现在语言中教授Elixir或培训人士难以找到很多困难。有一些功能性规划概念来通过和一些习惯来打破。谢天谢地,Elixir与典型的OOP语言没有看起来或感到非常不同。任何开发人员都将熟悉它。它只是为桌面带来了一些非常不同的力量。

我发现的一件事使得船上更容易,你可以有效地接近Elixir自下而上和自上而下,具体取决于您想要做的。如果您想了解应用程序的基础概述以及它如何挂起,请查看监督树,依赖关系,您可以吸收系统的形状。而你需要实施一个小变化或添加东西的那一刻,你可以弄清楚这些东西在系统中发生的地方并在那里工作,在相对隔离中,你不必了解周围系统的一切富有成效。不变性和没有共享状态使您的系统更容易在单独的部分中推理。这意味着您需要更少了解有用的更改。

我已经在没有任何指导或实际介绍的情况下挑选了另一个客户的凤凰项目,并且能够在同一天提供更改。只是通过了解我周围的惯例。当然,这将因人和经验而变化,但它不仅仅是因为我的担任中的一些中风。强大的惯例和一种清晰的语言,守则很容易理解。

总而言之,我在Elixir中发现了与许多其他项目相比脱节直截了当,我认为这是一个重要因素,我相信它也会说一些关于长期发展的措施。很多Elixir开发人员都倾向于描述“无聊”的Elixir项目,即继续工作,并且易于维护。

无聊是软件系统中罕见和强大的财产。特别是当他们能够实现令人兴奋的结果,例如近乎实时,强大的并发和并行性,刚刚烘焙的分布式计算。没有什么比这更喜欢它。

如果你想听听我(和他人!)进一步详细介绍Elixir,我建议光束收音机,但如果您宁愿在主题中获得更多品种,我会建议定期编程播客或我的时事通讯。