Web開発チームの安達(@UAdachi)です。
一年前は PHP 書いていましたが、ここ最近は糖質制限DDDおじさんことかとじゅん(@j5ik2o)さんの下で Scala をいっぱい書いてます。 かとじゅんさんは色んな人に糖質制限を教えたりもしていますが、社内では Scala もちゃんと教えてくれています。
今日はその一部をご紹介と、Scala の課題を一緒にレビューしてくれる人募集のお話です。
まずは二分木データ構造を実装してみよう
社内の教育を何から始めるか悩みましたが、いくつか課題を出して、それをレビューするスタイルで始めてみました。
まず、最初にやった課題は二分木データ構造の実装です。
どんな二分木かというと、NodeにはLeafとBranchがあります。Leafは値をひとつ保持し、Branchはひとつの値と左右にNodeを保持します。また、各Nodeの値の大小関係は左 < 右となる単純なデータ構造です。 このデータ構造に対して、要素数や最大値・最小値などを返すメソッドや、指定した値を保持するNodeを検索するメソッドなどを実装する、簡単な問題です。
詳細はこちらを参照してください。
こんな課題をみんなでワイワイレビューしていると、気付きが多かったりしますね。このような課題を通して、ケースクラスの便利さやScalaの強力なパターンマッチに惹かれていきました。
ChatWork社でやってるプログラミング課題
現状 Scala をバリバリ書いてるチームと、いずれ Scala でコードを書くチームでレベルの違いがかなりあるのですが、みんな少しずつレベルアップしてきています。 今取り組んでる課題はこんな感じです。
ScalaのList型を1から自分で実装してMyList型を完成させてみましょう。
(この他にも、ワードカウントなどの問題も公開しています。)
プログラミング課題に挑戦したいエンジニア大募集中です
かとじゅんさんと一緒に食事(肉)をしながらコードレビュー会しませんか? 前回、ビズリーチさんと行わせていただいた勉強会で、社外の方とレビューをワイワイやってとても楽しかったので、またやってみたいです。
参考)前回の勉強会(ビズリーチ竹添さん)
第二回ChatWork × BizReach合同Scala勉強会を開催しました! - break the code!!
上記のMyList型課題を解いてご応募ください。 弊社の社員と一緒に、それぞれが書いたコードについてレビューしましょう。 東京と大阪の2会場を予定しております。日時・場所は応募状況を見て改めてご連絡します。
Scala のコードを一緒に語りたい方は↓から応募してください。
締め切り:4月13日(月)
弊社のレビューではマサカリが飛んできたりはしないので、ぜひ一緒に美味しいお肉を食べながら、楽しくコードについて語りましょう。