こんにちは。株式会社スタメンの井本です。Railsによるバックエンド開発、およびSRE業務を担当しています。
弊社では頻繁に社内勉強会が開催されています。書籍をテキストとして使用するものや、ハンズオンがメインのものなど、形式は様々ですが、有志が週に一回程度時間を設けて運営しています。
最近では、バックエンド、フロントエンド、モバイルなどのそれぞれの技術領域に特化した勉強会が開催されています。 この記事では、2021年上半期に開催されたものの中から、4つピックアップしてレポートします。
目次
- AWS Summit 2021
- Next.js
- スキーマ駆動開発
- クリーンアーキテクチャ
AWS Summit2021
AWS Summitは一年に一回開催される、AWSのサービス、導入事例等を紹介されるカンファレンスです。今年の AWS Summit 2021 は、5/11、12に開催されましたが、セッションの動画や、使用された資料は、セッション資料・動画一覧で参照することができます。この勉強会では、公開されたセッションをメンバーがチェックし、それぞれ自分の興味があるセッションについて紹介する形式で実施しました。
各セッションの内容は、多くの最新情報や他社事例を含んでいるため、チームとして多くの学びを得ることができました。
例えば、弊社ではAWSのコンテナサービスの本番導入途中だったため、セッションで紹介されていた、AWSにおけるコンテナワークロードのベストプラクティスや他社のコンテナサービス導入事例が大変参考になりました。また SPA(Single Page Application)のビルドおよびデリバリーのパイプラインについても最近検討していましたが、AWS Amplify Console というフルマネージドなホスティング及びCI/CDサービスが良さそうだということで、現在本番利用に向けて検証しています。
Amazon S3 も長く使用していますが、紹介されたのセッションで初めて知った機能があり、この機能を有効化することで、弊社のクラウドコスト最適化の取り組みが前進しました。改めてカンファレンスで発表される最新情報に触れることは大切だと感じています。
来年以降も AWS Summit が開催されるたびに社内勉強会も実施していきたいと思います。
Next.js
現在、Next.jsを採用したプロジェクトが進行中ですが、事前に概要を学ぶ勉強会を行いました。
勉強会の時点では触れたことのあるエンジニアも少なかったのですが、今後、採用するフレームワークとして有力な候補であったため、テーマとして選びました。
この勉強会はハンズオン形式で進めました。公式ドキュメントに記載されているチュートリアルの内容がとても良いため、こちらを各人が進め、最終的なアウトプットとしてNext.jsを使った簡単なアプリケーションをそれぞれが作成しています。
Next.jsの土台となる部分や、多少の共通認識というのを持てたのがとても良かったと思います。
現在はプロジェクトでNext.jsを使用していますので、今後はより詳細な部分を学べる勉強会も開催する予定です。
スキーマ駆動開発
スキーマ駆動開発とは、「APIのスキーマを最初に定義し、その定義をもとにバックエンド(API)とフロントエンド(画面)の開発を進めること」を指します。新規プロジェクトにおいてスキーマ駆動開発を取り入れることで開発効率をあげるため、実際に導入することを意識して開催されました。
こちらも実際に手を動かしながら、各種ツールを使ってスキーマ駆動開発の体験し、実際に導入した際の具体的なイメージやそのメリットを体感することができました。
スキーマ駆動開発に関する知識のベースラインを揃えることが出来たため、新規のプロジェクトへの導入や運用も上手く進めることが出来ています。
スキーマ駆動開発については、別の記事にて紹介していますので、詳細が知りたい方は是非こちらの記事もご覧ください! 紹介記事:スキーマ駆動開発、はじめました
クリーンアーキテクチャ
「Clean Architecture 達人に学ぶソフトウェアの構造と設計」の輪読会を行いました。この本を取り上げた理由は、アーキテクチャに対する知識が足りていないとグループメンバー全員が感じていたためです。メンテナンス性や拡張性を意識した設計・実装を行う上での前提知識を身に付けたいという思いから勉強会で取り上げることにしました。
当書ではシステムの構築・メンテナンスコストの人的コスト削減を目的として、「単一責任の原則」を始めとした設計の原則や、コンポーネント(デプロイ単位のモジュール)の凝集性(どのようにまとめるか)と依存方向、それらの考え方を基にしてどう設計すべきか?が紹介されています。
勉強会を経て、アプリケーションにおける変わりづらい部分と変わりやすい部分を分離することの重要性、それらをどう切り離すか、依存の方向性はどうあるべきか?を学ぶことができました。咀嚼できていない部分も多々ありますが、勉強会を終えて、メンテナンス性を考慮したReactのコンポーネント設計や関数の責務分離・インターフェースについてメンバーで議論するようになり、勉強会の効果を感じています。今後の機能開発やリファクタリング、ゼロからのアプリケーション構築に活かしていきます。
まとめ
勉強会のレポートは以上です。 下期においても、また新しいテーマの勉強会が始まっているので、そちらもレポートを予定しています。
最後に、スタメンではともに技術者として高め合い、良いプロダクトを作り上げていける仲間を募集しています。 ぜひ下記の採用ページからエントリーいただけると幸いです。