首页
ARTS 07 - 使用 supervisor 配置 ngrok 内网穿透为守护进程

ARTS左耳朵耗子 提出来的一个打卡任务。每周一个 Algorithm,Review 一篇英文文章,总结一个工作中的技术 Tip,以及 Share 一个传递价值观的东西!我希望这个事可以给大家得到相应的算法、代码、技术和影响力的训练。

这是我的第七周打卡。这周在做文档的在线预览功能时用到了微软的 Office API,需要它能够访问到文件的地址,所以得在公网上才能使用这个功能。在本地调试的时候,就不太方便了。所以想到了使用 ngrok 来做一个内网穿透,并把它添加到操作系统的守护进程中,就可以一直使用了。

🤖 Algorithm

反转链表

📖 Review

A Collection of Tips for Elixir’s Interactive Shell (IEx)

这篇文章讲的是关于 Elixir 里的 Iex 的一些小技巧。在日常使用中,掌握这些小技巧往往能让我们事半功倍。

目前接触比较多的有以下几个Tips:

  • 获取帮助

    Elixir 在 iex 中内置了语言的帮助文档,这种做法十分棒。开发者不用跳到外部去翻阅各种资料,直接敲一个命令就可以查看语法了。比如: h Enum 就可以显示 Enum 模块的语法。

    image_1efqt1ljo1pa1cvn9k81rvi15o29.png-128kB

  • 重新编译项目或模块

    # 重新编译整个项目
    iex> recompile
    # 编译具体的模块
    iex> r MinitwitterWeb.PostController
    
  • .iex.exs 文件

    在项目中新建一个 .iex.exs 文件,里面可以写一些 aliasimport 语句,在 iex 中就可以直接使用了

    alias Minitwitter.Accounts.User
    alias Minitwitter.Accounts.Relationship
    
    iex> Relationship
    Minitwitter.Accounts.Relationship
    
  • 在 iex 中加载 module 或 script

    使用 c/1 命令可以在 iex 中编译文件

    iex> c "lib/issues.ex"
    iex> c "./elixir_book.exs"
    
  • 多行写法

    在命令行中,通常写一行再按 Enter 键就会直接执行了,对于多行的写法我们可以借助括号来实现

    iex(16)> ([1, [2], 3]   <-- Works fine when surrounded by parenthesis
    ...(16)> |> List.flatten()
    ...(16)> )
    [1, 2, 3]
    

另外有一些之前没有接触过的,但感觉使用也蛮频繁的:

  • 列出模块中所有的宏和函数

    使用 exports 或者 module_info

    iex> exports Minitwitter.Accounts
    iex> Minitwitter.Accounts.module_info
    
  • 列出模块中所有的类型

    iex(4)> t Enum <-- Lists all types in Enum module
    @type acc() :: any()
    @type default() :: any()
    @type element() :: any()
    @type index() :: integer()
    @type t() :: Enumerable.t()
    
  • 获取历史命令的值

    如果上一个命令的结果没有赋值给一个变量,那么我们想获取它就比较麻烦了。 iex 提供了 v ,我们可以使用它来获取历史命令的值。

    iex(5)> Enum.reverse([1, 2, 3])
    [3, 2, 1]
    iex(6)> reversed = v(5)
    [3, 2, 1]
    iex(7)> reversed
    [3, 2, 1]
    

💡 Tip

正则表达式位置匹配——匹配两个特殊符号中间的内容

正则表达式在开发中偶尔会用到,所以平时这方面的知识比较欠缺。每次想写一个正则匹配,都是各种查资料,这次干脆花点时间重新学习了一下,主要是位置的匹配。

💎 Share

分享文章:使用 supervisor 配置 ngrok 内网穿透为守护进程

这周做了一个使用 Office 在线预览文档的功能,需要 Office 的在线预览 API 能够访问到文件的地址。在本地调试的时候,可以使用 ngrok 来做一个内网穿透,就不用上到公网上去测试了。