この10年のプログラマーの開発環境の変化

この10年の開発環境の変化

ども、エンジニア大家です。

「10年一昔」とはよく言ったもので、2010年当時と今を比べると結構懐かしさと驚きを感じてしまいます。

というわけで、今回はこの10年でどんな変化があったかを簡単に記載してみました。

この10年のプログラマーの開発環境の変化

主だった点を以下記載しました。

フロントサイドの要求が高くなった

  • レスポンシブル
  • JSライブラリを使ったUI

私はバックエンド側の実装者なのでかなり偏った視点かもしれませんが、上記が実装に影響して難しくなったと思ってます。

レスポンシブルはHTMLとCSSを貰って当て込むだけなのですが、

時々確認が漏れてスマホ画面だと表示が崩れてました、みたいなことが多いです。

あと、フロント側の作業者も勘違いしていた状態でバックエンドにソース渡して混乱、みたいなことも。

意思の疎通がより必要になったと思います。

あとJSのライブラリは本当に勘弁してほしい時が多々ありました。

「便利だから」ということで指定されることがありますが、ライブラリの使い方から学んで実装しなければなりません。

また、JSライブラリを使った場合の動きが本来やりたかったことを細部まで実現できるのかはやってみないとわからないことも多くいです。

99%実装できたけど、表示が少し不自然で使用者の誤解を招くということでポシャったこともありました。

フロント側の装飾が増える分バックエンドの処理が増えた

初期表示だけでなく、ajaxによる非同期の表示なんかも明らかに増えました。

処理が増えるから負荷を考慮した工夫もしなくてはなりません。

キャッシュや表示用のDBテーブル(集計結果だけをバッチで定期的に蓄積するような仕組み)も以前は後から対応していましたが、

今では最初から考慮して実装するのが当たり前になりました。
(なのでその分手間と時間がかかります、テストも大変です)

サーバーが物理ではなくなった

amazonAWSを筆頭に自社でデータセンターを契約して物理サーバーを運用することがなくなりつつあります。

もちろん既存サービスはそのまま継続しているかもしれませんが、

新規開発するサイトはどこかの企業のインフラサービスを利用しています。

これによってインフラエンジニアの負担が減りましたが、

スタートアップ企業だとインフラエンジニアが不在なことも多く、

アプリ開発エンジニアがインフラも兼ねるので負担増になったみたいな感じもします。

ローカルで開発環境をたやすく構築できる

つい4年ほど前は現場にジョインした最初の2,3日はPCのセットアップに割り当てられていました。

ローカル開発環境の構築が割と時間かかっていたからです。

ここ1、2年はDockerでサクッと構築できちゃいますので、

1つの環境だけで良ければPCセットアップも含めて半日もかからないですね。

汎用フレームワークを必ず使う

10年前は各企業が伝統的に「オレオレフレームワーク」と呼ばれる代物を使っていた事がありました。

今では汎用フレームワークを使うのが一般的ですね。

求められるSQLのレベルが上がった

当然といえば当然ですが、ボトルネックになることが多いSQLを厳しくレビューされます。

SQLをループの中で複数発行しようものならダメ出しの嵐です。

SQLの発行回数は少なく、さらにexplainでインデックスを適切に使っていること、(ケースによりますが)応答に2s以下であること、
などを開発後のレビュー時にクリアしてることを提示する必要があります。

なので、開発終わっててもSQLで苦戦するなんてこともしばしばあります。

タスク管理ツールでほぼ100%管理するようになった

10年前もRedmineを使っていたこともありましたが、そこまで徹底していなかったような気がします。

今はBacklogなどのツールを使うことが多いですが、

ソースコードのレビューツールを兼ねる、

もしくは外部のソースレビューツールと連携できる、

というのが最大のメリットだと思います。とても管理しやすくなりました。

仕事中はチャットでやり取りするようになった

以前は隣や向かいの席の人とチャットするのは「失礼」という認識がありました。

顔を上げて声出せば良いのになんでわざわざチャットするんだ、みたいな。

けど今は逆にチャットしないで声かけるほうが失礼に値するのかもしれません。その方の集中を切ってしまいますので。

忙しい時は一切会話しないで職場を去る日もあるくらいです。。

まとめ

  • フロントサイトの要求が高くなった
  • フロント側につられてバックエンドの処理も増えた
  • サーバーが物理ではなくなった、かつ他社のサービスを使うようになった
  • ローカル環境構築がたやすくなった
  • 汎用フレームワークを使うようになった
  • 求められるSQLのレベルが上がった
  • タスク管理ツールでほぼ100%管理するようになった
  • 仕事中はチャットでやり取りするようになった

次の10年は!?

10年前でさえ「時代は進んだなぁ〜」なんて思っていたので、次の10年も色々と変化することでしょう。

けど今の時点で全く想像ができないですね。

個人的には「脳波を直接読み取ってプログラミング」するツールが欲しいですね。

タイピングがカッタルイので。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です