mmag

ハマったことメモなど

2016-06-01から1ヶ月間の記事一覧

いつのまにか Elixir v1.3.1 が出てた

んですよ。 最近全然追えてなかったんですが、Bug Fix中心かな?とおもったらBug Fix中心でした。 github.com ただ改めて、こんだけの規模のプロジェクトで、issueが10件、プルリク3つって凄いなーと思いました。みなさんいつもありがとうございます。

dockerにitamaeレシピを適用してserverspecでテストする

やりたいことは表題の通り。結果はGitHubに。 docker まずはDocker for Macをインストール。アイコンかわいい。 docs.docker.com 起動したら適当なイメージを落としとく。 $ docker pull ubuntu:xenial gems 適当なディレクトリを切ってGemfileを作成。 # Ge…

MVPアーキテクチャってこうですかわかりません

世の中にはMVCやMVVMやMVPといったアーキテクチャがたくさん考えられています。そういうものに基いてアプリケーションを開発していくと、コードが整理されてメンテナンス性が上がったりテストしやすくて幸せなわけですが、本当に自分の書いているコードはこ…

新卒研修でgitについて座学をした

こんばんわ。 この度、勤務先のGMOペパボで新卒エンジニアの研修担当になりまして、その一環としてgitやGitHubについて1時間ほどお話をしました。 もっとgit from Joe_noh 手元でコミットしてプルリク出すとかはできる前提で、 コンフリクトしたときどうする…

ExUnitで不要なログを出力させないようにする

前回のエントリで、ExUnitには色々と便利なタグがあるということを書きました。 今日は、そのうちの1つcapture_logについて書きます。 使い所 例えばJWTを扱うためのライブラリjokenは、不正なトークンを与えると以下の様なログを吐きます。 21:17:51.385 [w…

ExUnitで特定のテストだけ実行・スキップする方法

特定のテストだけ実行する ファイル単位で指定して実行する mix testに引数を渡すことで、そのファイルだけテストを実行できます。 $ mix test test/my_test.exs 行番号を指定して実行する ファイル単位の指定に加えて、:5のように行番号を指定できます。 $ …

ExUnit.Caseのasyncオプションはfalseがデフォルト

直近の3エントリでは醜態を晒し、もう晒しきったと思いきや別のところで勘違いをしていたことがわかったので書いておきます。 Elixirでテストを書くときはExUnitを使うのが定石となっていまして、以下のような書き方をします。 defmodule App1Test do use Ex…

遅いと思ったときに原因を調べない奴は何をやってもダメ

昨日は遅いと思ったからといってすぐspawnするのはダメとか言っていたけど、もう少し前にやることがあるだろうがオイ、という話。 前々回のエントリで、 こんな遅かったっけ?と思いながらおもむろにspawn と書いた。「こんな遅かったっけ?」と思ったのにそ…

遅いと思ったからといってすぐspawnするのはダメ

昨日は遅いと思ったらとりあえずspawnとか言っていたのが、そうもいかなくなりましたという話。 昨日書いたやつがこれ。Rails Tutorialに沿って書いている。 ## priv/repo/seeds.exs alias PhMicroblog.{User, Repo} defmodule Helper do def insert_user!(n…

遅いと思ったらとりあえずspawn

以前にも書いたように、Rails Tutorialをphoenixでやってたやつをまたちょいちょい書いている。 その中で、seedでダミーのユーザを100人つくるというのがあった。かなり前にseedつくる用のパッケージ書いたなと思い出してメンテしてねぇやべぇとおもったけど…

Elixir 1.2.6がリリースされた

今から3、4時間前に、Elixir v1.2.6がリリースされていました。 github.com バグ修正はとりあえず置いといて、機能追加として以下があったようです。 Erlang 19のサポート RC 2まで来ているErlang/OTP 19をサポートするようになりました。 quote generated: …

はてなブログでElixirがsyntax highlightされるようになってた

さっきのエントリを書いているときに気づいたのだけれど、Elixirのコードにちゃんと色がつくようになっていた。これまでは文法やキーワードが似ているrubyを指定してお茶を濁していたのだけれど、今後はelixirと書けそう。いつからなんだろ。 比べてみるとこ…

Elixir 1.3から使える時間に関するsigil

Elixir 1.3から時間に関する構造体がいくつか定義されました。そのうちの3つ、Date, Time, NaiveDateTimeをつくるsigilが追加されています。それぞれ~D, ~T, ~Nです。 iexで~D(2016-06-04)と打っても、そのまま表示されてしまい何が作られているのかよくわか…

こういうプルリクはどうなんだろうか、という話

github.com github.com github.com github.com よいところ 読みやすくなる スペルミスが無くなる 用語が統一される よくないところ ノイズになる git blameが見づらくなる 大事なプルリクが埋もれる 誰も悪くないんだけどねぇ。 やるなら一気に1コミットで、…

ExUnitのdescribeとnamed setupについてもう少し丁寧に

今日の昼に書いたエントリはとても雑だったので、もう少し丁寧に書きます。 describe describe/2マクロを使うことで、複数のテストケースをまとめることができます。 defmodule MyAppTest do use ExUnit.Case, async: true describe "addition" do test "1 +…

ExUnitでdescribeが使えるようになった

昨日は小言を並べました。 ついさっきElixir 1.3.0-rc.0がリリースされていることを発見しました。 github.com 変更点を眺めていると、気になる一文が!! [ExUnit] Support for bundling tests together with describe/2 なんと!! 試す こんな風に使いま…

hexパッケージの名前付けについて小言を並べる

前回はvalidate_confirmationという関数のことを書きました。 今日はhexパッケージの名前はどうあるべきかについて思うトコロを書いていきます。 なんでこんなことを書こうと思ったかというと、hex.pmに"Naming your package"というセクションが設けられたか…