JavaScriptとMVC
Updated Date: 2024/01/01 14:47
つい最近ようやく重い腰を上げてJavaScriptでMVCっぽい感じのNode使ったアプリ作成をやってる。
内部で使っているのは、React.js、Electron、Sequelize、SQLite3とか。
ReactはReduxとかRouterとかいろいろあるけど、
いっぺんにやろうとして全く取り掛かりの術が無かったので、
理解の及ぶ範囲でとりあえずReactだけを使って何とかしようとしている。
ずっとJavaScriptでのサーバサイドアプリ作るのを避けていた理由の1つは、 その特異なMVC構造にある。
僕の知ってるMVCってのは、Ruby on Railsや一般的なJavaのWebフレームワークのように、 HTMLに拡張ライブラリの特定記法が追加され、 それとなく継承・ポリモーフィズムでオブジェクト化されたクラスたちを、 importしたりincludeしたりしてModel(DAO)やDIであんまりオブジェクト意識せずにデータ取り扱ったり、 画面遷移はxmlやroutes.rbに任せたりしてて、 それはもう馬鹿の一つ覚えのように用意された規約に沿ってやればよかった。
でも、JavaScriptは違う。
それはまさにアマゾンのジャングルに単身で乗り込むかの如く深淵怪奇な迷宮への誘いであり、
まだJavaEEの黎明期において様々なライブラリをどう組み合わせて、
何をすればベターなMVCのオブジェクト指向プログラミングができるかを考え続けて結局わからず、
Seamを選択したはいいけどやっぱわかんねぇという、あの頃(7年前くらい)の感覚に似ている。
それからしばらくJava触り続けてようやく業務アプリにおいては中級レベルになったんだけど、 まだまだクソである。GoFなんて2つくらいしか覚えてないし、使いこなせない自信がある。 ましてや、技術変遷の速いJavaScript界隈で同様のスピード感で成長しても、 確実に時代に置いて行かれることも自明である。
そもそもJavaScriptだとAngularJSをやったほうが僕のようなSIer出身者は理解しやすいんだろうと思うし、 業務アプリとの親和性も高いんだろうなと思う一方、 独自に進化するJavaScriptのサーバサイド・フロントエンドの世界を、 一人の技術者として知っておきたいし学びたいという気持ちが強いので、 何もしないで時を待つというのは、自分のちっぽけなプライドが許さない。
そんな感じで未開の地を自分なりに頑張って新しい世界を切り開いていこうとしている。
もちろん最終的には業務に活かして、自分の糧にしたいと思っている。
重要なのは学習のコストや効率性が、
その後の人生プランやスキルマップにダイレクトに影響を与えるかどうかだと思う。
30歳を超えるとその辺のトレードオフに非常に敏感になっちゃう。
年だなぁと感じるので、できる限り思考や気持ちはチャレンジ精神にあふれ、
若々しく青いままでいたいと思う。
(それが成功者の共通点だと僕が勝手に思っているからだ)