tonocchoのメモ

軽い気持ちで

大体2〜3時間

最近Spring-Bootの勉強をしています。と言ってもこれだと大雑把すぎてよくわからないと思います。なので、勉強をするにあたって、何かしらのWebサービスを作ってみよう、というのが最初にありました。

これを最終的に公開するか、それとも仲間内で細々と使うものにするかは置いておくとして、これをゴールに据えて勉強をすることにしました。

まずは気になっていたSpringから

と行っても、Springというものを自分は触ったことがない、というか、OSS系のフレームワークを触った経験がほとんどないので、まずはOSS系の何かしらのフレームワークを使ってみようと思いました。

最後にいた会社でSeasar関連のフレームワークをいくつか触りましたが、もう新しくなることもないようなので、他のにしよう、と思った時に、割とNZの求人で見かけるSpringに手を出して見ることにしました。

と行っても、いきなりあれもこれもというようにするとわけがわからなくなるので、以下のような順番でやって見ることにしました。

  • DBのスキーマをとりあえず定義する
  • Spring-BootでJPAをやって見る
  • Spring-BootでRestfulAPIを作って見る

まずは、とりあえずこの3段階をやって見ることにしました。各ステップをやるのに各々大体2〜3時間というところでした。というのも以下のステップを踏んでいたからです。

  • 情報収集(これがとにかく長い)
  • 書いて見る
  • 確認して見る

でまぁ、あらあらではあるものの達成しました。なので、自分が「xxしたい」というのを考えた時に、「xxできた!」ということ、そして「xxできたけど次はこれをしたい!」というところまでやった感触を得るには大体3時間でした。

ひとまずコーディングはここまでにして次のステップ

で、コーディングの感触はなんとなくつかめてきたので次は以下のことをしました。

  • テスト用、本番用とプロファイルを切り替えずに開発してテストできる環境を整える
  • TDDをできる環境を整える
  • ドキュメント周りをどうにかする

まずは、最初のやつはそれほど難しわけではなかったのですが、環境構築(Linux落としてきてVMに入れて、DB作って)を含めて2時間程度、TDDの環境もSpringのドキュメントを参照しつつ作って、これがちょっと手間取ったものの3時間程度でした。未だになんで動き出したかは理解できてないんですけどねorz

最後にドキュメントですが、最初はとりあえずJavaDocを書いてましたが、RestfulAPIのドキュメントって、どう書くのがいいのかな、と思って探していたらSwaggerというのがあることを知りました。

最初Swaggerはドキュメントの書き方のことかと思っていたんですが、どうやら書いたドキュメントをベースにAPIを手で動かしたりとかできる、と言うところまでができるようです。

で、今やっているSpringでSwaggerを使う方法を調べて、試しに使ってみましたところ、これは2時間くらいでした。ただ、Swaggerは、自分が書いていないHTTPStatusCodeまでドキュメントに記載していました。これはSpring側でやってるのか、Swaggerでやっているのか、そしてやっているのなら、これらのHTTP Status Codeについても記載すべきなのか、これらのコードはRestfulAPIを作るのであれば必ず考慮すべきものなのか、というのがよくわからなくなりました。

ソースを消したくなるタイミング

で、まぁ、こうやってわからないことをやるのが大体2〜3時間かかる、自分の場合、と言うことがわかったのですが、同時に、「ソース全部けしてやり直そう・・・」って思うことが結構あることもわかりました。なんでこうリセットしたがるのかは不明なんですが、どうやら「次にやりたいこと」と言うのが2つ以上になるとなるっぽいです。

ある程度慣れてわかってくると、この2〜3時間でできることがどんどん増えて行くんでしょうけど、勉強ちゅうはこのくらいの亀の歩みがちょうど良いかもしれません。

今の「次にやりたいこと」は、「RestfulAPIのあるべき姿(用はベストプラクティスね)を知りたい」というのと、「Spring-Bootで開発したアプリは、どうやって運用するのかを知りたい」の2点です。2つのことは同時にはできないので、どちらかを選んで、もう一つは後回しにするんでしょうけど、やっぱり一からやり直そう、と言う思いがだんだん強くなります。よくないですね。

何でこのエントリーを書いたか

愚痴りたかったからです。おしまい。