首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

上帝说:要有一门面向未来的语言,于是有了 erlang

所以,本文概括性地谈谈 —— 如同「独孤九剑」的总诀 —— 关于 erlang 的方方面面都提及一些,讲些有意思的内容,但都不会深入到太细节的东西。...从 erlang application 的角度来看,erlang VM 的调度是 preemptive 的,因为每个 erlang process(你的 erlang 或者 elixir 代码)不知道也不用关心自己会在什么时候被调度...从 scheduler 的角度想来,elixir 的某些语法也许略微有些欠考虑 —— 类 ruby 的语法,很容易让人像 ruby 那样,写下长长的函数 —— 比如,plug 的代码中,50 行以上的函数并不少见...elixir 又提供类似 lisp 的 macro 能力,因而可以轻易衍生出更多的 elixir 代码 —— 所有这些,当编译成 erlang 代码后,可能就是一个较大的函数,不那么利于 soft realtime...唯有 erlang,在 VM 层面像工匠般仔细地计量某个 process 的 throughput(reductions),让每个 process 雨露均沾。

1.4K110

对一门不是非常熟悉的语言是怎么面试的

没听过,这就对了,这是一个函数式的语言,可以认为是 Erlang 的升级版本,Erlang 多用在交换机设备上的开发语言,这个语言其实还是比较小众的。...RabbitMQ 就是 Erlang 开发的,虽然 Erlang 在整个项目中的比例并不是很高。职位需求这个职位的需求就是使用 Elixir 语言来处理 HTTP 的 API。...在这一个小时中主要聊了下对 HTTP 的请求,API 的调用是不是熟悉。不管用的是什么语言,只要你写过 API,这部分还是比较容易说清楚的。...回家做题对于给出的题目,稍后我在下面的文章中给出。如果你是使用其他的比较高级的语言,这个应该没有什么问题,可以说是非常简单的。...只是希望的是,他们应该可以通过更好的沟通让整个流程更加好,可惜他们没有做到,有点把面试当儿戏的意思。

