Upgrade to Pro — share decks privately, control downloads, hide ads and more …

StartupAngular2資料

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

 StartupAngular2資料

Avatar for Satoshi Watanabe

Satoshi Watanabe

November 26, 2021
Tweet

More Decks by Satoshi Watanabe

Other Decks in Technology

Transcript

  1. Copyright © KAKEHASHI Inc. All Rights Reserved. 
 Startup Angular

    #2 KAKEHASHIでAngularを利用すること Satoshi Watanabe@株式会社カケハシ 2021/11/26
  2. Copyright © KAKEHASHI Inc. All Rights Reserved. 
 本日の内容 Startup

    Angularということで、 スタートアップ企業としてのカケハシがAngularをどのように活用して いったのかというお話をできればと思っています。
  3. Copyright © KAKEHASHI Inc. All Rights Reserved. 
 自己紹介 渡辺悟史

    (わたなべ さとし) 株式会社カケハシ エンジニア 担当はPocket Musubi開発 主にフロントエンドをメインに担当 twitter: @sassy_watson
  4. Copyright © KAKEHASHI Inc. All Rights Reserved. 
 株式会社カケハシ 創業5年のスタートアップ

    「日本の医療体験を、しなやかに。」のミッションのもと テクノロジーで日本の患者体験・薬局体験の向上に取り組む 日本の医療体験を、しなやかに。
  5. 約 6万 店 (コンビニの数:約5.3万店) 約 7億 回 調剤薬局の数 患者さんと薬剤師の1年間の会話数 処方された薬を受け取るところ

    処方された薬について説明するところ 薬について相談するところ 自分の薬の重複や相互作用を確認するところ 自分の薬や体質の情報を管理するところ 薬を減らしたり、飲みやすくするところ 薬以外のことについて相談するところ 一般医薬品や介護用品を購入するところ 自宅を訪問して薬の管理・指導をするところ 患者さんがもつ薬局への印象 薬局業界を取り巻く環境 5 5 出典:処方箋受取率の推計_https://www.nichiyaku.or.jp/assets/uploads/activities/bungyo/s/R2suikei.pdf
  6. 7 患者さんへの提供価値を妨げている要因 創業後、400人以上の薬剤師へのインタビューで見えてきた課題 対人以外の業務が多く、 心と時間の余裕がない 処方箋だけでは患者さんの ニーズがわからない (患者コミュニケーションへの不安) 対物業務が多い 各患者さんに対して

    何をどう話すべきか悩ましい (患者コミュニケーションへの不安) 「効率化」の課題 「患者関係性」の課題 人によって業務の質に バラつきがある 業務の標準化が 出来ていない 「標準化」の課題
  7. Copyright © KAKEHASHI Inc. All Rights Reserved. 
 Angularをどこで使っているか •

    Musubi ◦ Angular + Electron • Pocket Musubi(LIFF/薬局管理画面) ◦ Angular(Web) • Musubi Insight ◦ Angular(Web)
  8. Copyright © KAKEHASHI Inc. All Rights Reserved. 
 なぜAngularを採用したのか •

    導入時はまだAngular2が出たばかりのころ ◦ ReactとAngularのシェアは当時差がほとんどなかった • 全部入り(routerだったりHttpClientだったり)のフレームワーク • TypeScriptを使うこと前提(静的型による開発上のメリット) ◦ TypeScript対応という観点で見た時に、当時のReactはまだ不安 ◦ Angularは基本TypeScriptを使う ◦ 型重要!型重要!
  9. Copyright © KAKEHASHI Inc. All Rights Reserved. 
 なぜAngularを採用したのか •

    当時のReactはまだHooksがなかった ◦ Vertual DOMをいい感じに使うためのかなり薄いフレームワーク ◦ Flux的な議論やモジュール・コンポーネント切り分けのような開発規約におい て決定版と言えるようなものがなく「ぼくのかんがえたさいきょうの開発方法」 の模索で界隈が疲弊していると観測していた • AngularはAngular Wayが極めて明確 ◦ 公式の開発ガイドラインがある ◦ ソフトウェアエンジニアのスキルレベルによる実装手段のセグメンテーションが 起きにくく価値創造のための実装に集中しやすい ◦ 素早くリリースすることを重視!
  10. Copyright © KAKEHASHI Inc. All Rights Reserved. 
 Angularの良いところ •

    ロジックはServiceに書いて、ComponentにDIさせれば良い ◦ できる限りロジックはServiceに書く ◦ テストはServiceでテストをやる • Componentもテンプレートとスタイル(HTML/CSS)とロジック(TypeScript)が分離さ れている ◦ デザイナーと協業しやすい(HTML/CSSを別で書いてもらえる)
  11. Copyright © KAKEHASHI Inc. All Rights Reserved. 
 RxJSは苦労する •

    リアクティブプログラミングに慣れる必要がある • ここは、かなりの意識を変化させる必要がある(手続き型の書き方とは違う) • streamをいかに操作し、使うかが大事
  12. Copyright © KAKEHASHI Inc. All Rights Reserved. 
 RxJSでいかにがんばるかがポイント •

    subscribeの中の関数にはできる限りロジックは書かない ◦ streamをoperatorでできる限り操作する(if文が出てきたらfilterを使う、等) • ネストはしない(switchMapやmergeMapを使おう) ◦ subscribeの中でのsubscribeも注意 • unsubscribeを忘れない ◦ テンプレートで表示するだけだったらasync pipeを使う • がんばりすぎて読みづらくなったら注意 ◦ 他の人が理解できないと結果バグの温床になる ◦ チームがRxJSに成熟する必要がある ◦ ペアプロ・モブプロで知見の共有を!
  13. Copyright © KAKEHASHI Inc. All Rights Reserved. 
 状態管理 •

    プロダクトで状態管理は異なっている • Musubiというプロダクトは内製reducer ◦ 状態管理のライブラリのデファクトが当時なかった ◦ といってもメンテナンスが大変 • Pocket Musubiのフロントのような小規模だと状態管理のライブラリは使わず、 BehaviorSubjectでがんばるという選択もある ◦ ngrxは too mach ◦ ただ大きくなってくると状態管理のライブラリが欲しくなる • 使う時はngrxを第1候補に
  14. Copyright © KAKEHASHI Inc. All Rights Reserved. 
 CSSライブラリ •

    Musubiはmaterialize.cssを使う ◦ しかしこれは色々やろうとすると逆に邪魔になる ◦ angular2-materializeもメンテナンスされなくなる • Pocket Musubiはその反省からCSS関連はライブラリを使ってない
  15. Copyright © KAKEHASHI Inc. All Rights Reserved. 
 テスト •

    単位テストは書ける範囲で書く ◦ Componentのテストはコストがかかるので無理しない • E2Eテストはコードを書くのは大変 • E2Eテストはmabl(テスト自動化ツール)を使う ◦ AngularフレームワークのE2Eテストは使わない
  16. Copyright © KAKEHASHI Inc. All Rights Reserved. 
 angular-cli •

    angular-cliがものすごく便利 ◦ WebPackでがんばってた時が嘘のよう・・・・ • アップデートも ng updateで一発 ◦ renovateでversion upしないように気をつける
  17. Copyright © KAKEHASHI Inc. All Rights Reserved. 
 まとめ •

    KAKEHASHIでAngularで導入・活用の話をしました • もっと話したいことはありますが、また別の機会に • これを機会に皆様と情報交換をしたいと思っています。 • よろしくお願いします。
  18. Copyright © KAKEHASHI Inc. All Rights Reserved. 
 株式会社カケハシでは エンジニア採用を行っています。

    興味がある方はぜひカジュアル面談か らお願いします。 https://recruit.kakehashi.life/engineer