今日学んだこと

読書感想文とか、勉強した内容とか

その技術、あなたのWebサービスに導入する必要ありますか?

※この記事は、JavaScript使った開発に明るくない僕が挫折した記録であり、本職の方が見れば「お前が使いこなせてないだけだ」と思う可能性を大いに含んだ記事です。
という「初心者だから変な事書いてても許してねっ☆」な免罪符にならない免罪符を最初に置いておきます。

リニューアル作業中の拙作WebサービスProgrammer Profile

www.programmerprofile.net

せっかくリニューアルするんだから、最新技術満載にして、特にUIは流行りの諸々導入してやるぜ!と息巻いてました。

nakazye/ProgrammerProfile at renewal · GitHub

いろんな技術の導入だ!

まずはUIだ!と

  • Coffee Scriptで記載して
  • gulp入れて
  • bower入れて
  • mochaだったりPhantomJS入れてテスト動く様にして
  • BackboneとMarionette入れて
  • あれやって
  • これやって・・・

・・・環境作るだけで1週間くらいだったか。ものすごく疲れたのを覚えてる。

なんでこれらを導入したかと言うと、一言で言えば流行っているからやってみたかった。

で、流行ってるからにはできる、すごいあんなことやこんなことを取り入れて画面作るぞー!と頑張ってたんですが・・・

どんな画面にするか、全然きまらねぇ・・・

BackboneやMarionette入れたし、よーしパパSingle Page Applicationで作っちゃうぞー!と色々デザイン案を出してみたんですが、どれもしっくり来ないんですよね。

モックアップ作ってもしっくりこない。紙に書いてみてもしっくりこない。あれれ?って

そういえばこの技術、どんな画面やアプリにマッチするんだろ

そんな中考えてみた。とりあえず流行ってるからと環境を整えてみたものの、この技術ってなんのために必要なんだっけ?どんなのにマッチするんだっけ?と。

SPAで作るぞーと息巻いてたけど、今作ってるサービスってSPAだと使いやすくなるんだっけ?下手したらライブラリロードに時間かかるだけで逆に使いづらくなったりしね?とか

個人が勢いで作ってる弊害なんだろうけど、なんか流行ってるしで取り入れてみても、それが自分のサービスにマッチするとは限らない。

導入する当初は「SPAでかっちょいーサービス」と漠然なイメージで進めてしまっていた。 実際に、導入した後のイメージを紙なり絵なりモックに落としてみること無しに。

後になって考えれば当たり前なんだけど、この技術で何ができるんだろうワクワク を、いきなりサービスに適用するんじゃなかった。まず技術検証すべきだった と。

これ、個人でやってるからかすり傷だけど、組織でやったら致命傷だよな・・・気をつけよう と思った次第で。

技術的負債という言葉に煽られて

○○は古いよね、これからは○○だよね、とか、まぁよく聞く話。 その言葉に乗せられて、あまり考えずに導入してみるというのは、ぼくがバカなだけで世間的には少数だと思うんだけど、「○○のサービス、変にリッチ化されて使いづらくなった糞が」というのも、またよく聞く話。

表現の幅が広がったことや、もっと簡単なやり方が出てきたのは良いかもだけど、それがサービスにマッチしてるとは限らない。

少なくともProgrammer Profileについては、ページ全部をJavaScriptで何かがにゅっと出てきたり、うにょうにょ動いたりするのは合わないなぁと思った次第です。
部分部分というのは、まぁありなのかもしれないけどね。ちょっといったん仕切り直して考え直します。

まとめ

新しい技術を取り入れる場合、流行ってるからで導入すると悲しい思いする。
自分なりに考えたつもりでも、(SPAとか)キーワードだけ頼りに作ろうとしても悲しい思いする。完成系イメージできてるつもりでも、いざ作ろうとすると全然できてない事が多い。
少なくとも、リリース予定のアプリケーションにいきなり適用してしまうのは危険。

もし、ちゃんとイメージができているとしても、いきなりがっつり作るのは危険だと思う。 例えばReact使ってリニューアルじゃとか新規アプリ作るぜとなったとしても、gulpだbowerだその他○○だをいきなり環境作ると、万が一合わないとなった時に徒労感で終わるんだろうなぁと。 ちょっと作ってみて、それでイケると思えたなら、補助ツールを順に試してみたほうがいいと思う。

そんな、自分への教訓と、リニューアルが遅れている言い訳記事でした。