OJTと題して実践投入させといて放置プレイさせといた結果がコレだよ!


とある新人の混沌魔書 (すてきなコード*1

class RozenSelectionChangedListener implements ISelectionChangedListener
{
    private TableViewer table;
    
    (略)

    @Override
    public void selectionChanged(SelectionChangedEvent event) {
        ISelection selection = event.getSelection();
        if(selection instanceof ISelection){
            RozenType rozentype = (RozenType) ((TreeSelection)selection).getFirstElement();
            if(rozentype instanceof RozenType){
                table.setInput(modeltype);
            }
        }
    }

}


// 一方別の所では…
// なお、dollMap = Map<RozenType, List<Doll> >
public Color getHogehogeColor(Object element) {
    RozenType rozen = (RozenType)element;
    if(rozen instanceof RozenType){
        if(dollMap.containsKey(rozen)){
            if(dollMap.get(rozen) != null){
                return Display.getCurrent().getSystemColor(SWT.COLOR_WHITE);
            }
        }
    }
    return null;
}


…というような感じのコードが、ウチの製品にありました…。 しかも、色んな所に似たようなコードががが。(同じ型同士で if(instanceof) してる等々…)



当然出荷されています、ははは。



当時の開発していた方々は4人全員別の開発に回り、全然関わってなかったおいら1人が今のメンテナです、ハハハ。



HAHAHA



HAHAHA



HAHAHA


言いたいこと

  • OJTと言い張って投入しても良いけど、実際の所は誰もコードの確認なんてするわけない。放置プレイになるよ? それでもいいの? > すべてのえらいひとへ
  • なもんで、コード書いたことない人を投入すると、品質低下は確実だよ?それでもいいの? > すべてのえらいひとへ
  • ついでに、こういうコード量産されてたら修正で一杯一杯で追加機能の導入とか出来ないよ? 時間的リソース確保できないよ? それでもいいの? > すべてのえらいひとへ
  • 成長させろ? 専用の時間確保してくれないじゃねーか! 何言ってるんだ! > すべてのえらいひとへ
  • ウチの所は大丈夫? さぁ今すぐコードを確認するんだ! > すべてのえらいひとへ
  • た す け て

*1:ただし、書いた当時が新人