Masteries

技術的なことや仕事に関することを書いていきます.

2022-01-01から1年間の記事一覧

カンファレンスの中の人

この記事は, 「はてなエンジニア Advent Calendar 2022」の21日目の記事です. qiita.com 昨日の記事は id:Windymelt による「Scala記事を書き続けている話」でした. blog.3qe.us 「裾野がプログラミング言語を支えている」, いい言葉だなと思いました. さすがめる…

CPANモジュールの開発リリース(Development release)について

この記事は, Perl Advent Calendar 2022の7日目の記事です*1. qiita.com 昨日は, MacOlinさんの「perlでタイムスタンプを変更したい、Time::Pieceを使って」でした. qiita.com CPANモジュールの開発リリース(Development release)について CPANモジュールを書…

小ネタ: Perlモジュール探訪

Perlで開発しているときに, 「このモジュールについて調べたいな...」と思う時があると思います. 皆さんどうしていますか? metacpan metacpan.org ブラウザからmetacpanでモジュールを検索してドキュメントを見る, というのがまあ鉄板という気がします. ハイラ…

相談の「型」

チームメンバーと1on1をしていた時, チームメンバーとの相談についての話になりました. 例えば, ある機能を実装するとき, A案, B案, C案があって, それぞれメリデメなどがあって, どれにするべきか悩ましい... という時がありますよね. そういう時, (内容な…

デバッグ用のコードが残っているとGitでコミットできないようにする(改)

だいぶ前に, こういったエントリを書きました: papix.hatenablog.com 一方で, こちらのエントリにこういったブクマコメントを頂いていました: デバッグ用のコードが残っているとGitでコミットできないようにする - Masteries文字列リテラルの中とか関係ない…

小ネタ: Test2でテストを書く時に, hashやarrayにundefがあることをU()でテストすると, なんか意図しない感じになることがある

またまたまたまた小ネタです. PerlのテストモジュールであるところのTest2において, U() は undef であることをテストします. is undef, U(); # => ok is 1, U(); # => not ok では, ハッシュや配列にundefがあることをテストしたい時はどうするといいでしょ…

小ネタ: Perlで条件に応じて配列の中身を割り振る時はList::MoreUtils#partが使える

メモです. こういう配列があったとします: my @array = ( { type => 'foo', value => 1 }, { type => 'bar', value => 2 }, { type => 'foo', value => 3 }, ); この時, typeによって@arrayの中身をそれぞれ別の配列に割り振りたい, と思う時があります. # …

小ネタ: Perlのhashとデフォルト値

関数の引数をhashで受けて, 未定義の場合はデフォルト値を設定したい... という場合があるとします. まあだいたい, defined-orを使って次のように書くのではないでしょうか: sub myfunc { my %args = @_; return $args{foo} // 'default'; } myfunc(foo => '…

Class::Accessor::Typed 0.03_02 で Type::Tiny 対応を試しています

papix.hatenablog.com 先日, 0.03を出したClass::Accessor::Typedですが, Type::Tiny対応を試した 0.03_02 をリリースしました. Development releaseなので, cpanm とかでインストールする時はバージョンを指定してインストールするようにしてください: cpan…

Kichijoji.pmで2回くらい話していました

...が, そういえばブログエントリ書いてなかったので, 発表資料を紹介しておきます. Kichijoji.pm #28 Kichijoji.pm #29 特に「Kichijoji.pm #28」の「ワーケーションに関する考察」については, 自分らしい(旅行が趣味なエンジニアらしい)発表になったんじゃない…

小ネタ: Perlのsplitの第3引数

超〜〜〜小ネタです. Perlにはsplitという関数がありまして, 次のように使えます: my @list = split(/,/, "a,b,c"); # @list = ('a', 'b', 'c'); 第1引数に正規表現を, 第2引数に文字列を渡すと, 第2引数の文字列を第1引数の正規表現にマッチした部分で分割…

Class::Accessor::Typed 0.03をリリースしました

Class::Accessor::Typedの0.03をリリースしました. 前回の0.02は2019年のリリースなので約2年ぶりですね... papix.hatenablog.com 今回の0.03では, optional オプションの追加をしました. 次のように使えます: use N; # optional なので, `rw2` は指定しなく…

Class::Accessor::Typedで独自の型を使う

Class::Accessor::LiteやClass::Accessor::Lite::Lazyのように使えて, 型の恩恵を受けられる, Class::Accessor::Typedというモジュールを昔書きました. metacpan.org 詳しくは, 昔Kichijoji.pmで紹介した時に使った資料をまとめたものがあるので, こちらをご…

小ネタ: Perlのメソッド呼び出しをModule::Spy風にモックする

Perlでテストを書いているとき, 例えば外部のAPIを叩くメソッドをモックしたい, という気持ちになることがあります. 選択肢としてはTest::Mock::GuardやModule::Spy, 最近ならTest2::Tools::Mockあたりが選択肢になるでしょうか. metacpan.org metacpan.org …

小ネタ: Gitでコミットメッセージ書いてる最中にコミットを取りやめる

ちなみに vim の終了方法としては :cq というのもあり、これを実行すると vim が終了コード 1 で終了します。git commit をキャンセルする場合に使えます。— mattn (@mattn_jp) 2019年6月26日 だいぶ昔のツイートなのですが, さっき知ったので忘備録的にブロ…