開発環境について

私たちのチームは、最新の技術と効率的なツールを駆使して、高品質なソフトウェアの開発を目指しています。

言語・フレームワークの使用割合

私たちが活用している言語・フレームワークについて、コード行数の観点からご紹介します。

このコード行数は、文字通り、プログラムを構成するコードが書かれている行の数を指します。コード行数は、プログラムの大きさや複雑さを測る一つの基準として使われることがあります。例えば、あるプログラムが100行のコードで構成されている場合、それは比較的小さく、単純なプログラムであると言えるかもしれません。一方で、数千行やそれ以上のコードを含むプログラムは、より大きく、複雑な機能を持つことが多いです。

私たちのプロジェクトで利用している言語・フレームワークの割合は以下の通りです。(2024-05-28時点)

言語・フレームワーク全コードの行数コード行数の割合
Vue.js(.vue)4,611 行40.7%
Python(.py)3,027 行26.7%
Jupyter Notebook(.ipynb)951 行8.4%
JavaScript(.js)673 行5.9%
YAML(.yml)602 行5.3%
TypeScript(.ts)262 行2.3%
シェルスクリプト(.sh)193 行1.7%

Vue.js(.vue) 40.7%

Webフロントエンド(Webページの見える部分を作るとき)に利用しています。きめ細やかなデザインを行うためにHTMLやCSSなどを記述することから、全体に占める割合が多くなりがちです。

Python(.py) 26.7%

あらゆるバックエンドシステム(いわばアプリを動かすために必要な裏のシステム)の開発に利用しています。このようなシステムを開発するのであれば、Python以外にもJavaScript(Node.js)やC#(.NET)などの選択肢があります。しかし、Pythonは学習が比較的容易であり、エコシステム(データ分析やWebバックエンドのライブラリなど)が充実していることから頻繁に利用しています。

Jupyter Notebook(.ipynb) 8.4%

Jupyter Notebookは、Pythonでデータ分析を行うときに利用しています。私たちが開発しているアプリでは、IoTデバイスから取得したデータを機械学習・ルールベースによって分析しています。その分析手法を検証するときに非常に便利なツールです。

JavaScript(.js) 5.9%

Webフロントエンドの開発で利用しています。

YAML(.yml) 5.3%

YAMLファイルは、サーバーへの自動デプロイを行うために利用します。デプロイとは、作成したコードをクラウドサーバーに反映させることです。私たちのプロジェクトでは、このようなファイルを作成し、コードが更新されたタイミング(具体的にはPull Request)でデプロイを実行するようにしています。

TypeScript(.ts) 2.3%

Webフロントエンドの開発でビルド時に利用しています。

シェルスクリプト(.sh) 1.7%

シェルスクリプトは、サーバーやIoTデバイスを動かすために利用します。たとえば、自動メンテナンスなどの作業では複数の処理を行うため、スクリプトファイルにまとめて記述しています。

その他

クラウド・サービス

Microsoft Azure:クラウドサーバーとして利用しています。たくさんのサービスが提供されていますが、このプロジェクトではApp ServiceやFunctions、Cosmos DBなどを用いることが多いです。

クラウドサーバーには、Amazon Web Services(AWS)やGoogle Cloud Platform(GCP)などの類似サービスがありますが、大学生協に対応していること・学生特典が充実していることからMicrosoft Azureを選定しています。

バージョン管理システム

GitHub:開発したコードはすべてGitHubで管理しています。

GitHub Actions:デプロイやアップデートの自動化に利用しています。

オペレーティングシステム

Linux:クラウドサーバーやIoTデバイスは、すべてLinuxで動作しています。

ハードウェア

Raspberry Pi:IoTデバイスとして利用しています。

コミュニケーションツール

Discord:ほぼすべての連絡をDiscordで行っています。

開発効率化

ChatGPT(GPT-4): コードの作成や技術的な選定、不具合の解消などを効率化するために利用しています。ChatGPT Plusを利用する場合、費用は個人負担となります。

GitHub Copilot: コードの作成を効率化するために利用しています。ChatGPTに比べると、短い範囲でのコード作成に役立ちます。GitHubの学生アカウントを取得することで、無料で利用することが出来ます。

Codeium: GitHub Copilotと同様にコードの作成を効率化するために利用しています。こちらは完全に無料であり、実験的に併用しています。