作ったもの
エンジニアの"めんどくさい"を無くすためのWebサービスです。チームのスキルマップを作ったりMarkdown形式でドキュメントを書けます。Twitter等のアカウントでログインして使用できます。
使ったプログラミング言語とか
- Python(DjangoとFlask)
- Java(Spring Boot)
- Vue.js
- Angular
- Ruby on Rails
- C++
- PostgreSQL
技術的な知見
※以下は個人の感想です。所属する組織の公式見解ではありません。
Django
DjangoはPythonのWebフレームワークで、今回のプロジェクトではrestframeworkを使用し、Web APIの実装に使用しました。モデル定義をPythonのコードで行い、直接SQLを記述することなくDB操作が可能です。restframeworkを使用することでDBから取得したレコードをJSONにシリアライズすることができ、例えばIDからユーザ情報を検索して返すようなAPIであればほとんどコードを書くことなく実現できます。シンプルな処理であればとても簡単です。シンプルな処理なら。Djangoに限らずフルスタックなフレームワークにはありがちだと思いますが、ちょっとでも凝った処理をやろうとすると苦労します。このへんは勉強不足な面もありますが、restframeworkはわりと日本語の資料も少ないので結構大変です。DBのマイグレーション機能は便利。
Java
好みの問題だとは思いますが、Web APIの実装でJavaとSpring Bootは無難な選択肢だと思います(現時点では)。Pythonなどの動的型付け言語はコード規模が大きくなるとつらいし、Rustはまだフレームワークの選択面では枯れていない印象です。個人的にはJavaは好きではないのですが...。
AngularとVue.js
スキルマップ作成機能はAngular、その他はVue.jsを使用しました。Vue.jsのほうがとっつきやすく資料も多いのでこれから勉強する人はやりやすいと思います。多人数で開発するならAngularの方がいいかもしれませんが、今回の規模だとあまりメリットが生かせませんでした。
C++
サービスを作ろうとした動機
※以下は個人の感想です。所属する組織の公式見解ではありません。
会社の知名度アップ
現状特に達成できてないですが...。
技術力の向上
本を読んでプログラムを学べるタイプの人と実装してみないと理解が進まないタイプがいて、後者の人が勉強しやすい環境を作ろう、というのが目的の一つでした。Webサービスを一人で開発し運用していくことはなかなか大変なのでじゃあみんなで作りますか、というのが最初の思い付きでした。仕事をしていく中である程度勉強できるのがいいのですが、実際のシステム開発は数年間に渡って開発や保守が続けられることが多く、なかなか新しい技術に触れることができません。
実際やってみると開発の時間は思うように確保できないし、新しいことを勉強しながら実装するので思ったような進捗を出せず苦労しました(当たり前と言えば当たり前ですけど)。