2週間経った授業報告を自動で承諾!自動承諾機能開発ストーリー

じめじめする日が続きますね~。梅雨ですね。
今回は5月末にリリースされた「授業報告の自動承諾機能」に関して、エンジニアの小川さんに突撃インタビュー!
今回の開発の山場や工夫点、今後の改善につなげたい点など語っていただきました!
NoSchoolではエンジニア採用も積極的に行っているので、興味ある方は採用担当のツイッターDMよりご連絡下さい!
-今回も前回に引き続き、小川さんにお話を伺います!今回リリースした機能の内容を簡単に教えて下さい!
「マナリンク」では生徒さんがオンライン家庭教師との授業を受講→先生が授業内容等についての報告を授業料の支払い者(マナリンクだと生徒の保護者さんが多い)に送付→授業報告を支払い者が承諾→先生への授業料を事務局から支払いという流れがあります。
つまり先生から授業報告を生徒側が承諾しないと先生は授業に対する料金が振り込まれないシステムになっているんですね。
ただ先生側が授業を受講していても承諾を忘れてしまうケースがあり、先生側が授業料を受け取れないということが多々ありました。
今回、授業報告の作成から2週間以上承諾がなかったデータをシステムで検知して、自動的に承諾状態にする機能を作成したことで、授業報告の承諾がなされないまま放置されてしまったとしても、2週間経過すれば自動的に承諾扱いとして処理されるようになり、上記のような問題は今後想定外のケースを除いて発生しなくなりました。
‐ついついそういう承諾系って忘れてしまうことありますよね。先生はもちろんのこと生徒さん側も助かる機能ですね。画像で見せてもらうことはできますか?
そこまでこれだ!みたいな画面はないんですが、自動承諾の際、自動的に承諾がされた旨は先生とご家庭の双方に通知されるようにしています。また、授業予定の詳細画面には自動的に承諾されたということが分かるようなラベルが表示されるようになっています。
これが自動承諾されたときに表示されるものですね。
自動承諾された授業はこのようにラベルがつくようになっています。
‐開発を始める前に、技術的に一番ネックだと思ったことはなんですか?
今回の機能開発に関しては、そこまで技術的にネックだと思ったことは少なかったです。
理由としては以下のようなものが挙げられると思います。
- バッチの作成は、既に何度か作成経験があったため大方の進め方が分かっていたこと
- 対象となる未承諾の授業予定の取得周りは、カレンダーの本機能開発時に近しいことを既に実装する経験があったこと
これまでの経験が開発に活きた形だったのでそこまでネックなことがなかった形ですね。
‐今回の開発の難しかった、苦戦したところはありますか?
承諾が「手動承諾」か「自動承諾」かというフラグを、どのようにドメインオブジェクトに持たせるかという部分の実装ですかね。 今回の「承諾」という行為は、「授業報告」に対してなされるものであり、元々授業報告エンティティが「$approvedAt」という形で「承諾」に関する知識を持ち合わせていました。 ドメイン駆動設計に関する知見がまだまだ浅いこともあり、最初は愚直に授業報告エンティティに対して、追加で「$autoApproved(=自動承諾を表すフラグ)」を持たせるように設計を考えていたのですが、授業報告エンティティに対して承諾に関わる値が $approvedAt と $autoApproved で2種類持っている状況に違和感を覚え、これを一つの「承諾」という値オブジェクトとしてまとめて扱うようにし、その中に前述の $approvedAt と $autoApproved を含めるように設計し直すことができた点は、今回の開発の中でも成長したことだったように思います。
‐開発機能の技術的な工夫点はありますか?
先ほど述べた、苦戦した部分と同じにはなるんですが、最初は自動承諾というフラグを愚直に授業報告エンティティに足すような設計で考えてしまっていたところを、一度承諾という値オブジェクトを定義し直してから、その承諾値オブジェクトに対して自動承諾フラグを持たせるという設計をすることができたことですね。
‐今回の機能のリリース前とリリース後に「個人」として成長した部分はありましたか?
ドメインのことを考慮して、どう設計すればより保守性・拡張性高く改修することができるかということを検討しながら開発を進めることができたことですね。
‐今回リリースした機能が80%の完成度だとして、残りの20%でどのように発展していきたいか教えて下さい。
今回は全体を通して満足行く内容の開発だったので、これだ~みたいなのはないのですが、マナリンクのサーバーサイド開発を支えているドメイン駆動設計の、ドメインや集約についてより理解を深めていけると今後の開発にも大いに役立つと感じているので、そのあたりの知識をより深めて、今後の開発に活かしていきたいなと感じました。
小川さんありがとうございました!この機能実装で、オンライン家庭教師側、生徒さん側がより授業を受けやすくなるといいですね!
現在NoSchoolではエンジニア大募集中です!
採用応募はこちらから!