• 不写括号是对的,程序员就是匹配括号白了头。

    习惯了就好了。

  • Emacs 闲谈 (一) 引言 at 2018年09月06日

    喜欢你写的风格,简洁不繁。不知你用 spacemacs 么?

    配置调整窗口大小一直没成功。可否写一下这个呢?

  • 2018 学习 Elixir 的最佳方式 at 2018年09月06日

    这个最佳看你怎么定义了吧。

    这个适合追星族,因为他只有这个版本。而且可以破除神秘感,高手写程序也差不多,也会犯错。 可贵的是他分享了函数分解的思路。我是受益匪浅。

    他是最权威的,这毫无疑问吧。

  • 我的理解,不一定对。模块相当于类,Struct 是数据,两个结合起来就可以,比如 100 个订单就是一个 List,有一百个 Struct。

    Process 是并发单元,只在需要并发的部分使用,也是有代价的,关系相对复杂些。

  • 流行的说法叫第一性原理,软件的第一性原理就是低耦合。对象的问题就是增加了耦合,不是一点点。 任何两个方法之间都是通过数据耦合的,你承认吧。

    对象流行的原因是比较而言好理解一些,缺点也是明显的,程序越大越严重,写多了自己就明白了吧。

  • 可以这样吧,可以重复绑定变量。

    order = %{order | status: 'paid'}

  • Struct 是不是状态?

  • 没有状态能搞开发么?只是处理状态的方式和思路不一样。

    正好今天看到这个写的 elixir 一年体会 https://medium.com/@lorenzo_sinisi/what-i-have-learned-working-1-year-with-full-time-using-elixir-51efd4c1f66

    不安利了。

  • 好的,我去社区。你的软件真不错。

  • 看来已经得到认同了。 不用等 Rails 修改,自己可以这么干,有什么不好么?

  • 感觉代码很清楚。

    def signup_changeset(user, params \\ %{}) do
       user
         |> cast(params, [:email, :password, :password_confirmation])
         |> validate_required([email, :password, :password_confirmation])
         |> validate_format(:email, ~r/@/)
         |> validate_length(:password, min: 5)
         |> password_and_confirmation_matches()
         |> generate_password_hash()
     end
    
     # ...
    
     defp generate_password_hash(changeset) do
       password = get_change(changeset, :password)
       hash = Comeonin.Bcrypt.hashpwsalt(password)
       changeset |> put_change(:password_hash, hash)
     end
    
    defmodule Myapp.Test.Schema.UserTest do
      use Myapp.DataCase
      alias Myapp.Schema.User
    
      test "rejects if passwords don't match" do
        bad_pass = %{
            email: "[email protected]",
            password: "asfga67585ASDF",
            password_confirmation: "asfga67585AS"
          }
        changeset = User.signup_changeset(%User{}, bad_pass)
        refute changeset.valid?
      end
    
    end
    
  • 2018 学习 Elixir 的最佳方式 at 2018年09月04日

    课程在pluralsight 网站🔗,另外,vs code 的网站,进社区页面🔗,底部有链接。

  • 红字提示我这个插件没安装,输入这个命令也没用。怎么个情况?

    :call dein#install(["indentLine"])

    还有一个粘贴的时候很慢,在处理什么。 另外,vscode 能识别语法❌,这个 vim 能办到么?

  • 你是使用的什么插件管理器呢?

    目前可以提示 def 这样的,但是某个模块比如 String 的函数就无法提示出来。

    SPCUpdate 更新过了共 49 个插件,没报错。问题依旧。

  • l 是Language Specified,不对吧。

  • 我怎么列出插件呢?如何启动安装插件呢? 有红色提示我 indent 插件没安装。

  • 是吗,那我再看看问题在哪里。

  • 好啊,exs 是 elixir 的标准脚本。目前还不能提示函数名字,不知道是否容易实现,这个是最需要的。

  • 可以了,很好。后缀 ex 就可以了,为什么 exs 不行呢?

  • Elixir 的一些想法 at 2018年09月04日

    好的,这就做。谢谢!

  • 谢谢,更新了 8,发现插件能安装了,可是语法彩色没效果,怎么回事呢?

    toml 有彩色,elixir 没有,elixir layer 的插件都安装了。

    我有空来写个入门介绍,SpaceVim 不错,配合 Vim8,基本是安装好就能用。

  • 好像还是不行,vi 版本有要求么?我是 7.4

  • 没有 init.toml,我自己建立一个也没有效果。我先看看你的简书。文档我相信是全的,但一般人没耐心去看大文档。

  • Elixir 的一些想法 at 2018年09月03日

    如果条件不具备就暂缓吧,还是有个过程,水到渠成。 mipha 不错。可能的话,你先运营吧,别人才好参与啊。就是一个域名和阿里云的费用吧,还缺什么跟大家提吧。

    我现在还不能完全看懂 phoenix 代码,今天试验 Ecto+sqlite 也通不过,困难重重。

  • 谢谢回复。我在 init.vim 添加两行:

    [[layers]]
    name = "lang#elixir"
    

    没有效果。 fvd 报错 E121,未定义变量 g:_spacevim_global_config_path

    补充: 我使用了一下,感觉还不错。我安装的时候插件没完我把它终止了,后来删除掉.vim 重新安装,没出现安装插件过程了。 其他快捷键都可以,也能列出目录。

    mac 10.12.

    希望能出个简单教程,说明常见的一些操作,方便入门。 插件是用的什么管理,如何列出和安装插件呢?是 vim-plug 么?好像 PluginInstall 不能用。

  • 我想试试看 Elixir layer,怎么操作呢?没看明白。

  • Elixir 的一些想法 at 2018年08月26日

    生态是可以改善的吧。Elixir 代表的是未来,吸取了各个语言的长处。当然不是说别的语言没有未来,呵呵。

    有一个数据,github 上的贡献者 Elixir 有七百多了,Node 是两千多,不知道能否说明一些问题。java 和 python 似乎都不在 github 上。

    Java 听说增加了函数型的特征,不过 Elixir 选择了函数范型,我支持这个做法。

    《Programming Elixir》那本书感觉写得不好,内容组织得不好,反而重点没讲清楚。 而且过于炫技,用了一些难度大的例子,让初学者有挫败感,退而止步。

    应该用一些简单的例子,重点讲清楚并发编程的基础就是 Process。

  • Elixir 的一些想法 at 2018年08月26日

    兴趣相当重要,一起加油。可以吸取思想,用到工作语言中。

  • 这是一个好的改进,符合潮流的数据不变。

  • Elixir 的一些想法 at 2018年08月24日

    GenEvent 似乎文档上淘汰了