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

我是怎样学习新编程语言

这里“终”就是目标,软件工程中,有一种实践很好得反映了这种做事方式——测试驱动开发。...Elixir中有iex命令作为repl,而且这门语言深受Clojure影响,尤其是文档和例子方面很充足,对于初学者再友好不过。...再说,学会用新语言思维方式编程是我初始目的之一。 这里举个例子,mapkey使用哪种基本类型会比较合适?...Clojure中有keyword,如{:name "clojure"},而Python中并没有这样数据类型,我只好使用{'name': "python"},那么Elixir呢?...既然如此,那么自然语言也好,编程语言也罢,如果能换种思维方式解决同一种问题,说不定能收获些奇奇怪怪东西,编程之路,道阻且长,开心就好。

92930

elixir:灵丹妙药?or 徒有其名?

IO.puts(formatted_output) 这样代码Elixir中可以被写成: host |> Store.get_host |> to_map |> tabularize |> IO.puts...老娘/老子Ruby里,或者jquery中,经常这么写代码。。。 虽然pipe和chaining表述代码方式有些类似,但背后思想不太一样。...如果你不幸在工作中遇见if/else hell,再看过支持pattern matching语言,你一定会泪流满面。 那么问题来了,当pipe遇见pattern matching是什么光景?...总结 硬件兄弟总是嘲笑我们这些写软件笨蛋们 —— 当他们硬件能够不断以搭积木方式自我累积,数十亿个晶体管组成复杂系统可以bug free时,我们写软件却糟糕得一塌糊涂。...原因有多方面的,如果从语言本身出发找原因,那就是语言本身并未让你以搭积木方式组织系统。 那么,什么样语言更容易贴近搭积木组织方式呢?

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

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

    下一步就是在线 Coding 了,这个在线代码也是非常简单,唯一麻烦地方是 Elixir,因为从来没有接触过这个语言,突然平台上要用 Elixir 这个语言还是有点懵逼。...但是 Elixir 是一个函数式语言,同时循环是不可变,在这里哪怕是一个循环都要折腾半天。本着,既然我答应你回家试试了,那么我就抱着一定要做出来想法来,也规定时间把代码提交了。...不是说,你今天开始看文档,明天就能全部看明白那种。这个语言没有好集成 IDE 开发环境,代码写起来不是那么友好,高级语言非常容易实现东西,Elixir 需要比较多步骤才能完成。...主要原因是,投简历时候没有仔细看看需要语言,主要是看了 API 编程能力。通常来说,这个都不是什么问题。唯一感觉有点不好是,公司方面对面试者反馈比较差。...,附件中有题目说明,测试数据和源代码。

    13830

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

    前言 这篇文章感觉介绍语言是次,讲解各种各种分类以及面向过程思想为主。本身我也没接触过Elixir,这次也权当开拓视野了。最后附加了一个英语单词小解,当学习之余零头吧。...Elixir / OTP和面向过程编程 Elixir / Erlang和OTP中,通信原语是执行语言虚拟机一部分。进程之间和机器之间通信能力建立语言系统中心。...Elixir或Erlang任何培训课程必须(通常是)包括OTP,并且应该从一开始就有一个过程方向,而不是“现在你可以Elixir中编写代码,所以让我们来并发”类型方式。...如果可以从数据库系统获得结果,我们可以选择不同进程分配,其中总计通过临时进程更新。 最后,我们可以看到很多人会看到结果。这些进程可以以多种方式进行分区。...如果在投票集合和状态/省份和省份之间使用协议是相同那么聚合逻辑可以被重用,但是需要不同进程来保存结果,它们通信路径是不同,如图5所示。 ?

    1.4K10

    (译) Understanding Elixir Macros, Part 5 - Reshaping the AST

    生成代码将包含: passed_args = [a, b] |> Enum.map(&inspect/1) |> Enum.join(",") 上面这段会按预期工作, 但如果一个参数是匿名变量(_),...那么我们将生成以下代码: passed_args = [_, 0] |> Enum.map(&inspect/1) |> Enum.join(",") 这显然是不正确, 因此我们得到了未绑定变量错误...那么解决方案是什么呢? 我们不应该对输入参数任何假设. 相反, 我们应该将每个参数放入宏生成专用变量中....最后, 推导式末尾, 我们返回一个元组, 该元组由临时名称和 quoted 完整模式组成 - (例如 _ = arg1, 或 0 = arg2)....我们在这个 lambda 里实际上是一个模式匹配, 我们寻找 {fun_name, context, args}.

    12830

    Elixir vs. Ruby和Phoenix vs. Rails:选择什么和为什么

    几年来,Web开发人员一直积极讨论一种名为Elixir新编程语言及其最受欢迎Phoenix框架。 Elixir与Ruby和Phoenix vs....José一直寻找有效方法来解决Ruby on Rails开发中并发问题,这些努力产生了一种新编码语言。 Elixir是一种函数式语言,它使得它与面向对象Web开发大多数语言不同。...以下文章中阅读更详细Elixir语言评论: Elixir编程语言:为更好应用程序开发而知道事实 认识凤凰城 - Elixir最佳编程框架 如果你读过Elixir,那就意味着你也遇到过凤凰这个词...Ruby on Rails受欢迎程度背后原因是什么? Rails框架由David Heinemeier Hansson参与Basecamp项目时创建。...它最初发布到开源是2004年.Ruby on Rails是用Ruby编写,这个事实对于Ruby流行至关重要。在那之前,Ruby编码语言并没有那么成功。

    2.4K00

    Elixir, OTP, Ecto, 和 Phoenix 免费教程!

    我们制作了25个短片(每个约5分钟),这将使你从“Elixir是什么东西”到“酷,我知道如何建立基本Phoenix WebApp”迅速。...从那里开始,我们正在建立一个具有生产力应用程序,用于持续优质内容。 如果您只想看内容,您可以跳过,否则坚持下去,我们将看看为什么我们投入大量时间Elixir生态系统中。 ?...我们正在以实践方式学习使用持续集成,持续部署和坚实测试套件等最佳实践来构建生产应用程序。 我们已经建立了一个Alpha版本Firestorm,同时社区内进行dogfooding。...如果没有为我们Kickstarter做出贡献每个人支持,我们项目中花费免费内容和时间是不可能。我们非常感激,并希望这个项目可以证明可以为世界建立高质量开源软件,同时也生产高品质教材。...如果您对Firestorm论坛成功感兴趣,或者发现免费内容很有价值,并希望在世界上看到更多这样事情,那么如果您注册个人或团队帐户,我们将很荣幸DailyDrip。 初创企业很难!

    1.8K60

    当我 hackathon 时我在做什么 (1)

    我们知道,一个 dataframe 往往都很大,如果封装起来 elixir 和 rust 间来回拷贝着传,那效率低到马里亚纳海沟里去了。所以为了效率,两边要传引用。...而 dataframe 是可以修改数据结构(如果调用时传入 inplace=True),这就意味着 Elixir 到 Rust 侧传递需要 RwLock + Arc,而为了 Elixir 侧能够很好地...最简单方法是 groupby_apply 完全 elixir 侧实现,lambda function Elixir 上下文执行: list_series = Enum.map(df.column_names...这样理论上可行,算是上述方案一个更加通用版本。 ? 为了这么一个并不那么重要函数这么多工作,太耗时间,所以我放了一个含情脉脉 TODO (tchen),待有空回来再做。...#[rustler::nif] 写得不够好,导致 1 如果说我 rust 有初三水平,那么我对 procedure macro 应用和理解还在学前班。

    1.1K20

    (译) Understanding Elixir Macros, Part 6 - In-place Code Generation

    end end 这就是我们问题. 如果我们原地生成代码同时动态地调用 deftraceable, 那么这样假设就不再成立....如果我们想支持对宏模块级动态调用, 就不应该在宏上下文中任何假定. 相反, 我们应该将代码生成推迟到调用方上下文中....end ... end 实现解决方案之前, 必须注意到这不是一个通用模式, 你应该考虑是否真的需要这个方法. 如果宏不打算用于模块级别, 那么你可能应该避免使用这种技术....如果传输数据是一个 AST 且可能包含 unquote 片段, 那么您可能需要以 unquote: true 方式使用 Macro.escape ....一定要记住 — 展开阶段, 宏相当于 AST 片段普通组合. 如果你理解调用者上下文和宏输入, 那么直接执行转换或在必要时通过延迟执行转换并不算难. 本系列绝不可能涵盖方方面面和所有的细节.

    17340

    教程 | 如何使用Elixir语言实现深度学习?剖析多层神经网络构建和训练

    然而,如果机器通过数字和浮点整数表示实际数据和问题,那么奇迹般地,它们可以开始解决问题并理解人类!...加入新增训练集数据,我们图表变成下图: ? 设计 计算机中表示神经网络最佳方式是通过矩阵。矩阵是线性代数有用工具,它允许我们对数字向量进行操作。 从图表中可以看出,有 3 列和 3 行。...我们已经初始化权重时计入了偏差,所以我们函数不需要有那个部分。那么我们所有要做事是阶段 1 和 2。 ? 这里我们取输入和权重并并行映射。...如果发现其错误率高于 0.02,那么它必须继续训练。这就是学习过程。神经网络必须经历重复循环,直到学习任务几乎没有错误。我们可以通过模式匹配(pattern matching)实现: ?...本文中,我们没有介绍所有的算法和这些网络架构不同方式。未来自动化目标是继续为 Elixir 社区提供如何使用神经网络解决各种各样问题精彩例子。

    1.1K130

    Ruby vs Elixir | 2022 该选哪个?

    Contents Ruby 和 Elixir(以及 Phoenix) 起源 搞清楚 Ruby 和 Elixir 优劣势 Elixir 和 Ruby 最佳实践 最后,到底是选择 Elixir 还是...因此 Elixir 非常适合高并发、高容错性应用。 可伸缩性 如果系统或者应用在未来流量会大增,Elixir 一大优势就是可以最大程度利用一台机器。...函数式编程 Elixir 是函数式编程语言,而 Ruby 是面向对象编程语言(也支持函数式编程)。以这种方式理解这两种编程范式差异可能会有些困难。...Elixir 和 Ruby 最佳实践 了解了这两种语言之间差异之后,我们来看看 Elixir 和 Ruby 最适合使用场景。...但是,对于不需要 Elixir 独特功能项目来说,这可能是一种过火做法,所以仅仅因为这项技术越来越受到关注,并不意味着你应该不惜一切代价追随它 如果应用是最佳实践中列出来那些应用,请直接选择 Elixir

    1.6K10

    《批判性思维(原书第10版)》读书笔记

    最佳解释推理是一种非演绎推理,其目的在于相互竞争各种解释中找到对现象最佳解释,最佳标准是:解释力、预测力、一致性和简单性。...解释用于说明已知现象,论证用于支持或证明某个主张。用于解释语句也可以作为推理前提或结论。 解释中往往会出现一个错误,不区分做某事理由和特定的人某事理由。...例如,有理由帮助无家可归的人,但这些理由可能不是特定的人帮助他们理由。当我们寻求或给出某事理由时,是在为之论证。当我们列举特定个体某事理由时,是解释他或她为何这么。...功利主义看来,如果一个行为将比其他行为带来更多快乐,那么该行为就是正确如果采取某行为将带来较少快乐,而其他可选行为将带来较多快乐,那么,采取该行为而不是其他可替代行为就是错误。...法律家长主义认为,如果法律阻止某人有害自己事,那么相关法律就可以得到证成;也就是说,法律为了某人自己利益禁止或者限制X行为。 最后一种理由往往是为刑法辩护依据,某些行为被认为是冒犯性

    1.7K20

    Elixir和ScyllaDB教你创建CRUD CLI,惊人效率提升!

    好吧,让我们media_player使用以下命令创建密钥空间,本例中是用于 a :cqlsh> CREATE KEYSPACE media_player WITH replication =...(查询完整地图);如果返回是:error则说明执行查询时出现错误,那么我们检查具体错误;{:ok, result}一个重要细节是关于使用and进行赋值{:error, error},因为 Elixir...(查询完整地图);如果返回是:error则说明执行查询时出现错误,那么我们检查具体错误;如果您想了解有关该Xandra.Cluster.execute功能如何工作更多信息,请单击此处。...如果您想了解更多信息,请单击此处以更好地了解 Elixir 如何与模式匹配配合使用。命令好吧,现在是期待已久时刻:我们应用程序中添加负责执行命令函数!...同一个存储库中,您也可以使用 Elixir 访问该项目,因此如果您想查看完整源代码,请知道它位于上面提到同一链接!

    42930

    是不是直接写“发红包”而不是“请求微信发红包”

    以下是本问题展开: 问题中有疑惑,分析序列图是否有什么区别?...上面讲了,“A请求B某事”这个道理是一样,但这个“某事”之所以是“请求****”,确实和分析序列图有关,因为我们把系统分解了,其中有一个边界类,专门负责封装“请求微信发红包”责任。...下面这个可以: 如果我们不分解目标系统,就变成: 可能有的同学会下意识反应,咦?“请求A系统某事”哪里去了,是不是跑前面去了,像这样: 如果有这样反应,那就要警惕了。...目标系统里面怎么分解,是不是分了几个类,到底有没有一个类专门负责“请求A系统某事”,这就不知道了。...当然,如果目标系统价值确实就是给A系统当一层外皮,那么指向它消息写“请求A系统某事”就是合适

    40210

    为什么我们要阅读源码?

    如果每篇文章平均一千字,那么我们读了数十万文字。这些文字,我们是精读过(有些甚至要求全文背诵)。...在这个过程中,我们学会了赋、比、兴,我们掌握了三段论,我们知道了如何用更优雅地方式表达自己思想。更重要是,这些阅读训练让我们我们脱离学校基础教育后,可以自己独立完成一本书阅读。...于是我转而读了部分 iex 代码,了解了 elixir 代码编译方式,最终完成了一个 auto compiler app —— 它能接受一些 API 请求,对预先配置属于其他 app 下源码可以...如果没有之前各种源码阅读累积,我很难做出这样设计。...我们使用了 code as cache 方法,把数据库里内容不必在运行时 transformation 都在 compile time 完成,然后 run time 结合记叙文三要素,得到最终结果

    76780

    有趣Code Poster

    Pete Corey博客《Build your own code poster with Elixir》展示了如何通过Elixir实现一个类似Commits.io一样功能,即可以将自己代码融合到一张...左侧是原图,右侧则将代码重叠到图中有颜色部分,形成一种颇有极客范儿图片。这很有趣。 实现代码并不复杂,不到200行代码。虽然简单,代码却很好地体现了Elixir编程风格。...Unix中,这种统一接口可以被隐喻为文件(file),上图中stdin、stdout与stderr都属于file descriptor,可以像操作文件那样读或写字节流(stream of bytes...那么Code Poster场景下,这个统一接口是什么呢?或者说我们需要抽象数据究竟是什么呢?分析前面的执行流程,读取一个code文件与读取一个image文件,返回结果其实完全不同。...那么,如这般不同数据结构如何才能够像Stream一样通过管道连接起来呢? Elixir中,我们通常通过定义一个struct来完成对数据抽象。

    1K40

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

    process 就像原子一样,组成分子,细胞,组织,器官,最终构成一副机体(见我文章:谈谈边界(Boundary))。那么,process 究竟是什么?...elixir 又提供类似 lisp macro 能力,因而可以轻易衍生出更多 elixir 代码 —— 所有这些,当编译成 erlang 代码后,可能就是一个较大函数,不那么利于 soft realtime...对此,stackoverflow 上有人解答是: erlang 下,PCRE 代码 regular expression 实现,因为顾及到 reduction,处理过程中有可能让出 CPU,待下次被调度时再继续...如果把 erlang VM 看做是 OS kernel,那么 OTP 就是这个 kernel 其他组成部分:stdlib,initd,syslog,OAM,etc....然而,这些工具只关心你服务如何在前台(foreground)运行,却并不关心诸如: 如何以 daemon 方式运行(启动,停止,重启); 如果以 daemon 方式运行,如何attach 进去,以便于调试

    1.4K110

    最多金编程语言Top10:Python第3,R第10,你猜第1是谁?

    导读:如果你还在纠结选哪门编程语言来开启你码农生涯,这将是你最佳指南。...考虑最佳职业发展方向时,工程师们选择编程语言上通常会考虑四点: 高薪,钱途第一啊毕竟 大量、多样职位需求 越来越受欢迎趋势 容易上手,工作友好 我们这次名单也会考虑以上几个点,部分抓取了世界上最大求职网站...年,StackOverflow 评选出四种最受欢迎框架中有三种都是基于 JavaScript。...正是由于这个原因,你可以很轻松各个地方找到合适 Java 职位,这是其他相对不那么流行编程语言难以达到。所以如果 Java 是你菜,那你找到合适工作机会只是时间问题。 ?...Elixir主要应用于网站开发,虽然工作机会有限但薪资可观,并且近几年越来越受欢迎。如果你所在城市有众多IT企业,Elixir开发人员将会是追捧对象。

    1.3K20
    领券