Web開発の案件を獲得するために何を勉強すればよいのか?
Web開発に必要なものはプログラミング言語、フレームワーク、データベース、クラウドプラットフォーム、etc…
各分野においても多くの選択肢があるのにそれらを組み合わせるとなるとその数は膨大になります
そこでWeb開発のトレンドからオススメしたい5つの技術を紹介します
フロントエンド
Web開発は大きく分けるとフロントエンドとバックエンドの2つに分けることができます
- フロントエンドとは?
-
フロントエンドとは、直接ユーザーの目に触れる部分のことです。WebサイトやWebアプリケーションなどでユーザーが文字を入力したり、ボタンをクリックしたりする部分や、バックエンドのソフトウエアと直接やり取りをする部分のことを指します。クライアントサイドとも呼ばれ、Webブラウザ側でプログラムを実行しています
- バックエンドとは?
-
バックエンドとは、サーバーサイド(Webサーバー側)やデータベースのシステムなど、ユーザーの目に見えない部分のことです。ユーザーが入力した内容などのデータ処理やデータベースへの保存、検索結果の出力といったことを行います。ユーザーからは見えない後方の部分の処理を担っていることが、バックエンドと呼ばれている理由です
フロントエンドはHTML、CSS、JavaScriptの3つで構築することができますが、近年ではJavaScriptフレームワークを使うのが主流になっています
3大JavaScriptフレームワークと呼ばれているのが次の3つです
- React(Next.js)
- Angular
- Vue.js(Nuxt.js)
この3つをGoogleトレンドで調べてみると次のようになります
Reactが他に大差をつけて人気があるようです
次に案件情報を見てみます
レバテック | upwork | |
React | 3,566 | 4,739 |
Angular | 1,260 | 1,109 |
Vue.js | 3,019 | 680 |
日本ではReactとVue.jsが同じくらいですが、海外ではReactが圧倒的に人気です
最後にStack OverflowのDeveloper Survey 2022から開発者が次の質問に答えた結果を見てみます
過去 1 年間に大規模な開発作業を行ったWebフレームワークと Webテクノロジは どれですか?また、来年はどの WebフレームワークとWebテクノロジで作業したいと考えていますか?
Node.jsはサーバーサイドのJavascript実行環境として使われているイメージが多いですが、クライアントサイドとしても利用することができます。その場合でもReact等のフレームワークを利用したりするので今回の調査対象から除外しています。ちなみにExpressはNode.jsのサーバーサイドのフレームワークです
ここでもReactがAngularとVue.jsの倍以上の人気があることが分かりました
これらの結果よりフロントエンドはReactをオススメします
バックエンド
フロントエンドはReactを使うとして、バックエンドはどのような構成にすればよいでしょうか
Reactを使った案件ではどのような組み合わせで開発を希望しているかを調査してみました
プログラミング言語
プログラミング言語の上位6つは次の通りです
TypeScript | 44% |
Ruby | 19% |
PHP | 16% |
Java | 16% |
Go | 12% |
Python | 11% |
- TypeScriptとは?
-
TypeScriptとは、JavaScriptを拡張して作られたプログラミング言語です。2014年頃にMicrosoftによって開発・発表されました。大人数での開発でもエラーを防ぐように設計されており、JavaScriptの持つ問題点を解消し、コンパイルするとJavaScriptのコードに変換されます。そのため、TypeScriptからJavaScriptライブラリが使用できるなど、高い互換性を持ちます
TypeScriptはJavaScriptフレームワークと組み合わせて使用されることが多く、Reactを使うのであればTypeScriptも使えるようにしたいです
それ以外の言語についてはどれも大きな差異はないため、Stack OverflowのDeveloper Survey 2022にて開発者が次の質問に答えた結果を参考にします
過去1年間に大規模な開発作業を行ったプログラミング言語、スクリプト言語、およびマークアップ言語と、今後1年間で使用したい言語はどれ ですか?
Pythonより上位のJavaScript、HTML/CSS、SQLは除外しています
日本ではまだまだJavaやPHPの案件の方が多いですが、海外ではPythonの方が多かったりします
今話題のAI(人工知能)や機械学習にも活用できる言語でもあるため、これらの結果によりプログラミング言語はPythonをオススメします
データベース
データベースの上位6つは次の通りです
MySQL | 24% |
PostgreSQL | 11% |
MongoDB | 6% |
Oracle | 2% |
DynamoDB | 1% |
SQLServer | 1% |
MySQLかPostgreSQLの2択、次点としてMongoDBが気になるところです
Stack OverflowのDeveloper Survey 2022にて開発者が次の質問に答えた結果を参考にします
過去1年間に大規模な開発作業を行ったデータベース環境と、今後1年間で作業したいデータベース環境はどれですか?
こちらの結果でもMySQLとPostgreSQLの人気があることが分かりました
案件数としてMySQLの方が多いのでこのままオススメしたいところではあるのですが…
無視できない点として同調査の中で最も愛されたデータベースとしてPostgreSQLが選ばれているのです
これらの結果ととある理由によりデータベースにはPostgreSQLをオススメします
とある理由は次のクラウドプラットフォームでご説明します
クラウドプラットフォーム
クラウドプラットフォームの上位4つは次の通りです
AWS | 6% |
Heroku | 1% |
Google Cloud Platform | 1% |
Microsoft Azure | 1% |
案件情報にクラウドプラットフォームの内容まで記載していないことも多く、数値としては低い結果となっています
これだけだと判断できませんので、Stack OverflowのDeveloper Survey 2022にて開発者が次の質問に答えた結果を参考にします
過去1年間に大規模な開発作業を行ったクラウド プラットフォームは どれですか?また、今後1年間でどのクラウドプラットフォームに取り組みたいですか?
AWSが半数を超える結果となりました
ですが、実はAWSはオワコンではないか?という声も出ていたりするのです
現在はAWSのシェアが大きく、急に他のクラウドプラットフォームに切り替えるということもできないと思われますので案件自体がすぐに無くなるということはないでしょう
そこで注目を集めているのがマルチクラウドです
- マルチクラウドとは?
-
マルチクラウドとは、複数のクラウドサービスを組み合わせて、最適な環境を構築しようとする運用形態を指します。昨今では、デジタル庁の「ガバメントクラウド」施策がマルチクラウド環境を想定しており注目を集めました。
特定のクラウドプラットフォームに依存した構成よりは他のクラウドプラットフォームと連携しやすい構成にしておいた方が良いでしょう
ここでデータベースの件について説明します
2022年にGoogleより新しいデータベースであるAlloyDB for PostgreSQLが発表されました
- AlloyDB for PostgreSQLとは?
-
AlloyDB for PostgreSQLはPostgreSQLと互換性を持つエンタープライズグレードで、標準的なPostgreSQLと比較して、トランザクションで 4 倍、分析クエリで最大 100 倍の性能を発揮するデータベースです
AWSのAuroraに相当するサービスでAuroraがMySQLもサポートしていることから、AllowDBもMySQLをサポートする可能性は高いです
ですが、AWSのRedshiftのFederated Queryという他のデータベースにリンクする機能では、MySQLがサポートされたのはPostgreSQLのなんと1年後だったのです
MySQLよりPostgreSQLの方が早くサポートされる傾向があることからデータベースにはPostgreSQLをオススメしました
クラウドプラットフォームとしてはAWS以外が拮抗していることからどれが良いと言えない状態です…
他のクラウドプラットフォームを意識しつつ、依存しすぎないようにAWSを活用していくのが良いのではないでしょうか
まとめ
オススメしたい5つの技術をまとめると次の通りになります
- フロントエンド:React+TypeScript
- プログラミング言語:Python
- データベース:PostgreSQL
- クラウドプラットフォーム:AWS(条件付き)
Web開発はオンライン消費者のニーズと期待に応えるために常に進化しています
そのために長く活用できる汎用的な部分とアップデートしていく部分を見極めてこれからの開発ライフを過ごしていきたいですね