Open10

【Elixir】DashbitのプロダクトコードがOSSとして公開されたのでコードリーディングしてみる

koga1020koga1020

joseさんがtwitterでアナウンス。

  • dashbit社はOSSに集中していくためにBytepackというプロダクトの開発を止めるよ
  • そのBytepackというプロダクトのコードをOSSとして公開するよ

的なことが書いてありそう。

koga1020koga1020

ぱっと見面白そうなところ

koga1020koga1020

へぇーこんなforの書き方が。ネストしてるのを一発でreduceできるのは良き

    for {package_id, deps} <- package_id_to_deps,
        %{repository: nil, package: dep_name} <- deps,
        reduce: %{} do
      acc ->
        dep_id = Map.fetch!(names_to_ids, dep_name)
        Map.update(acc, package_id, MapSet.new([dep_id]), &MapSet.put(&1, dep_id))
    end

https://github.com/dashbitco/bytepack_archive/blob/79f8e62149d020f2afcc501592ed399f7ce7a60b/apps/bytepack/lib/bytepack/hex.ex#L40