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

在Elixir mix应用程序中,我应该把模块放在哪里?

在Elixir mix应用程序中,应该将模块放在lib目录下的适当子目录中。

Elixir是一种基于Erlang虚拟机的函数式编程语言,它的应用程序通常由多个模块组成。为了组织和管理这些模块,Elixir推荐将模块放在lib目录下的适当子目录中。

在一个典型的Elixir mix应用程序中,lib目录是存放所有源代码的主要目录。可以在lib目录下创建多个子目录,用于组织不同类型的模块。常见的子目录包括:

  1. lib/my_app:用于存放应用程序的核心模块,包括处理业务逻辑、定义数据结构等。
  2. lib/my_app_web:用于存放Web相关的模块,包括路由、控制器、视图等。
  3. lib/my_app/worker:用于存放后台任务相关的模块,例如处理异步任务的GenServer。
  4. lib/my_app/protocol:用于存放自定义协议相关的模块,例如实现某种网络协议的解析和封装。

通过将模块放在适当的子目录中,可以使代码结构更加清晰和可维护。同时,Elixir的编译器会自动加载lib目录下的所有模块,因此不需要显式地引入每个模块。

对于以上提到的Elixir mix应用程序中的子目录,腾讯云提供了一系列相关产品和服务,例如:

  1. 腾讯云云服务器(CVM):提供可靠的云计算基础设施,用于部署和运行Elixir应用程序。详情请参考:腾讯云云服务器
  2. 腾讯云容器服务(TKE):提供高度可扩展的容器化解决方案,适用于部署和管理Elixir应用程序。详情请参考:腾讯云容器服务
  3. 腾讯云对象存储(COS):提供安全可靠的云存储服务,用于存储和管理Elixir应用程序中的静态资源和文件。详情请参考:腾讯云对象存储
  4. 腾讯云数据库(TencentDB):提供高性能、可扩展的数据库服务,适用于存储和管理Elixir应用程序中的数据。详情请参考:腾讯云数据库

以上是针对Elixir mix应用程序中模块放置位置的建议和相关腾讯云产品的介绍。希望对您有所帮助!

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

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

作为偏好,我总是选择使用“Bash & Git”或“Zsh & Git”进行安装。安装完成后,我们将准备安装以在我们的项目中接收最新版本的 Erlang 和 Elixir。...好了,现在我们已经定义了依赖项,我们可以在终端模拟器中运行它:$ mix deps.get上面的命令将安装我们的mix.exs.伟大的!...如果您想了解更多信息,请单击此处以更好地了解 Elixir 如何与模式匹配配合使用。命令好吧,现在是期待已久的时刻:在我们的应用程序中添加负责执行命令的函数!...运行我们的应用程序好了,现在我们已经准备好了应用程序,让我们执行命令:$ mix run这样我们就可以开始与应用程序交互了!结论如果您读到这里,非常感谢!...在同一个存储库中,您也可以使用 Elixir 访问该项目,因此如果您想查看完整的源代码,请知道它位于上面提到的同一链接!

48630

如何在Ubuntu 16.04上使用Distillery和edeliver自动化Elixir-Phoenix部署

Distillery将Elixir应用程序编译成一个包,然后您可以在其他地方部署。它还生成允许热交换代码的软件包,这意味着您可以在不停机的情况下升级实时应用程序。...第一次在本地开发机器上编译基于Elixir的应用程序时,系统会提示您安装Rebar,这是Mix依赖的Erlang的构建和依赖工具。在提示符下输入Y。...mix phx.server 将浏览器指向http:// localhost:4000。您应该会看到在步骤4中看到的默认Phoenix主页。...由于我们在构建和生产中使用相同的服务器,因此我们的主机和用户在构建和生产方面是相同的。此外,我们将在app_build目录中执行构建并将已编译的生产文件放在app_release目录中。...这一次,我们有一个命令,相当于我们在步骤7中使用的三个相关命令。 使用一个命令,在生产服务器上构建,部署和重新启动应用程序。

