これからのサーバーサイドエンジニア
これからのフロントエンド( #エンジニア )はこうなる、みたいな話をする人がいる 一方でこれからのサーバーサイド(エンジニア)は~みたいな話をする人はほぼいない
理由はたぶん次のような内容に集約される
言い出す人が居ない
言っている人は実はたくさんいるけどありきたりなことすぎて目立たない
自分はあんまりフロントエンドエンジニアになる気はない
JavaScript/TypeScript などを書かないという意味ではない
ていうか今の Web 開発で JavaScript/TypeScript に関わらないことは不可能
ということでほそぼそとサーバーサイドで生きていこうとぼんやりと考えている
そもそもなぜサーバーサイドが目立たないのか
根本的に目立たない
一般的に言ってエンドユーザーの目につかない
目についたときは障害発生時とか、下手すると謝罪が発生するような内容
「動いて当たり前」なものを動かし続ける職掌
Web 開発においてサーバーサイドのアプリケーションで実現するべきことが削られつつある
Web ブラウザでできることが増えた
パブリッククラウドでできることが増えた
あくまで一般論
ドメインによるとか、業務要件によるとか言い出すとキリがないので
サーバーサイドでやるべきことは別段増えてはいない
なくなりもしないと思っているが、減る傾向は変わらないだろう
一方で求められる品質は向上の一途を辿っている
Web におけるセキュリティ、プライバシーに関する意識の向上(代表例: EU の GDPR)
データの保存、閲覧範囲、権限等の取り扱いは非常にセンシティブ
ぶっちゃけ自分が書いたアプリケーションでユーザーのセンシティブな情報を全て管理するのはかなり夢物語
認証情報(パスワード、OAuth のアクセストークンなど)
個人情報(メールアドレスとか住所とか)
機密性の高い情報(クレジットカード番号だとか決済関連の情報、個人の思想に関わる情報、病歴など)
あとドメインによってはセンシティブな情報になる、といったイレギュラーなことも発生する
自分のアプリケーションのドメインで必須の情報のみ管理するべき
そうでないものは外部に委託するなり、マネージドサービスに任せるなりしないと自分で自分たちの首を締めていく
以上を踏まえるとこれからのサーバーサイドエンジニアに求められていることは次のようなことではないかと思う
なんらかの言語でアプリケーションのコードを記述できる
ビジネスロジック
コードの設計を考えるのもこの辺に入る
パブリッククラウド/PaaS などを組み合わせて自分たちのアプリケーションに組み込める
特に事業会社にとってメリットを増やせる、あるいはリスクを減らせるような技術・サービスの選定ができること
アプリケーション全体のアーキテクチャを考えられること
組織のフェーズなどに合わせて考えられるとなお良い
なんでもマイクロサービスアーキテクチャにすればいいというものでもない
これに加え、次のような内容を追加で持っておくと差別化になる気がする
RDB などのパフォーマンスチューニング・レプリケーションの設計ができる
機械学習に詳しい
フロントエンドに詳しい(この API を使うページは自分が作りますよ!てな感じで)
この程度のこと絶対誰かが言っているんだよな、という結論になってしまった
やっぱり誰か書いてた