Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
StartupAngular2資料
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Satoshi Watanabe
November 26, 2021
Technology
70
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
StartupAngular2資料
Satoshi Watanabe
November 26, 2021
More Decks by Satoshi Watanabe
See All by Satoshi Watanabe
AIエージェントでのコーディングでわかった理解の重要性
sassy
0
32
最近作ったClovaスキルの紹介
sassy
0
360
作ったスキルの紹介
sassy
1
460
RxJSではじめるリアクティブプログラミング
sassy
0
94
Other Decks in Technology
See All in Technology
Oracle AI Database@Azure:サービス概要のご紹介
oracle4engineer
PRO
6
1.9k
ACE-Step-1.5で見る 音楽生成AIのしくみと“破綻だけ直す”Retake機能の開発【zennfes spring 2026 登壇資料】
personabb
1
130
中期計画、2回作ってみた ~業務委託と正社員、両方の視点から~
demaecan
1
680
AIソロプレナー時代に2ヶ月で20人増員した事業創造会社の開発組織の話
miyatakoji
0
600
AIっぽい文章を採点して人間らしく直すアプリを作ってみた
yama3133
2
130
Oracle AI Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
6
1.5k
Chainlitで作るお手軽チャットUI
ynt0485
0
200
MCP Appsを作ってみよう
iwamot
PRO
4
540
LLMにもCAP定理があるという話
harukasakihara
0
300
2026TECHFRESH畢業分享會 - 葬送的通靈師:化系統與用戶雜訊成行動訊號
line_developers_tw
PRO
0
810
自律型AIエージェントは何を破壊するのか
kojira
0
150
白金鉱業Meetup_Vol.24_「AIエージェントは分けるほど良い」は本当か? / Is it true that “the more you divide AI agents, the better”?
brainpadpr
1
300
Featured
See All Featured
Between Models and Reality
mayunak
4
330
Claude Code のすすめ
schroneko
67
230k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
300
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
1.7k
Are puppies a ranking factor?
jonoalderson
1
3.5k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.2k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
30 Presentation Tips
portentint
PRO
1
320
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Odyssey Design
rkendrick25
PRO
2
690
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
1
340
BBQ
matthewcrist
89
10k
Transcript
Copyright © KAKEHASHI Inc. All Rights Reserved. Startup Angular
#2 KAKEHASHIでAngularを利用すること Satoshi Watanabe@株式会社カケハシ 2021/11/26
Copyright © KAKEHASHI Inc. All Rights Reserved. 本日の内容 Startup
Angularということで、 スタートアップ企業としてのカケハシがAngularをどのように活用して いったのかというお話をできればと思っています。
Copyright © KAKEHASHI Inc. All Rights Reserved. 自己紹介 渡辺悟史
(わたなべ さとし) 株式会社カケハシ エンジニア 担当はPocket Musubi開発 主にフロントエンドをメインに担当 twitter: @sassy_watson
Copyright © KAKEHASHI Inc. All Rights Reserved. 株式会社カケハシ 創業5年のスタートアップ
「日本の医療体験を、しなやかに。」のミッションのもと テクノロジーで日本の患者体験・薬局体験の向上に取り組む 日本の医療体験を、しなやかに。
約 6万 店 (コンビニの数:約5.3万店) 約 7億 回 調剤薬局の数 患者さんと薬剤師の1年間の会話数 処方された薬を受け取るところ
処方された薬について説明するところ 薬について相談するところ 自分の薬の重複や相互作用を確認するところ 自分の薬や体質の情報を管理するところ 薬を減らしたり、飲みやすくするところ 薬以外のことについて相談するところ 一般医薬品や介護用品を購入するところ 自宅を訪問して薬の管理・指導をするところ 患者さんがもつ薬局への印象 薬局業界を取り巻く環境 5 5 出典:処方箋受取率の推計_https://www.nichiyaku.or.jp/assets/uploads/activities/bungyo/s/R2suikei.pdf
厚生労働省は、薬局に変革を促している 6 対物業務 対人業務 出所: 厚生労働省 患者のための薬局ビジョン(https://www.mhlw.go.jp/stf/seisakunitsuite/bunya/kenkou_iryou/iyakuhin/yakkyoku_yakuzai/index.html) 6
7 患者さんへの提供価値を妨げている要因 創業後、400人以上の薬剤師へのインタビューで見えてきた課題 対人以外の業務が多く、 心と時間の余裕がない 処方箋だけでは患者さんの ニーズがわからない (患者コミュニケーションへの不安) 対物業務が多い 各患者さんに対して
何をどう話すべきか悩ましい (患者コミュニケーションへの不安) 「効率化」の課題 「患者関係性」の課題 人によって業務の質に バラつきがある 業務の標準化が 出来ていない 「標準化」の課題
8 患者さんと薬剤師の“医療体験”を変革するため 調剤薬局向けSaaS「Musubi」が誕生
9 対物から対人へ。門前からかかりつけへ。 そして、地域医療を担う存在へ。 薬局に求められる役割が大きくなるにつれ、負担も大きくなっている。
患者さんのための薬局づくりのパートナーとして、 複合プロダクトで「薬局DX」をトータルサポート。 医薬品発注 管理最適化
Copyright © KAKEHASHI Inc. All Rights Reserved. AngularとReact カケハシではAngularとReactのどちらかをチームで採用している
Copyright © KAKEHASHI Inc. All Rights Reserved. Angularをどこで使っているか •
Musubi ◦ Angular + Electron • Pocket Musubi(LIFF/薬局管理画面) ◦ Angular(Web) • Musubi Insight ◦ Angular(Web)
Copyright © KAKEHASHI Inc. All Rights Reserved. なぜAngularを採用したのか •
導入時はまだAngular2が出たばかりのころ ◦ ReactとAngularのシェアは当時差がほとんどなかった • 全部入り(routerだったりHttpClientだったり)のフレームワーク • TypeScriptを使うこと前提(静的型による開発上のメリット) ◦ TypeScript対応という観点で見た時に、当時のReactはまだ不安 ◦ Angularは基本TypeScriptを使う ◦ 型重要!型重要!
Copyright © KAKEHASHI Inc. All Rights Reserved. なぜAngularを採用したのか •
当時のReactはまだHooksがなかった ◦ Vertual DOMをいい感じに使うためのかなり薄いフレームワーク ◦ Flux的な議論やモジュール・コンポーネント切り分けのような開発規約におい て決定版と言えるようなものがなく「ぼくのかんがえたさいきょうの開発方法」 の模索で界隈が疲弊していると観測していた • AngularはAngular Wayが極めて明確 ◦ 公式の開発ガイドラインがある ◦ ソフトウェアエンジニアのスキルレベルによる実装手段のセグメンテーションが 起きにくく価値創造のための実装に集中しやすい ◦ 素早くリリースすることを重視!
Copyright © KAKEHASHI Inc. All Rights Reserved. まずはMusubiを開発 Musubiの知見を生かし
他のプロダクトを 高速リリース
Copyright © KAKEHASHI Inc. All Rights Reserved. 公式ドキュメントで基本的な開発方法はわかる!
Copyright © KAKEHASHI Inc. All Rights Reserved. Angularの良いところ •
ロジックはServiceに書いて、ComponentにDIさせれば良い ◦ できる限りロジックはServiceに書く ◦ テストはServiceでテストをやる • Componentもテンプレートとスタイル(HTML/CSS)とロジック(TypeScript)が分離さ れている ◦ デザイナーと協業しやすい(HTML/CSSを別で書いてもらえる)
Copyright © KAKEHASHI Inc. All Rights Reserved. RxJSは苦労する •
リアクティブプログラミングに慣れる必要がある • ここは、かなりの意識を変化させる必要がある(手続き型の書き方とは違う) • streamをいかに操作し、使うかが大事
Copyright © KAKEHASHI Inc. All Rights Reserved. RxJSでいかにがんばるかがポイント •
subscribeの中の関数にはできる限りロジックは書かない ◦ streamをoperatorでできる限り操作する(if文が出てきたらfilterを使う、等) • ネストはしない(switchMapやmergeMapを使おう) ◦ subscribeの中でのsubscribeも注意 • unsubscribeを忘れない ◦ テンプレートで表示するだけだったらasync pipeを使う • がんばりすぎて読みづらくなったら注意 ◦ 他の人が理解できないと結果バグの温床になる ◦ チームがRxJSに成熟する必要がある ◦ ペアプロ・モブプロで知見の共有を!
Copyright © KAKEHASHI Inc. All Rights Reserved. 状態管理 •
プロダクトで状態管理は異なっている • Musubiというプロダクトは内製reducer ◦ 状態管理のライブラリのデファクトが当時なかった ◦ といってもメンテナンスが大変 • Pocket Musubiのフロントのような小規模だと状態管理のライブラリは使わず、 BehaviorSubjectでがんばるという選択もある ◦ ngrxは too mach ◦ ただ大きくなってくると状態管理のライブラリが欲しくなる • 使う時はngrxを第1候補に
Copyright © KAKEHASHI Inc. All Rights Reserved. CSSライブラリ •
Musubiはmaterialize.cssを使う ◦ しかしこれは色々やろうとすると逆に邪魔になる ◦ angular2-materializeもメンテナンスされなくなる • Pocket Musubiはその反省からCSS関連はライブラリを使ってない
Copyright © KAKEHASHI Inc. All Rights Reserved. テスト •
単位テストは書ける範囲で書く ◦ Componentのテストはコストがかかるので無理しない • E2Eテストはコードを書くのは大変 • E2Eテストはmabl(テスト自動化ツール)を使う ◦ AngularフレームワークのE2Eテストは使わない
Copyright © KAKEHASHI Inc. All Rights Reserved. angular-cli •
angular-cliがものすごく便利 ◦ WebPackでがんばってた時が嘘のよう・・・・ • アップデートも ng updateで一発 ◦ renovateでversion upしないように気をつける
Copyright © KAKEHASHI Inc. All Rights Reserved. まとめ •
KAKEHASHIでAngularで導入・活用の話をしました • もっと話したいことはありますが、また別の機会に • これを機会に皆様と情報交換をしたいと思っています。 • よろしくお願いします。
Copyright © KAKEHASHI Inc. All Rights Reserved. 株式会社カケハシでは エンジニア採用を行っています。
興味がある方はぜひカジュアル面談か らお願いします。 https://recruit.kakehashi.life/engineer
Copyright © KAKEHASHI Inc. All Rights Reserved. ブログもあります 検索キーワード:カケハシ
技術ブログ
Copyright © KAKEHASHI Inc. All Rights Reserved.