4.3K00
  • 如何使用一门新的语言

    在上一篇文章中,通过新的 Policy Engine,我已经证明了这样的思路在 javascript / nodejs 下无法实现。...我的做法是在项目的根目录下放一个 version 文件,然后各种地方都从这个文件中读取 version 信息。在代码中读取很简单,自不必说: File.cwd!...在我目前的这个项目中,我已经提供了模块级的 hot reload,整个 project 级的 hot reload 没有那么迫切,所以这一块我并没有妥善的思考。...在 ansible 脚本中,我为我的服务生成了 systemd 的配置文件。这样,服务的重启的接口就很统一了。...错误报告系统一般用 sentry,对于我们而言,sentry 官方有 elixir 的客户端,只要注册一个新的 app,把 dsn 写入到配置文件中即可实现和错误报系统的集成。很简单。

    96860

    Laravel中运行Gulp任务的利器(一) —— Laravel Elixir简介及入门教程

    当你将绝大部分精力放在业务主流程上,却还需要时刻盯着这些碎片化任务着实有点让人焦头烂额。...在本节中,我们会展示如何创建并执行与Laravel应用紧密结合的Elixir任务,但在这之前,可能很多人还不太了解什么是Gulp,所以我们将从这里开始,逐一为你解开Elixir的面纱。...在该文件中,可以看到一个Gulp任务示例: elixir(function(mix) { mix.less('app.less');}); mix.less 任务可以用于编译Less文件,在本例中该文件名为...你可以通过在项目根目录下运行 gulp 命令来执行定义在 elixir 方法中的任务: $ gulp [13:16:18] Using gulpfile ~/Software/dev.todoparrot.com...在 js 目录中可以找到 test.js ,其中包含如下代码: (function() { alert("Hello world"); }).call(this); 其他Elixir任务 Less

    2K91

    如何在Ubuntu上部署Elixir-Phoenix MySQL应用程序

    数据库包装器是数据库驱动程序之上的一个层,允许Elixir程序员使用Elixir代码创建数据库查询,并提供其他功能,如查询组合。 这种分离使模块化应用成为可能。...第二步 - 在应用程序中设置Ecto存储库 Phoenix应用程序通过名为Ecto的数据库包装器访问数据库。数据库包装器以项目中的Elixir模块的形式实现。...此外,它必须包含用于初始化在名为init的函数中传递给数据库适配器的选项的代码。 让我们在lib/myproject目录中名为repo.ex的文件中创建模块。...应用程序不应该有任何可观察到的更改,因为我们没有触及应用程序代码本身。 如果升级成功但无法更新应用程序,请确保您已提交代码并提升了应用程序版本。...在mix.exs中增加应用程序版本,打开mix.exs。 $ nano mix.exs 将应用程序版本增加到适当的值。

    6.1K20

    如何在 IntelliJ 上运行 Elixir 和 Phoenix 程序?

    这是我参与「掘金日新计划 · 8 月更文挑战」的第11天,点击查看活动详情 Elixir 是一门非常强大的 函数式 编程语言,Elixir 社区构建了一个插件,该插件可以在 Jetbrains 的 IDE...打开 IntelliJ 并点击 New Project,选择创建 Elixir 项目,在 IntelliJ Ultimate 版本中还可以选择数据库。...与 Elixir 项目一样,我们需要先进行运行配置,但是这一次我们要选择 Elixir Mix 因为我们要运行 mix 命令,在配置 mix arguments fields 中输入 phx.server...启动项目 浏览器访问 http://localhost:4000 错误解决 Elixir 和 Erlang 插件在安装之后可能出现无法正常运行的情况,可以通过以下方式解决: 如果出现一些无法找到文件或者模块的错误...External Helps Elixir 和 Erlang 插件 创建 Phoenix 项目使用命令 mix phx.new projectName mix deps.get 命令可以安装相关依赖

    1.5K20

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

    两年多的时光弹指过去,Elixir在最近终于发布了1.0.x版本,而Jose本人又频频上镜,到处布道Elixir,我才重新关注起这门语言。...借着这股兴奋劲,我来讲讲自己对Elixir的浅显认知。 惊艳的语法 Elixir的语法在向Ruby致敬,同时透着Erlang和Prolog的灵气。...Elixir的unicode的大小写转换不必再提,我在「颠覆者的游戏」一文已经介绍过。类似的问题都可以这么处理。...比如说我昨天做了一个中文简繁转换的模块:把wikipedia的最新词库导入,使用macro在编译时生成近10,000个按词进行正向最大匹配的递归函数,代码却仅需200行(见 github.com/tyrchen...Elixir自身携带了mix —— 从项目的创建和scaffolding(mix new),编译(mix compile),到测试(mix test),到文档(mix doc),到依赖管理(mix deps.xxx

    1.5K50

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

    所以它们被做进ellie这个docker编排逻辑中时,需要安排好几种语言的运行时和库支持 -- 在development版本的docker中可以看到清楚的逻辑,前后端各维持在一套dockerfile build...postgresql所在容器和ellie所在容器的entrypoint,所有连接数据库初始化的工作都要在这里完成,因为它继承了ENV关于prod的预埋参数所以运行时不会出错,否则比如在非docker构建的情况下,你把mix...这就需要设置SERVER_HOST=ip变量了(这个ip是你部署ellie所在机器的外网IP或被访问IP:4000所在的IP),这个变量不能放在dockerfile中,也不能放在run.sh中(因为这二个文件要做进...docker image中的,而你无法预知要将这个docker image放哪个IP的主机上),故要放在docker-compose.yml中ellie段下在实际开启ellie container时指定...-------- 其实docker就是一个通用的应用和OS的虚拟容器,它可以同时虚拟出我在《DISKBIOS》系列设想中用openvz虚拟出的同时运行的,却又可应用可OS的通用虚拟环境。

    1.2K60

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

    今天,DailyDrip发布了五周的免费内容,向人们介绍Elixir编程语言,并准备使用Ecto和Phoenix构建Web应用程序。...从那里开始,我们正在建立一个具有生产力的应用程序,用于持续优质内容。 如果您只想看内容,您可以跳过,否则坚持下去,我们将看看为什么我们投入大量的时间在Elixir生态系统中。 ?...一些历史 四年前我开始使用ElixirSips,因为我在几个项目中遇到并发和容错问题。通过研究,我得出结论,解决这些问题的是Actor模型,这导致了Erlang和Elixir。...随着这个项目的发展,将会为任何构建生产Elixir应用程序可能遇到的问题提出真实的解决方案。我们希望这有助于个人和团队拥护Elixir及其社区的所有真棒。...Week 3: OTP 在第三周,您将了解OTP。 这是存在的标准库的一部分,可以帮助您更好地模拟并发进程。 它还提供监督树,这是使用Elixir构建容错应用程序的构建块。

    1.8K60

    程序员效率指南

    我使用了几年的vim,又换用过大半年的emacs,为了强制自己习惯emacs,我甚至在bash中把vim alias成emacs。...这里我讲讲vim怎么做,emacs的用户自行脑补。 在进行elixir做TDD开发的时候,我经常需要运行 mix test 来确保我新写的代码或者重构的代码能够跑过已有的test case。...这事做多了也就烦了,因为在vim里总需要输入 !mix test,这个时候,我就会为此定义个快捷键。...mix test 这样,以后需要运行这个命令的时候,直接敲 key + ed 就好。对于elixir,我有这些定义: noremap ed :!...mix compile 因为每个语言都有类似的 dependency,test,compile等任务,如果要定义在全局的 .vimrc 文件里,可以为每种语言附不同的前缀(elixir为 e)区隔

    91860

    构建下一代 HTTP API - 架构

    quenya_install 没有任何依赖,它只是把一个模板项目应用到一个目录下,类似于 npm init, cargo new, mix new。...Hooks(钩子):在 API 的整个处理流程中,开发者可以插入一些钩子函数,以便在特定的上下文完成一些特殊处理。...尽管我们在框架上做了很多公共环节的处理,让开发者只需要撰写 API 接口的 schema 的定义和实现 route action(相当于 handler),但在 UAPI 过去几年的使用过程中我还是看到...Quenya 的架构(下) Quenya Builder 我们回到这张架构图,把焦点放在 quenya_builder 上: ?...我采取的方式是将生成的组件和开发者自己写的组件都揉在一个 pipeline 中,pipeline 的定义用配置文件完成,而这个配置文件,也会根据 spec 创建出来,以后 spec 修改,配置文件中用户没有修改的部分会随

    83020

    Erlang 和 Elixir 介绍

    Fail-fast(速错机制),即尽可能快的暴露程序中的错误。...Elixir 以 Erlang 为基础,支持分布式、高容错、实时应用程序的开发,同时亦对其进行扩展使之借助宏实现元编程,并通过协议支持多态。 José Valim 是 Elixir 语言的设计者。...OTP — 开放电信平台 OTP是Open Telecom Platform的缩写,我第一次也被这个名字搞懵了,心说这应该是一个开发电信应用的平台吧,实际上我低估了爱立信那帮人的实力,这是一个很强大并且很通用的框架...我们每学一样东西都要把握它的中心思想,OTP的中心思想就是把程序的通用部分和业务部分切开,我帮你把通用部分做好,你做你的业务逻辑就行了。...一直在使用OTP,包括mix、Elixir编译器,甚至问题跟踪系统都符合OTP约定。

    2.1K30

    Phoenix 1.3,迈向正确的道路

    当然我们随着系统的发展,把业务逻辑和数据模型抽取出来,放在 lib 下,甚至,用 elixir / erlang 惯有的方式,将它们包装成一个个独立的 app,然而,scaffolding 出来的目录结构还是会深深地影响和制约着你的代码结构...对 unbrella project 的支持 在 elixir 中,umbrella project 是我的最爱。...我不但喜欢把服务通过目录来划分势力范围,更钟情将它们构造成不同的 app 来进一步在运行时界定它们的边界。...在 rails 里,logger 是一个模块,db connector 是一个模块,它们运行在当前代码所在的上下文中。...这种在运行时把系统划分成不同 app 来管理的方式,我非常非常喜欢。它让系统的管理变得简单,边界清晰,解耦变得容易,系统的脉络一路了然。

    1.6K150

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

    过去的三个月里,我畅游在 elixir,ansible,terraform,javascript,少量 python,少量 erlang 组成的一群 repo 中,慢慢领悟到了这种高效工作之道:建立属于自己...下面是我自己的一些微末的经验,抛砖引玉。 把自动化推进到极致 我在 Code is Law 里已经提到了不少用工具对流程做自动化的例子,这里不再赘述。...过去二三十年方兴未艾的互联网革命,上溯到五六十年前一直蓬勃至今的 IT 革命,甚至从第一次工业革命开始,人类社会发展过程中的大部分努力都是在把一切能够自动化的东西自动化。...举个栗子,从上文的数据中我们发现,TTDP / TTCI / TTR 时间过长,其根源都是 dependency resolve 时间很长,于是我们把所有依赖的 dependency 放在了一个 mix-deps...make build:对代码 compile,nodejs 是 webpack,elixir 是 mix compile 等。 make run:在本地运行。

    49520

    「编程语言」编程语言InfoQ趋势报告—2019年10月

    虽然在JVM趋势报告中单独跟踪了Kotlin,但在Android应用程序开发方面,他也看到了类似的早期主流趋势。...在这一点上,我们相信大多数新的web工作是在ASP上完成的。NET核心,但不一定是。NET核心。一些现有的应用程序正在被移植,但大多数不会。WCF在企业中仍然非常重要,但是MS在。...net Core中并不能很好地支持它。我们已经把Visual Basic移到了落后的地方,并且在这一点上,我们真的把它看作是一种业余爱好者的语言。 ?...我们也应该把Python放在这里,可能在早期的大多数。它的受欢迎程度还在持续增长,这主要是由它在数据科学家中的受欢迎程度推动的,我认为我们需要更多地讨论它。...net Core 3将在innovator中回归,而。net Core 2将在较早的采用者中回归。 同样地,我认为c#应该转向早期的主流——老实说,我不确定为什么不是。

    4K20
    领券