hitode909の日記

趣味はマリンスポーツですの日記です

Perlアプリケーションの依存モジュールの更新についてWEB+DB PRESS vol.120のPerl Hackers Hubに寄稿しました

id:hitode909です。今日発売のWEB+DB PRESS vol.120のPerl Hackers Hubにて、Perlアプリケーションの依存モジュールの管理手法や、アップデートを自動化するupdate-cpanfileの紹介について書いています。

Perl Hackers Hubは2010年から続く連載で、Perlを書いてて困ったときには幾度となく助けてもらったものです。
今回、改めて初回から読み直していたのですが、業務で必要になりそうな知識はだいたい書いてあり、他の言語からPerl界に入りたい人向けの入門情報としても有用そうです。言語の詳細などの本を読むよりは、エコシステムなどを含めた、その時どきのホットな話題を追っていける方が効率よくキャッチアップできそう。
今回の寄稿で、Perl Hackerの仲間入りを果たせたことを、うれしく思います。

文章を書く

文章を書くのは好きで、日記は毎日書いているのですが、商業レベルのアウトプットをしたことはなく、今回雑誌に寄稿するのも初めての経験でした。
本の形をした物体は作ったことがあったのですが、ブログの過去記事から流し込んで終わりだったので、誤字脱字があったり、そもそも収録されるコンテンツも夢日記なので、何の意味もない文章が含まれていたり、というクオリティで、手売りで数十冊さばけたくらいでした。
blog.sushi.money

今回雑誌用の記事を書いてみてわかったのは、原稿を編集の方がガリッと直してくださるということで、意味は変わらず研ぎ澄まされて意味の通った日本語になっていて感動しました。
あの(inao記法)のinaoさんに編集していただけて、自分の書いた日本語をinaoさんのコミットで上書きしてもらうことができます。ぜひみなさまも執筆の声がかかったら体験してみてください。

update-cpanfileについて

update-cpanfileは7月ごろから作っているPerlの依存ライブラリのアップデートツールで、以前このブログでも紹介していました。
blog.sushi.money

普段開発しているマンガビューワや、社内のPerl製プロダクトの依存モジュールアップデートに使っていて、しばらく安定し使えているということもあるので、今回雑誌でも紹介しました。
ついでに、なぜこのようなツールが必要であるかとか、Perlのアプリケーションの依存モジュールを手で更新したいときはこうするよ、みたいな手順も紹介しています。
自動化ツールにすべて任せてしまうと、もし壊れたときに手動で直せないと困ってしまうので、自動化手順を知る際には手動での手順も知っておくと良いように感じます。

update-cpanfile利用者の声

社内の利用者から声を集めてきたので紹介します。

アップデートすべきライブラリが多数あっても、1個ずつPull Requestをくれるので、changesをみてマージできて便利

もともとツールを作ろうと思ったきっかけも、アップデート対象を見つけるところが面倒、というものだったので、ツールでうまく解消されてよかったと思います。

(フロントエンドのライブラリアップデートを怠りがちなのと比べて)意外とレビューが負担にならずにマージできている

フロントエンドとちがって、サーバーサイドでは実行環境は1つであり、クロスブラウザ対応とか考えなくていいので気楽なのかもしれません。とはいえ、サーバーサイドが壊れたときにはマスタデータを破壊してしまうリスクもあるので、どっちもどっちかもしれません。

Pull Requestにコメントを付けていたら翌日Pull Requestが作り直されてコメントが消えたので悲しかった

社内ではpeter-evans/create-pull-requestを毎日動かす構成なのですが、このcreate-pull-requestの設計思想として、実行したら必ずやりきる、force pushしてでもPull Requestづくりを完遂させるという方針なようです。
上書きさせたくないときはactionの実行を避けるベし、というコメントがあったので、ワークフロー側で調整するとよさそう。時間があったらちょっと試してみます。

List::Utilがいつのまにかアップデートされてて sampleが使えるようになったのが最高にうれしかった

perl本体のバージョンを上げなくてもライブラリを上げていけば便利になるのでおもしろいですね。perl本体を上げられるに越したことはないですが…。

cpanfile自体のアップデート方法は知らないが、更新作業が自動化されていてBreaking Changeの有無のチェックなどに専念できていて助かっている

今日発売のWEB+DB PRESSを読んでください!

買ってください!!!

今日発売です。いますぐ本屋に急ごう!!


この記事ははてなエンジニア Advent Calendar 2020の24日目でした。
前日はid:pokutunaでした。微妙なエスケープ処理については不便に思うことがあったので便利そう。ポクツナさんはこういう身の回りの不便なものを直して使われていてかっこいいなと思います。僕も昔は遊びでChrome拡張を作っていたけどことごとく飽きて壊れてしまった…。明日はid:yutailang0119です。
blog.pokutuna.com

そして、この記事はPerl Advent Calendar 2020の24日目でもあります。
前日はid:anatofuzでした。awesomeかどうかは状況によるよな〜と思うので難しい。サービス規模が大きければ問題を分割して、複数のコンピュータ上で協調して動けばawesomeだし、小規模なソフトウェアなら、1ファイルでぺろっと動くとawesome、という話だと思うのですが、世間のawesome界はそのあたりどう向かってるんでしょう。そんな疑問を投げかけたところで、こちらのカレンダーでは、明日はid:papixです。
anatofuz.hatenablog.com


それぞれお楽しみに!WEB+DB PRESS買ってください!

gihyo.jp