Appify Advent Calerndar 2021の記事です。

11月に正社員として入社した @sekky0905 です!

入社して感じたのは、Appifyはスピードと品質を保ちつつスケールをする開発プラクティスを非常に大切にしているということです。入社してからの1ヶ月半程の間にこのプラクティスが非常に有効なものだと感じることが多く、自分も常にこのプラクティスを念頭に開発をしています。

今回は、その開発プラクティスの背景となる考え方(と自分が考えていること)と開発プラクティスの一部を紹介します。

開発プラクティスの背景となる考え方(と自分が考えていること)

スピードを保ちつつ、スケールするためには以下の2つのことが大切だと思います。

  1. その人にしかできないことをなくすこと。一言で言えば 属人性の排除
  2. 本質的なことに集中することができること

1を満たすためには、には自分達が生み出すあらゆる知識や成果物に対して 自分だけが知っていることをなくす他のメンバーが見てすぐ理解できる誰がやっても同じようにできる という考え方が非常に重要だと思います。

2.に関しては、本質的なこと以外のところはなるべく自動化されている、もしくは標準化されていて考える必要がないということが非常に重要だと考えています。

Appifyではこの観点から確立されたプラクティスが充実しています。

開発プラクティス

統一感のあるコード

これについては、他のメンバーがアドベントカレンダーで記載する予定なので詳細には書きませんが、(書かれたらURLを貼ります。)Appifyにはサーバーサイドにも、フロントエンドにも明確な設計方針が存在します。そして、それがドキュメント化されています。 コードはその設計方針に従って記述されているため、初めてAppifyのコードを見た時から「どこに何が書かれていて、自分がどこにコードを書けば良いのか」と迷うことは少なかったです。(自分の実力不足によって、もっとこう書いた方が良いよねとレビューで指摘されることはありましたが)

設計方針が明確にドキュメント化されており、コードもそれに則ったものになっているため、自分が機能を実装するときには、機能そのものの開発に集中することができ、本質的にではない部分で迷うことがないようになっています。

ドキュメントの充実

Appifyの開発ではドキュメントが非常に充実しています。開発環境の構築からデプロイ手順、設計方針等に至るまでドキュメント化されています。