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

我是怎样学习新编程语言

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

93530

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.5K50
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

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

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

    14230

    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}.

    13530

    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.5K00

    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 片段普通组合. 如果你理解调用者上下文和宏输入, 那么直接执行转换或在必要时通过延迟执行转换并不算难. 本系列绝不可能涵盖方方面面和所有的细节.

    17840

    教程 | 如何使用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 访问该项目,因此如果您想查看完整源代码,请知道它位于上面提到同一链接!

    45430

    为什么我们要阅读源码?

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

    77680

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

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

    40510

    有趣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
    领券