こんにちは。スタートアップテクノロジー採用担当の永井です。
スタテクでは毎月メンバーを集めて、月の売上や組織、事業の状況などを共有する目的で全社会を行っています。
その後、こんなかたちでケータリングをとって懇親会をしています。ですが、今回エンジニア発信で懇親会中のイベントとして、いかにおしゃれなコードがかけるかを競い合うおしゃれコード選手権を開催したのでご紹介します!
おしゃれコード選手権とは?
事前に設定した課題に対して、「おしゃれ」なコードを書いてきて、審査委員長のPerl大好きエンジニアでもある代表菊本が、独断と偏見を元におしゃれなコードを決定するという形式を取りました。
ちなみに、制約条件は「実行コマンドに ruby を含むこと」のみ。おしゃれの定義は「あなたがおしゃれだと思ったらそれはおしゃれです。」という自由度の高いルールです。
課題は定番中の定番であるFizzBuzzと、最大公約数を求める2問を用意しました。
FizzBuzz
標準入力から得られた数字まで、3の倍数はFizz、5の倍数はBuzz、3と5の倍数の場合はFizzBuzz と出力してください。
入力は 1 から 100 までの 整数を対象とします。
最大公約数
標準入力から与えられた2つの値の最大公約数を出力してください。
ただし、Integer#gcdは使用不可とします。
また、今回は優勝賞品としてGoogle Homeが送られることに!外野からも「アレクサ!」「Hey Siri!」などよくわからない盛り上がりを見せていました。
今回は上記のルールを元に6名の参加で雌雄を決する事となりました。
本日は3名のコードをピックアップしてご紹介します!
見た目のインパクトで勝負!
https://gist.github.com/meriy100/f55eca50ea87d7cbbea60e1afba23496
ちなみにこのコードを書いたエンジニアは当日風邪のため欠席・・・。しかしながら発表時に大変盛り上がり、特に女性陣から大変好評だったことを申し上げておきます。
本人談のこだわりポイント
ハートが多ければいいだろうと言う安直な考えでやりました.
ただ, 好評だったようなので次回があればよりハートを増やしてみたいですね
委員長コメント
ハートで書いた文字列でメソッド定義する方法や💖、💓、💔など、絵文字をメソッド定義して使うアイデアは面白いかったですし、見た目もオシャレでしたね。ただ本人がいなくて解説がなかったのと酔った状態でこれを読むのが難しかったのでもう少しシンプルめだとこの会にはぴったりだったなかと思います。
熟練のワンライナー。
https://gist.github.com/masakikku/16b4227396b9890ff64ef8301dd4f171
こちらは審査委員長お気に入りのコード。Perl出身のエンジニアならではの強いこだわりが散りばめられています。
本人談のこだわりポイント
今回くらいの要件だと今まで割とワンライナーで書いていたので、プログラムファイルにしなくても良いでしょう??みたいな心持と、実行オプションがperlと同じだったので何となくとっつきやすくてやりました(-eしか使ってませんが)。
あと、審査員の年齢的にこういうの好きでしょう?
委員長コメント
個人的にはワンライナーかつ変数の短さなどこだわりが細部にまであって好みでは有りましたが、ファイルがテキストファイルだったのが残念でした。シェルで実行形式にしていれば結果は違っていたかもしれません。
細部に至るまでのPHPerへのこだわり。
https://gist.github.com/s-tammy-kato/c5fe429e2e0aea148ab48891ce526f59
本人談のこだわりポイント
「短さこそ正義」派なので、プロダクトでは書けないような簡素なコードを目指しました。
文字列の結合は「+」より「<<」のほうが速いという話を聞いたので採用しています。
また、特に意識していませんでしたが、ファイル名が「osha」じゃなく「osya」だったり「FizzBuzz」を「fzbz」と略したり、ところどころ古き良き日本人PHPer感が出ているので、令和はもっとリーダブルな命名を心がけていきたいです。
委員長コメント
簡潔で分かりやすい、「良いぺちぱー」のコードでした。
Perlっぽいワンライナーと最後までどちらを優勝とするか悩みましたが、最後はファイル名から伝わってくるぺちぱー感が決め手になりました。
気になる優勝者は?
最後はPerl VS PHPという、書き手のバックグラウンドの面白さ重視で悩んでいたようですが、最後の最後は「osyacode_fzbz.rb」と、ファイル名にまで至る繊細なこだわりが認められ見事優勝となりました!おめでとうございます!
委員長である菊本の最終的な感想としては、「自分のおしゃれの定義について考え直したいと思います」という反省の弁で幕を閉じました。
いかがでしたか?
今回はスタテクの技術を楽しむ文化をご紹介させていただきました!現在メンバー主導で勉強会なども行っているので、それらの発信も続けていこうと思っています!
ご興味ある方いらっしゃいましたらぜひエントリーください!