14430
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    当我参加培训的时候,我在学什么?

    在旧金山举行的 erlang/elixir 2017 大会上周结束。...,我自己看书或者读 erlang 的文档,获取到的知识也未必比参加培训少,那么,花这样的大价钱参加的意义是什么?...Erlang Solutions 是一个咨询公司,很多著名的开源项目(比如:RabbitMQ,Riak,MongooseIM)来源于他们,他们还是 erlang/elixir 大会的发起人。...而时时刻刻都在提问的,只有我和一个 apple 的工程师(是的,apple 内部有项目在用 elixir 做,yeah,erlang/elixir 程序员可以嗨森一下,然后该干嘛干嘛去了)。...这次培训,同学们的 erlang/elixir 的工作经验都远高于我 —— 我 elixir 三个月,三千行代码经验,erlang 零工作经验。

    70950

    Elixir和OTP中面向过程的编程指南

    Elixir / OTP和面向过程的编程 在Elixir / Erlang和OTP中,通信原语是执行语言的虚拟机的一部分。在进程之间和机器之间通信的能力建立在语言系统的中心。...这强调了在这种范式和这些语言系统中沟通的重要性。 虽然Elixir语言主要在语言表达的逻辑方面起作用,但其使用是面向过程的。 以流程为导向意味着什么?...系统的生命周期是什么?哪些习惯需要是偶然的,哪些是不变的?系统中的负载在哪里,预期的速度和体积是多少?只有在这些类型的考虑被理解之后,面向过程的设计才开始定义每个进程的功能或要执行的逻辑。...Elixir或Erlang的任何培训课程必须(通常是)包括OTP,并且应该从一开始就有一个过程方向,而不是“现在你可以在Elixir中编写代码,所以让我们来做并发”类型的方式。...首先从流程设计的角度来规划系统,其次是逻辑编码的观点。 了解基础知识 什么是Elixir和OTP? Elixir是一种基于Erlang VM的功能编程语言。

    1.4K10

    思考,问题和方法

    孔子说三十而立,立的是什么?是立德、立功、立言这三不朽么?还是小家子些的,立身,立家,立业?每个在奔四路上的人都会有自己的体味和解读。但不容置疑的是,三十岁往上,要渐渐形成自己的思想和方法论。...(感谢小山同学贡献的老爷子亲笔阐述) 仔细想想,它简单地可怕,就像物理学的大一统理论一样,试图从纷繁复杂中跳脱出来,回归本源。...我喜爱 Joe,和我喜欢 Rich Hickey 一样,他们在传播知识的同时,传播他们自己对事物独特的理解和思考。 回到我自己对做事的流程和方法的感悟。...目前这套流程还在实验当中,我们线上的服务,OCAP playground 就跑的是生成的代码。...我们自己写了大约 3500 行 elixir,1000 行 yaml;生成出来 1500 行 elixir 代码(Elixir 支持 Macro,所以我们生成出来这些源码只是方便自己排查问题)。

    70200

    ​在群晖docker上装elmlang可视调试编码器ellie

    atom,vscode这样的东西,在业界是推崇用vim的,他命令区和编辑区合一的ui方案使之成为通用ide,那么在远程呢,越来越流行的还有很多web IDE,elmlang for webapp的特性使得其天然就与...web ide相生相融,与我的想法颇为迎合的是,elmlang的官方发布了一个ellie:el-li-e,elmlang live editor的意思,它模拟了atom这样的本地编辑器方案,该项目托管在...基本上ellie源码就是混合erlang->elixir,nodejs->elmlang,haskell-elmlang五种语言组建出来的: elixir与nodejs都是语言,分别执行exs与js,其应用以语言库的源码形式发布...elixir又作为erlang的一个库与可执行服务正如elmlang是nodejs的一个库与可执行服务一样,erlang也是源码形式发布的,所以erlang->elixir是语言源码套源码形式发布的。...中独立生成image和不同的entrypoint run中运行,而在prod中前后端整合到了elixir image下,它们最大的区别是,dev环境下的webpack需要附加express 8080持续运行

    1.2K60

    停下来,歇口气,造轮子

    / elixir 时宜的部署方案。...我们生产环境的 erlang / elixir 跑在 19.x / 1.4 上。...这是整个 build 的流程。要部署的时候,只要跟部署脚本指明要部署的 release,我们可以从 release assets 中拿到这个 tarball,解压部署即可。...这样的好处是:构建系统在我们自己的 VPC 中,可以从 vault 中获取数据库的 credentials;同时,我们只需要在构建系统里搭载合适的 erlang / elixir 版本,然后通过 include...想想看,你上一次从零到一把一个全新的项目从一个蓝图起,一行行代码垒起来,最终部署到生产环境或者用户手边,是什么时候?如果超过半年,那么,你可能需要停下来好好歇口气,认认真真从头造个轮子。

    849160

    我终于逃离了 Node

    任务可以是 Elixir 中的一个进程,或者是 Go 中的一个 Goroutine。...,我永远不会忘记当我第一次在 Elixir 的 REPL,iex 中做一个 SQL 查询的那一刻。...不,Elixir 可以避免这种情况,因为它是建立在 Erlang/OTP 之上的,而 Erlang/OTP 具有很好的并发性。 从一开始,并发及支持它的流程就已经成为 OTP 的一部分。...在 Elixir 和 Erlang 中,并发不是在函数层发生,而是在模块层发生。你可以将模块实例化为一个进程,现在它与其他进程并发运行。每个进程都保持自己的状态,并且可以与其他进程来回传递消息。...创造 vs 进化 思考一下 Elixir 的历史:首先是由 Joe Armstrong 和他的团队发明的 Erlang,旨在解决电信行业带来的巨大并发挑战。

    51330

    Actor 分布式并行计算模型: The Actor Model for Concurrent Computation

    那么,Actor 模型又是什么呢? Actor 模型,代表一种异步消息模式的分布式并行计算模型。在 Actor 模型里,每个 Actor 相当于系统中的一个组件,都是基本的计算单元。...Actor工作原理 工作流程 Actor2从MailBox队列中依次取出Actor1和Actor3发送的消息执行相应的操作 消息传递流程 Actor的行为 当一个actor接受到消息后,它可以做如下事情...进一步建议看一下Erlang和Elixir语言, JVM上的 Actor库Akka,基于Actor的框架Vert.x Actor关键特征 优势 Actor 的通信机制与日常的邮件通信非常类似。...可重用性低,业务逻辑的改变会导致整体代码的重写 工程上难以实现 不适用于对消息处理顺序有严格要求的系统 Actor 主要应用 1.Erlang/OTP: Erlang是面向并发的编程语言,OTP是Erlang...Erlang 是一种通用的、面向并发的编程语言,使用 Erlang 编写分布式应用比较简单,而 OTP 就是 Erlang 技术栈中的标准库。

    2K20

    dart:失之东隅收之桑榆

    2014 年前后的前端生态还没有今天这么百花齐放 —— 如今一个编程语言没有对应的「编译成 js」的方案,就像没有化妆的女孩儿,都不好意思出门。...)中得到了一个宝贵的经验:如果有静态类型系统,javascript 的性能优化和大项目工程化可以大大提升一个台阶。...dart 的并发模型非常讨喜,至少,对我的胃口。它受 erlang 的影响不小,提供了类似于 erlang process 的 isolate。...dart 还有一个有意思的特性是 snapshot。顾名思义,snapshot 允许 dart 保存并序列化当前 VM 的上下文,下次可以从 snapshot 中恢复运行。...dart 的代码分析服务做得相当出色,无论是类型推导,还是自动补全,还是代码跳转,相对于我比较常用的语言 elixir 和 rust 来说,反应速度都是一流,从不卡顿。

    1.8K11

    有趣的Code Poster

    以Code Poster为例,其执行流程如下所示: 读取代码文件 读取图片文件 生成Text元素集(这个过程会完成代码字符与颜色的融合) 生成SVG 保存SVG文件 Elixir的管道运算符,会自然地让我们想起...那么,在Code Poster场景下,这个统一接口是什么呢?或者说我们需要抽象的数据究竟是什么呢?分析前面的执行流程,读取一个code文件与读取一个image文件,返回的结果其实完全不同。...那么,如这般不同的数据结构如何才能够像Stream一样通过管道连接起来呢? 在Elixir中,我们通常通过定义一个struct来完成对数据的抽象。...该原则要求一个函数中的所有操作都处于相同的抽象层。只有如此,才不会让函数表达的意思失衡,有的隐藏了细节,有的又暴露了不必要的内容。 我们可以通过对需求的任务逐层拆分来保证这一点。...前面提到的流程是最高抽象层的任务分解,而针对load code file,又可以拆分为如下的子任务: 读取代码文件 去除文件内容中的空格、tab、换行符(表现的业务含义就是拼接这些代码字符) 转换为字符集合

    1.1K40

    Rust 视界周刊 Week 6 | 黑莓公司宣布:汽车行业需要 Rust

    他们有自己的流程和治理系统(在上一代流程遇到一些问题后,他们目前正在进行相当大的改革)。该项目实际上负责所有技术决策,包括语言的内容、工具和流程的工作方式、文档中的内容、更改的功能以及更改时间等。...下面一些回复摘要: “F# 中的这是默认值。...学习资源 Rustproofing Linux: 研究如何将C驱动迁移到Rust上来的最佳实践系列文章[22] 减少 AccessKit(跨平台和编程语言的 UI 可访问性基础设施,Rust 实现) 的内存使用报告...Lunatic[34] 是一种 Erlang 风格的 wasm 运行时,并且提供了一个现代化 Web 框架 submillisecond[35]。...UI 可访问性基础设施,Rust 实现) 的内存使用报告: https://accesskit.dev/dramatically-reducing-accesskits-memory-usage/ [24

    1.1K20

    如和在几十个 Repo 中游刃有余?

    过去的三个月里,我畅游在 elixir,ansible,terraform,javascript,少量 python,少量 erlang 组成的一群 repo 中,慢慢领悟到了这种高效工作之道:建立属于自己...当这样的接口统一后,我们可以不管 repo 的目录结构是什么,是哪个语言,语言对应的各种 cli 是什么,一切都可以通过标准的接口处理,非常符合 don’t make me think 的思路。...这一切都归功于我们还算不错的 TTP。目前我们的 elixir 项目的 TTP 在十分钟左右,算可以了。...有些语言,比如 erlang,elixir,天然就模拟自然界的行为,通过自下而上的解耦,让简单承载复杂。...在 erlang 的世界里,一个 process 就像一个个独立的,彼此解耦的个体,它们构建起团队(supervision tree),一个个团队构成公司(application),一家家公司进而组织成一个复杂的社会

    49520

    『数据分析』使用python进行同期群分析

    同期群分析 从留存率角度进行同期群分析 从人均付款金额角度进行同期群分析 从人均购买次数角度进行同期群分析 每月总体付费情况 将结果导出网页或截图 整体完整代码 同期群分析概念 同期群(Cohort)的字面意思...在《精益数据分析》中的第2章 创业的记分牌 中介绍了三种分析方法(市场细分、同期群分析以及A/B测试),其中关于同期群分析的讨论可以帮助我们快速了解它的应用场景。...,大致可以划分为2个流程:确定同期群分组逻辑和确定同期群分析的关键数据指标。...计算每条购买记录的时间与首单购买时间的月份差,并重置月份差标签: order["标签"] = (order.购买月份-order.首单月份).apply(lambda x:"同期群人数" if x.n=...在本次的分析中,留存率的具体计算方式为:+N月留存率=+N月付款用户数/首月付款用户数 cohort_number.iloc[:, 1:] = cohort_number.iloc[:, 1:].divide

    63731
    领券