【プログラミング研修お題】あなたならどう解く?線のオーバーラップを判定する


自社の勉強会で試したプログラミング研修のコンテンツです。
評判がよかったので手直しして公開することにしました。
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 追記)
解答編を公開しました。実装した後にぜひご覧ください。

(新人必見)【解答編】【プログラミング研修お題】あなたならどう解く?線のオーバーラップを判定する