自社の勉強会で試したプログラミング研修のコンテンツです。
評判がよかったので手直しして公開することにしました。
https://github.com/5zm/case-1-line-is-overlap
お題を簡単に説明すると「2つの線が重なる(オーバーラップする)かどうか判定する」処理を実装するものです。
JUnitのテストクラスも用意しているので、参加者は未実装のメソッドを実装するだけです。
実装した後に以下の観点で他の人を実装を見て議論したりします。
- ロジックの分かりやすさ ⇒ 保守性
- ステップ数(実行行数) ⇒ 保守性、性能(フットプリント)
- 平均処理時間 ⇒ 性能(レスポンスタイム)
src/main/java/com/example/training/LineUtils.java
package com.example.training;
public class LineUtils {
public static boolean isOverlap(Line l1, Line l2) {
// TODO : implements here
return false;
}
}
お題の詳細は以下のスライドを参照ねがいます。
著者の回答は次回の記事で公開したいと思います。
コメントにみなさんの解答を頂けると幸いです。
(2018/12/9 追記)
解答編を公開しました。実装した後にぜひご覧ください。