OTOBANK Engineering Blog

オトバンクはコンテンツが大好きなエンジニアを募集しています!

はじめてのミューテーション解析 / Mutation testing

こんにちは! 今月から 2 名のエンジニアの仲間が増え、歓迎のために東京に来ている @riaf です。暑くて死にそう!

本日もまた社内勉強会のレポートでございます。

いま PHP 界隈では、mutation testing が熱い! というタイトルで id:sasezaki 先生がお話してくれました。

というのも、近年カンファレンスでも mutation testing がテーマになっている話も増えているということや、数年前にWEB+DB PRESS で PIT が紹介されるなど、界隈で話題になっているという流れがあるそうですが...

さて、ミューテーション解析って何なんでしょう。ミューテーション解析 (mutation testing) とは、テストスイートの完全性を判定する手法の一つで、簡単にいうと「わざとバグがある状態のプログラムに変更して、そのコードに対するテストがちゃんと失敗するかどうか」を確認することで、テストが足りているかを測定しようということですね。

この辺り、ミューテーション解析というかミューテーションテストというか、Mutation analysis というか Mutation testing というかでやや異なる意味を持つみたいですが、今回のお話では「ミューテーション解析 / Mutation testing」が広く認識されているということで、まあ、詳しい話がきになる方はぜひ調べてみていただくということで何卒…。

では早速、PHP におけるミューテーション解析を試していきましょう。 今回使用するのは Infection - Mutation Testing framework というツールです。

続きを読む

【社内勉強会】イケてるコードを書きたいんじゃぁ~~~ _(:3」∠)_

こんにちは、エンジニアのs4kr4です。

今回の勉強会は、keima氏による

「イケてるコードを書きたいんじゃぁ~~~ (:3」∠)

です。 資料はこちら
※ 内容はあくまでも登壇者の一意見です

イケてるコード

みなさんは「楽しくプログラミング」していますか?

エンジニアの本職はコードを書くことなわけですが、せっかくなら「楽しく」「イケてる」コードを書きたいですよね。

どんなコードが「イケてる」のか、というとまたいろいろ意見が分かれると思いますが、今回挙げられたポイントは以下の4点。

  • 優れた設計
  • 少ないコードで多くの解決
  • テクニック
  • 困難な課題を解決する

優れた設計

「どんな設計が優れているか」というのは、時代によっても案件の規模によっても違ってきます。
案件の規模によって最適なアーキテクチャを選択できるように、普段から(雰囲気だけでも)様々なアーキテクチャに触れておくことが大事です 💪

少ないコードで多くの解決

同等の動作を短いコードで実現できるなら、積極的にそうするべきではあります。
しかしワンライナーに近いような短すぎるコードになると、今度は可読性などの観点で良くないコードになってしまいます。

一連の処理に名前をつけて関数に切り出すなどして、コードの情報量(エントロピー)を適切にコントロールできるようになりましょう👨‍🏫

テクニック

いわゆるハック的な話ではなく、どんな知識でも思わぬ場面で役に立つことがあるよ、というお話でした。

keima氏の実体験として、カメラアプリ開発時の端末の発熱問題への対策に、それ以前に読んだモバイルゲーム開発時の熱対策に関する記事が参考になったということがあったそうです。

様々なものに関心を持ち、情報を収集していれば、いつかどこかで使える日が来るかもしれません。

困難な課題を解決する

まだ自分も他人もやったことがないこと、業界内でも先進的なこと、経験したこともない大規模な案件などなど……
仕事をする中で、こうした困難にぶち当たることは度々あるでしょう。
ではどういった心持ちでこのような問題に望めば良いのでしょうか?

まず多くの人は、こうした問題にはできるだけ立ち向かわない方が良いとのことでした。
もし問題が解決できたとしても、その過程でいたずらに肉体や精神を消費してしまうのはあまりよくありません。

それでも問題に立ち向かっていきたい・立ち向かう必要がある場合は、それ一辺倒の生活を過ごすことはせず、必ず逃げ道を作っておきましょう🏃🏃🏃
また、その課題を達成した暁には、必ずそれに見合った評価を得られるように外堀を固めていきましょう。

チームにそういった雰囲気が醸成されていけば、もっともっと仕事が楽しくなり、気軽にコードレビューもできるようになり、プロダクションにイケてるコードがガンガン乗るようになるのかもしれません(最後無理やり繋げた感)


以上です。次回の記事もお楽しみに〜👋

京アニは人生【社内勉強会】

みなさんこんにちは。ねっしーです。

関東は先週梅雨明けし、すっかり暑い日が続くようになりました。
家と会社を行き来するだけで汗だくになり、HPが削られていきます...。
この夏はさらにリモートの日が増えそうだなぁと思いました。

夏といえば、夏アニメがスタートしてもう1ヶ月くらい経ちましたね。 今期は自分がチェックしてる作品は少なめで、Dr.STONE とダンベル何キロ持てる?くらいです。

なんでこんな話をしてるかと言うと、今回の勉強会のテーマがズバリ 京アニについて だからです。担当は岩Dさんです。 今日の資料は こちら

京アニとは

株式会社京都アニメーションは日本でも有数のアニメ制作会社です。代表作の『涼宮ハルヒの憂鬱』や『けいおん!』は社会現象になる程ヒットした、圧倒的な作画、アニメ作りに定評がある会社です。

制作体制

京アニは演出、作画、仕上げ、美術、撮影、デジタルエフェクトまでを全て自社で行う元請制作の制作体制を取っています。エンジニア業界で言えばtoBの自社開発ですね。

ITで大規模なシステムを開発するのに2次請け、3次請けと関わる会社が増えていくように、アニメ業界も「動画はA社、編集はB社」のように下請けに頼る構造となっているようです。そんな中、京アニはほとんどの作品を自社で制作しており、スタッフとのコミュニケーションが密に取れることが特徴だそうです。

良さ

京アニの良さというと、やはり精巧な作画を思い浮かべる人も多いと思います。 これは『響け!ユーフォニアム』という作品なのですが、アニメのシーンと実際の風景を合わせるとピタリと重なるのが分かるでしょうか。

アニメにおける聖地巡礼という言葉を定着させたのも京アニだといいます。何気ない日常の風景がキャラクター達が動き回る特別な風景に変わる、そんな夢を見させてくれるのも京アニが沢山の人に愛される理由の一つだと思います。

おすすめの作品

京アニが制作した作品としては元請けだけでも以下があり、岩Dさんはほとんどの作品を見てこられたようです。

f:id:nes_801:20190805134252p:plain

特に「これは見てほしい」という作品は『CLANNADシリーズ』と『響け!ユーフォニアム』、『ヴァイオレット・エヴァーガーデン』だそう。ユーフォニアムは吹奏楽をテーマに扱っているのですが、学生時代に吹奏楽をやっていた岩Dさんから見ても、楽器の作画や演奏時の動きの再現度が尋常じゃないそうです。

中学3年の頃(2003年)からアニメを見始め今に至る岩Dさんにとって、まさに 京アニは人生 (元ネタ)と言っても過言ではないんじゃないでしょうか。

最後に

先日の事件につきましては、被害者の方々・遺族の方々に心よりお悔やみ申し上げます。
京アニには、作品を通じて数多くの感動や楽しさをもらってきました。すぐにとは言いません、また京アニの作る作品を見れる日が来ればと願っています。