習得したいスキルについて

システムを開発する上で、是非、習得したいスキルをご紹介します。

今、何を学べば役に立つのだろうとお考えの方は、参考にしてください。

MEANスタック

Mongo、Express、Angular、 Node.jsの頭文字からMEANスタックと呼ばれています。

以下のようなスキルを身につける必要があります。ブラウザ、サーバー、データベースと、全てをカバーすることになりますので、習得に時間がかかりますが、いずれも習得しておくべきスキルです。

クライアント(=ブラウザ上)Angularと言うフレームワークです。TypeScriptを使いますので、型とオブジェクト試行を意識したプログラミングが必要です。
JavaScript、jQueryなどで実装する方法もありますが、フレームワークに乗っかると、OSやブラウザの互換性をある程度担保してくれるというメリットがあります。
サーバー側Node.jsとExpressと言うフレームワークです。様々なnpmパッケージが配布されていますので、いろいろと組み合わせることでレベルの高いプログラムを書くことができます。
Expressは自由度が高くいろいろなことに対応できますが、人のスキルに大きく左右されると言うデメリットがあります。
今、サーバー側で学ぶのであれば、NestJsと言うフレームワークをオススメします。
データベース側少し前までMongoDBが流行っていました。RDBMSでは扱うことが難しい非構造データを扱うのが得意です。
最近では、PostgreSQLなども非構造データ(JSON)を扱えるようになりましたので、これから学ぶのであれば、RDMBSをオススメします。

Web API

システムとシステムでデータ連携するために使います。昔はCSVファイルでやりとりしていました(もちろん、今でもありますが )

REST APIを使うと様々なシステムと連携できます。REST APIはバージョン管理が面倒だと言われており、最近ではGraphQLと言うAPIを使うケースも増えています。

ORM

データベースを扱う時に、コードファーストで管理しましょうという時に使います。メリットは、テーブル、カラムを追加するときに、コードで書きます。それを実行するとデータベースの変更が行われます。

このアプローチを採用すると、バージョンアップするときにデータベースの変更を後から確認する必要がなくなるため便利です。

TypeScriptで行くなら、TypeORMがオススメです。

クラウド

プログラミングが完成してもそれを動かす器がないと役に立ちません。簡単な構成であれば、Azure、AWSを使って稼働させるスキルは必要です。この部分のスキルを持っていると、何ができるのか、何はできないのか、これはやって良くて、これはやってはいけないということが分かりますので、開発するシステムの質が向上します。

アジャイル

システムを開発するときに、要求定義、設計、プログラミング、テストと順に行わずに、機能単位でこのサイクルを高速で回し、動くものを評価しながら、必要なものを必要な工数で作っていこうという考え方です。

どういうものを作るか考える、作る、テストする、評価する、振り返ると言うことを繰り返して進めて行きますので、チームがどんどん成長していきます。また、動くもので評価するため、必要なものを提供できるようになります。

こういうことを一気に学ぶのは難しいですが、どれも必要なスキルです。頑張って習得しましょう。