Mainly Devel Notes

Twitter, GitHub, StackOverflow: @ovrmrw (short hand of "overmorrow" that means the day after tomorrow)

スライドショー「大型フロントエンド開発におけるTypeScriptとDDD」の感想

今回はスライドショーの感想です。

大型フロントエンド開発におけるTypeScriptとDDD

実際の"先端系Web系エンジニア"(勝手にそう呼んでいる)が現場でどのように試行錯誤しているかを知ることができる内容です。

僕は以前にも書いていますがSIerなので、そもそもWeb系とかフロントエンドとかの話は専門外なのですが それでもやはり「時代の最先端を行く業界が現在どういう状況であるのか」というのはとても興味があります。

このスライドショーは共感できるところあるし、新しい知見もあるし、そして苦悩しながら今があることも伝わってきました。 そして今回は共感できるところを掘り下げていきます。

共感ポイント

大規模開発では型がないと厳しい。(Babelでは限界がある)

TypeScriptを使いましょうということです。
これはもう大真面目な話、型無しでどうやって大規模開発するの?と逆に聞きたくなります。
1ファイルで完結するプログラムで上から下までストレートに流れる、みたいなモノならいいと思うのですが、 いくつものファイルを行ったり来たりしながら処理が進行するタイプのプログラムで型が無いと、 この引数には何が渡されているのか?とか何を渡すべきなのか?とかわけわからなくなると思うんです。
事実TypeScript登場以前のJavaScriptは正にそんなカオスな感じで、だからWeb系エンジニアってのはみんなハッカーみたいな人達なんだろうなあと思ってたんですね。

でもこの前スライドショーの作者である はちさん とツイッターで会話した感じでは、Web系エンジニアは僕が思っているほど TypeScriptを含めて最先端の技術や知識を使いこなしているわけではないし、むしろそれを避けるようにしている人達が結構いるという印象を受けたので、 やはりどこの業界でもふるい落とされる層というものは一定割合存在するのだなあとしみじみ感じました。

フレームワーク(流行)の変化は受け入れる。変化に強いアーキテクチャを築く。

Web系ではよくフレームワークとかライブラリとかって言いますね。これはもう流行という側面もあるので、何を導入するのが最善か というのは正直わからないと思うし、後になって導入を決めた人を一方的に責めるようなことも良くないと思います。
僕の意見としては、おまえら全員ハッカー級なんだろうからプロジェクト毎に使い捨てるつもりでやれよと言いたいぐらい。

でも毎回使い捨てるとさすがにしんどいので、どうするかというとスライドショーにもある通り、どんな流行に対しても適応できそうな 「変化に強いアーキテクチャを築く」ということが大事です。アーキテクチャのところは"仕組み"と置き換えた方が個人的にはわかりやすいかも。
確かダーウィンも言っていることですが、強いものが生き残るのではなく変化に適応できるものが生き残るのだ、と。

TypeScriptを使うのもそうだし、IDEのような開発環境の支援を受けるのもそうだし、DDDのような枠組みを整えることもそうだし、 そろそろWeb業界というカオスにも秩序をもたらしましょうよ、みたいな。うまくまとまらない。


僕らSIerの世界というのは、とりあえず秩序らしい秩序は最初から存在していて、逆に言うと秩序先行なのでWebのような創造性はあまり無いんです。
いわゆる開発環境だとかフレームワークだとかライブラリだとか一通り揃っていて、それを使って出来る事をやるというのが主な業務なので、 だからこそ最近の若い人はつまらないと感じたり敬遠したりするんじゃないかな。

そんな中でも僕はわりと勝手にNode.jsやらPythonやらから直接DBを叩いたりしてやりたい放題してるRoughなのですが、特にWebの世界は移り変わりが激しすぎて そこで頑張っている人達が羨ましいと思う半分、かわいそうと思う半分。

ただね、僕のようなアラフォーSIerおじさんでも何も知らないところから TypeScript, Angular2, FalcorJS, Python, 機械学習 のような世界にガンガン足を踏み入れているので 今Web業界にいて新しいものを吸収することに躊躇している人達はこれから苦労しますよ、がんばってください。