Rakeタスクで少し学ぶ見積/Learning estimation with Rake tasks

Rakeタスクで少し学ぶ見積/Learning estimation with Rake tasks

Gotanda.rb#40@gifteeの登壇スライドです。
激しめのRakeタスクの実装を通じて見積もりをうまいことやる方法を考えました。

https://gotanda-rb.connpass.com/event/155193/

Bfc42a2fb137897db919bac632c83085?s=128

Teruhisa Fukumoto

November 28, 2019
Tweet

Transcript

  1. Rakeタスクで少し学ぶ見積 Gotanda.rb#40@giftee 2019/11/28(Thr) Teruhisa Fukumoto MedPeer .inc

  2. 1. 自己紹介 2. 事業・サービス 3. レシピ 4. 神Rake 5. 失敗からの学び

    Agenda
  3. 自己紹介 01 Chapter.

  4. • MedPeer[2019.10~] • ex. Zeals VPoE / PM • Ruby

    / Python • Gotanda.rb Organizer • Gotanda.js Organizer Teruhisa Fukumoto f-teruhisa @terry_i_
  5. None
  6. #gotandarb

  7. 事業 サービス 02 Chapter.

  8. 開発している サービス Service

  9. None
  10. • 食事を記録し投稿する • 管理栄養士の方から 食事にアドバイスされる • 目標(ダイエットetc...) に向けた的確な食生活を サービスの概要

  11. ドメイン Domain

  12. 管理栄養士の方々 • 栄養に関する高度な指導や栄養管理を行う職種 • 栄養士の上級資格とされ、国家資格である • 予防医療やフィットネスの文脈で需要が増す メドピアではグループ会社である     に所属

  13. FitsPlusの管理栄養士のお仕事(例) • DietPlusのアプリへのコメント • 健保組合と一緒に特定保健指導を行う ◦ 企業の健康保険のひとつ • 栄養指導の内容に基づいたレシピを納品する

  14. FitsPlusの管理栄養士のお仕事(例) • DietPlusのアプリへのコメント • 健保組合と一緒に特定保健指導を行う ◦ 企業の健康保険のひとつ • 栄養指導の内容に基づいたレシピを納品する

  15. レシピを作るときに 色々あった話をします。

  16. レシピ 03 Chapter.

  17. そもそもレシピって? • 管理栄養士監修のもと作られる食品のこと • 特定の症状や目的のケアを行うために作られる ◦ 例:動脈硬化、美容、糖尿病etc... • レシピに使われる材料に基づき栄養価を算出 ◦

    日本食品標準成分表で決められている
  18. そもそもレシピって? • 管理栄養士監修のもと作られる食品のこと • 特定の症状や目的のケアを行うために作られる ◦ 例:動脈硬化、美容、糖尿病etc... • レシピに使われる材料に基づき栄養価を算出 ◦

    日本食品標準成分表で決められている
  19. オッ

  20. 日本食品標準成分表について 文部科学省科学技術・学術審議会資源調査分科会どの が作成し公表なさる、食材の栄養価や成分がきめ細や かに決められた表のこと。ほぼ毎年のマイナーアップ デート(追補)や、数年に一度メジャーアップデート (改訂)が行われることで、より一層充実した成分表 になられる(早口)。

  21. 文部科学省科学技術・学術審議会資源調査分科会どの が作成し公表なさる、食材の栄養価や成分がきめ細や かに決められた表のこと。ほぼ毎年のマイナーアップ デート(追補)や、数年に一度メジャーアップデート (改訂)が行われることで、より一層充実した成分表 になられる(早口)。 日本食品標準成分表について

  22. ではここで、実際の 日本食品標準成分表を 見てみましょう

  23. http://www.mext.go.jp/a_menu/syokuhinseibun/1365420.htm

  24. http://www.mext.go.jp/component/a_menu/science/detail/__icsFiles/afieldfile/2017/12/25/1365334_1r12.xlsx 地の果てまで 続く→

  25. なるほど

  26. • 管理栄養士さんが作るレシピに反映 • DBに正規化して入れる必要性 • Railsアプリケーションでモデルやレコード として扱う必要性 こいつをアプリケーションに入れる

  27. None
  28. 神Rake 04 Chapter.

  29. ここからは、みんな大好き プログラミングの話です!

  30. 実は・・・ FitsPlusのRailsアプリケーションは、親の敵Excelを討 つためにExcel絶対殺すマンと化しており、専用武器を 搭載しています。

  31. Rake Task① • これらをseed_fuに 書き出す

  32. Rake Task②

  33. 先人と言う名の 神様... クリスマスも近いしね>

  34. これで勝つる!

  35. 実行後のNTさんからの反応

  36. 実行後のNTさんからの反応 2017年版までと、元データのエクセルの形式 が変わってるので、ズレが生じてます。。。涙

  37. None
  38. 文部科学省科学技術・学術審議会資源調査分科会どの が作成し公表なさる、食材の栄養価や成分がきめ細や かに決められた表のこと。ほぼ毎年のマイナーアップ デート(追補)や、数年に一度メジャーアップデート (改訂)が行われることで、より一層充実した成分表 になられる(エンジニア特有の早口)。 ここで振り返り

  39. あっ

  40. • 新規に栄養項目が増え、Rakeタスクにズレが ◦ ”低分子量水溶性食物繊維”なる物質が増えた • 暫定カロリー数の表示仕様が変わる ◦ 推計で求めた成分値を( )で囲む •

    突然なぜか備考の区切りに読点(、)が出現 ◦ (にんじん類) にんじん、根、冷凍、油いため 仇討ちを読まれ、罠を張られた
  41. とりあえず直す • 追加された栄養素を考慮した造りに • 一部の栄養素は統合させる • translation.ja.ymlゲー

  42. 直す × 2 • 暫定値を排除するロジック

  43. 直す × 10 • 読点を滅失させるロジック

  44. できたので実行

  45. ドコドコドコドコ× 100

  46. 少し遅れてしまったが、 売りやすいレシピを 作れるように。

  47. そして...2019~20年版も待っている https://www.ttrinity.jp/product/3196415

  48. 失敗からの 学び 05 Chapter.

  49. 今回の反省ポイント • 既存ロジックで勝手にイケる気満々だった ◦ 更新や変更を考慮に入れていない • そもそも該当Rakeタスクを使ったことがなかった • 蓋を開けてから焦りだした(あるある)

  50. 一旦ちらっと蓋を開けてみる 引用:スクエア・エニックス『ゲーム開発プロジェクトマネジメント講座』 http://www.jp.square-enix.com/tech/openconference/library/2011/dldata/PM/PM.pdf

  51. 次からは... • 既存ロジックをとりあえず実行してみる ◦ 落ちることに気づきそう • 実際にエクセルをチラ見する ◦ 想像以上に怪物であることに気づく •

    一旦さらっとコードを見てから期限の返答をする ◦ 普段触らないRakeタスクなら尚更
  52. まとめ • 先に蓋を少し開けて不確実性を下げよう • 切り戻し可能であれば、プログラムを 可能な限り事前に実行してみる • みなさんならどう実装しますか...

  53. None
  54. Thank you!!