使っている技術について

はじめに

本エントリーでは、弊社ITコンサル部の開発で使用している主な技術について、選択理由を中心に説明します。
・TypeScript
・React
・Amazon Web Service(以下AWS)

TypeScript

弊社ではメインのプログラム言語にTypeScriptを選択しています。その理由は、以下の通りです。
・ブラウザ・サーバで動作する。
・型システムを使える。
・AWSにおけるInfrastructure as Code(以下IaC)に使える。
 補足 AWSにおいて、Serverless Frameworkを用いてLambdaをリリースするとき環境構築用のコードとして、TypeScriptを選択出来ます。TypeScriptを選択した際の利点は、環境構築用のコードにおいても型や文法チェックが働く点にあります。またJSONやYAMLのような設定ファイルと異なり、TypeScriptの文法に従っていれば、変数や関数の記載も可能な点も利点として挙げられます。

注、唐突に型システムやIaCなどの単語が出てきましたが、別エントリーなどで詳細を説明出来ればと思います。

React

Reactは、ざっくりとかいつまんで説明するとJavaScriptのオブジェクトを対応するhtmlのタグに変換するフレームワークです。
例えば

a--b: dataB
 |-c
   |-d: dataD
   |-e: [f,g,h] ([]は配列)

のようなツリー構造のデータを

<tagA>
 <tagB>
   DATA_B
 </tagB>
 <tagC>
   <tagD>
     DATA_D
   </tagD>
   <tagE>
     <tagF/>
     <tagG/>
     <tagH/>
   </tagE>
 </tagC>
</tagA>

のようにに変換する事が出来ます。
Reactの便利さは、htmlを変更したいときは対応するオブジェクトを変更すればそのままhtmlに反映する事が出来る点です。

これには以下のメリットがあります。
・データ構造の変更に関する実装とhtmlの描画に関する実装を分離する事が容易になります。その結果テストが非常に楽になります。
・データ構造の変更とhtmlの描画をある程度分離しているため、モジュール化が容易になり、再利用等をし易くなります。

AWS

弊社ではクラウドサービスとしてAWSを使っています。
当初はAWS(特にLambda)とGoogle Cloud Platfrom(GCP)(特にKubernetes)のどちらを選ぶか悩みましたが、後者、特にKubernetesは技術的な習得が少し大変そうなのと、その割には弊社で使う技術は比較的単純なWebサービスが多いので、ミドルウェアのメンテナンスも楽そうなLambdaを中心としたAWSのサービスを選びました。
Lambdaでは現在例えばnode.jsではバージョン12と14をサポートしていますが、カスタムランタイムという仕組みを使えばこれら以外のバージョンも使用できますし、必要であればDockerを使用することも出来ます。
またServerless FrameworkにおいてTypeScriptを用いてIaC(インフラの管理を設定ファイルやプログラムを通して行い、それらをコードで管理する事)も出来るので便利です。

まとめ

上に挙げた3つの技術(TypeScript・React・AWS)によりクライアント・サーバで動作するシステムのかなりの範囲をカバー出来ます。
このような技術の採用により、弊社のようなまだ開発者の人数も少ない組織でも、省力的に様々な案件への対応を可能としています。
以上、弊社で使用する技術についての説明でした。

いいなと思ったら応援しよう!