Clojure Cup雑感

Clojure Cup 2014 に参加していたので、そのまとめ。

雑感

  • Clojure Cupの「事前に作るものを決め」ておいて、「コーディング実装作業のみ48時間でやる」というルールは、前者部分があんまり好きではない、という事が分かった
    • 個人的には「今回のお題はこれです」と開始時点で発表されて、それに沿う何かを作る、みたいな方が好きなようだ、自分は。
  • 「設計等はしてもよいが、開始前にコードを書くのはcheatとみなされる」というルールも地味にいやらしい
    • 前述の通り、「開始してから今回のテーマが明らかになる」みたいな要素は特にないので、やろうと思えばいくらでもcheat可能なのも微妙
    • とりあえず事前に、JSである程度のコードは書いてみたものの、きちんと書く気にならず、どうにもきちんとした設計まで進まなかった
      • js-objをcljsのmapの代わりに使って、本番では使わないコードを書いて、それで問題ないか確認する、という作業がどうにも不毛に感じられて…
    • しかし、今思うと、事前に、モジュール間/サバクラ間でやりとりするデータ仕様ぐらいは先に決めておくべきだった
      • 今回、自分が担当していた部分の進行状況は予定より悪く、結構な部分をチームの人に手伝ってもらってしまった
  • 締切直前には睡眠不足等で頭が回らなくなるので、「完成タグを付ける前に確認すべき項目」を、事前にリストアップしておくべきだった
    • 受け取ったデータのvalidation等。普段なら忘れずにやっていても、徹夜明けだと忘れる
  • コメントを書くのに英語縛りにしたのもよくなかった
    • 後から見て意味が分からなかったりした
    • 後半になって、頭が回らなくなってきた時につけたコメントが特にやばい
    • とは言え、こういうコンテストで日本語でコメント書くのもそれはそれで微妙…英語力をつけるしかないのか
  • 腰が痛くなった
    • 普段より椅子に座る時間がずっと長かった為か。なかなか痛いのが取れない
    • 椅子に座る時間が長くなるようなら、良い椅子を用意しなければならないが…
      • 調べたところ、イトーキの椅子がよいようなので、ヘッド部付きのスピーナがほしいが、なかなか高価
      • http://blog.inouetakuya.info/entry/20110405/1302002014 は一通り読んだ。中古の、旧型番の奴ならイトーキの椅子でもかなり安くなるようだが、探すのが面倒。前述のURLに「試座は必須」とあるが、これも面倒…
    • 椅子は諦めて、座らずにすむ方法を考える方向で対応したいところ
  • せっかくgithubなんだから、issueをもっと活用すべきだったかも
    • 今回はissueを全然使わなかった
    • イベントが一通り終了した後に、判明している不具合を直すのに、某社の社内gitlabでissue作りまくって対応した。コンテスト中でもこれやっとけばよかった?
      • しかしこれまた、issueを英語で書くのが手間という例の問題がある。日本語で書くのもちょっと

もし次回に参加するなら、開始前までにやっておいた方がよさそうな事一覧

  • 扱うモノのデータ仕様の確定
  • モジュール間/サバクラ間でのコミュニケーション仕様の確定
  • 完成タグを付ける直前にチェックすべき項目の一覧の洗い出し
    • 不正データ入力チェック、DoS対策、その他セキュリティ的な安全性の確認など含む
    • 各項目には優先順位度もつけておく事(時間がないなら優先順位の低い項目はスルーできるように)
  • スポンサー提供の各種のサービスの利用上限の確認
    • 作成するもののジャンルによっては、あっさり利用上限を突破する