TECH PLAY

株式会社カケハシ

株式会社カケハシ の技術ブログ

394

はじめに こんにちは、LINE上で動くおくすり連絡帳 Pocket Musubi というサービスを開発している種岡です。 日頃もくもくと開発作業に勤しむ傍ら、ときどきユーザーからの生の声(良くも悪くも)が届くのは嬉しいものです。 サービスが成長している1つの証である一方で、ふと「サーバーへの負荷大丈夫なんだろうか?」と頭をよぎり心配になります。 この記事では、AWSが提案している負荷テストソリューションの使い方を紹介し、ボトルネックを早期発見および、安定的な運用につながればと思い筆を取りました。 AWSの分散負荷テストソリューションとは AWSの公式より全体構成を抜粋しています。 AWSが用意…
概要 こんにちは!私はカケハシにて薬局と患者様の関係を向上させるためのオペレーションツールである 患者リスト の開発を担当している小室と申します。患者リストの立ち上げから担当させて頂いており、技術選定などのお話は先日はTechPlayでも登壇させて頂きました。( 登壇資料 ) 本記事ではそんな 患者リスト から、弊社のメインプロダクトとなる Musubi へDeepLinkで連携した際の知見をまとめたいと思います。 背景 そもそもなぜDeepLinkが必要になったかというと、患者リスト では患者様をリストアップする機能があるのですが、その患者様が薬局に来局された際の処方内容や服薬指導内容等の詳…
はじめに こんにちは、LINE上で動くおくすり連絡帳 Pocket Musubi というサービスを開発している種岡です。 弊社では、ソフトウェアエンジニアそれぞれが得意分野をリードしながらも、フロントエンド、バックエンド、インフラを横断的に見ているケースが多いです。 プロダクトデリバリーに対して裁量が多く、やりがいが大きい一方で、安定運用に対しても責任が伴います。 とくに、薬局の薬剤師さんや患者さんが利用するというプロダクトの性質上、個人情報や機微な情報を取り扱うため、セキュリティに関しては開発時から意識せざるを得ません。 この課題に対して、チームでは開発中の段階から OWASP ZAP とい…
はじめに こんにちは、Pocket Musubi エンジニアの関(@sekikazu01)と申します。 「あ〜アイコン大量に増えた時逐一画像を書き出して Icon コンポーネントに反映させるのめんどくせ〜〜〜」 そんな風に思った事はないでしょうか。私は思いました。 ので Figma のアイコンコンポーネントからコードに反映するまでのパイプラインを作りましたので、そのコードを公開していきます。 この記事はアイコンの生成の話ですが、一回作っておくと他にも画像だったりコンポーネントだったり諸々の生成パイプラインを作る時にも役立つと思います。 また、敬意を表すべくこのパイプラインを作るにあたって参考に…
はじめに こんにちは、KAKEHASHIのMusubiInsightチームでエンジニアをしている高田です。 MusubiInsightとは、薬剤師さんの業務データを可視化するBIツールになります。 そんなMusubiInsightにおいて、表示の高速化を狙いにServiceWorkerという技術を導入したので、紹介したいと思います。 MusubiInsightの課題 ServiceWorkerが何か、という話をする前に、MusubiInsightの課題について触れておきます。 ありがたいことに、MusubiInsightのユーザー数は堅調に増加していますが、それに伴いパフォーマンス低下の課題が…
概要 薬局運営のデータ分析サービスである Musubi Insight のフロントエンド開発をしております米山と申します。 Musubi Insight のフロントエンドは Angular で開発されており、テストフレームワークには jasmine/karma を利用していました。 この度、jasmine/karma から Jest に移行しましたので、移行の記録を書いていきます。 移行理由 jasmine/karma は Angular のデフォルトのテストフレームワークです。 しかし、JavaScript のテストフレームワークとして、jasmine/karma の利用人口が減少傾向にある…
こんにちは、あるいはこんばんは(アーニャ声)。 突然ですが認証認可周りの設計・実装は毎回全然違った要件に沿って違った感じでやっていく感じになるのでおもしろいですよね。 この記事では、先日Musubi Insightチームが社内向けに作成したコンソールの設計・実装について認証認可周りに絞ってまとめたいと思います。 認証認可はCognito User Groupベースで実装したのですが、意外とネットの情報が少なかったので参考になれば幸いです! なおブログ中に登場する画面のスクショについてなのですが、普段フロントエンドをほぼ触らない筆者がサクッと作ったものですので、デザインなどあれな部分もあるかと思…
概要 こんにちは。PocketMusubiチームの南光です。 今回は、ローコードツールを利用してアプリを開発した際に工夫した内容を記事としてまとめました。 ローコードツールの開発知見記事はあまりみない気がするので、興味を持っている方やこれから利用を検討している方の参考になれば幸いです。 ローコードツールとは ローコードツールの定義が曖昧な方も少なくないのではと思うので、一応wikiの抜粋を記載しておきます。 ローコード開発プラットフォーム (英: low-code development platform, LCDP) (ローコード(英: LowCode)とも言う)は、従来の手書きのコンピュー…
こんにちは、カケハシでデータ基盤チームの開発ディレクターをしている松田です。 2022年に、「カケハシはデータについて本気で取り組んでいくぞ!」と意気込み、 全社横断的な組織としてデータ基盤チームを組成しました。 今回はそのデータ基盤チームについてと今後の取り組む重点的課題について紹介して、 本気度を感じてもらえればと思っています。 全社横断的なデータ基盤チームfumidonoの誕生 今までのデータ基盤チームは、Musubi Insightを開発するプロダクトチームと同じチームに属しており、Musubi Insightにデータ提供をすることがメイン業務でした。その傍らで全社的なデータ利活用の支…
冒険。ロマン。船はその文明、文化における最新技術の結晶と水中(船舶)考古学は伝えます。今の時代ならば宇宙分野もそうかもしれませんね。昨年2021年の12月、ジェイムズ・ウェッブ宇宙望遠鏡が打ち上げられています。望遠鏡に代表される新しい「観測手段」が新しい発見を導くことは常に期待されていますし、機械部品が少ないだけ故障の心配も少ない面も興味深いところです。 そんな宇宙分野から学ぶことは多く、例えば医学界新聞では宇宙分野に学ぶチーム作りという記事を出しています。 翻ってみると日本のIT業界はどこまで異分野の知見を活かしているでしょうか。IT業界は成熟しつつある一方、話題がIT業界内で完結しがちで異…
こんにちは。ソフトウェアエンジニアの南光です。 2022年4月21~22日に開催されたDevOps Days Tokyo 2022 に、スポンサーとしてイベント参加してきました。今回の記事では、イベントの概要や参加した感想などを皆様へお届けしたいと思います。 イベントに参加した背景 昨年からこのテックブログを含め、ソフトウェアエンジニアの方にもっとカケハシという会社を知ってもらうための活動を続けてきました。 DevOps Days Tokyoにもそういった活動の一環でスポンサー協賛しました。 ここら辺の想いは下記の記事の中で熱く語られているので、お時間ある方はぜひ読んでみてください。 「Dev…
KAKEHASHI でバックエンドエンジニアをしている横田です。 今回は、OLTP から OLAP へのデータ同期処理で、気になった技術を使ってみました。 背景・目的 DynamoDB のデータを S3 に日次で同期する必要がありました プロダクトで作っているデータをどうやって データレイク(S3) に持って来るのか?は難しい問題です データ量がそこまで多くない場合は、DynamoDB Exportを使って、毎日全量のデータを同期することができていたのですが、毎日全量の同期は時間が間に合わない量になってきたため差分更新の仕組みを作る必要が出てきました AWS Glue Elastic View…
誰にだって作戦がある。最初にパンチを食らうまでは。 ヘビー級ボクサーとして名を馳せた、マイク・タイソン氏の言葉です。 障害における計画やマニュアルがあっても実際にできるか、衝撃を受けてもうまく動けるかどうかは試してみないとわかりません。さすがにパンチは辛いので、水かけぐらいで定期的に検証してみるのがカケハシにおける障害訓練です。 何を目的にするか 主目的としては障害対応フローの検証と学習と改善です。障害対応は数が少ないこともあり、記憶は急速に忘却され、6ヶ月もすれば対応方法を忘れてしまいます。定期的に訓練することで意識することなく行動できるよう、いわゆる宣言的知識を手続き的知識に変換するととも…
概要 Angular での開発において、DOM 操作などのために window.document を参照することはあるかと思います。 @angular/common には、DOCUMENT という DI Token が用意されています。こちらを利用することで、依存注入経由で document を参照することができますし、またテストも書きやすくなります。 ※ この記事を執筆してる時点での Angular の最新バージョンは v13.1.2 になります。 サンプルコード 以下、 DOCUMENT 経由で querySelector を利用するような Service クラスのサンプルコードです。 i…
はじめに こんにちは、LINE上で動くおくすり連絡帳 Pocket Musubi というサービスを開発している種岡です。 社内システムからS3にファイルをアップロードする機能を開発することになり、Presigned URLを利用して開発を試みたものの、想定以上に時間がかかってしまいました。 S3の設定からバックエンド、フロントエンドと一気通貫での情報がまとまっていないことが課題として浮かんできたので、備忘録として残しておくことにしました。 ゴール クライアント側(Angular)のフォームで選択したファイルをS3にアップロードできること S3にアップロードする際は Presigned URL …
カケハシの医薬品発注管理最適化領域の新規事業の開発を担当している木村です。今回は新しいサービスを構築する上で行った技術選定と実践方法の話をします。 技術選定に関しては、インフラ関連やライブラリなど選定した技術は多岐にわたるのですが、その中でも「なぜバックエンドでTypeScriptを導入したか」を中心にお話します。2つのチームでの技術選定に関わり、どちらもTypeScriptを導入するに至りました。2022/03時点では社内の5つのサービスでバックエンドTypeScriptが採用されていることを観測しています。 実践方法に関しては、技術選定の過程で明らかになったシステム特性に対するアプローチを…
こんにちは、カケハシでMusubi Insight のバックエンドエンジニアをしている高田です。 私はカケハシへの入社と同時に兵庫県移住し、現在フルリモートで勤務しています。 そのため自室=職場であり、より生産性が上がり、気持ちよく働けるよう環境を改善したいと前々から考えていました。 そこで、冬休み使って職場(自室)の環境改善を行なったので、その内容をご紹介できればと思います。 解決したい課題 とくに冬場になり、仕事開始時の室温が低く、集中し始めるまでに時間がかかるという点を課題に感じていました。 実際に快適な室温を保つことで、タイピングミスが減ったり、一定時間内のタイプ量が増えるなど、生産性…
作成した背景 カケハシでは新規プロダクトや大掛かりな改修に対し、Well Architected Frameworkに基づいたレビューを行っています。一方、フレームワークは汎用的に記載されており、特にAWSや非機能要件に慣れていないメンバーには各項目の具体的な内容がイメージしづらい側面があります。そこで、開発メンバーにとってより使いやすいよう、カケハシで利用している技術に応じて各項目を具体化しました。 特徴 280項目を採用 カケハシで採用している技術やプロセスをもとにWell Architected Frameworkの5本の柱とその質問を具体化した結果、280項目となりました。設問数に圧倒…
概要 コンポーネントのカタログを作成することができる storybook。利用している開発者は多いのではないでしょうか? この記事では、Storybook Addon Contexts を利用して、storybook 環境をちょっと便利にする方法を書きます。 Storybook Addon Contexts とは Storybook Addon Contexts とは、storybook に対してコンテキストを注入する機能を提供します。コンテキストとはつまり、ロケールのような、コンポーネントよりも上位の状態のことです。 例えばアプリケーションが多言語対応しているような場合。念のため、コンポーネ…
KAKEHASHI の Musubi Insight チームでエンジニアをしている横田です。 KAKEHASHI では薬剤師さん向けに Musubi という業務システムや、BI ツールの Musubi Insight という Web アプリケーションなどを提供しています。 それらは toB のサービスなので 一般的な Web サービスとの ID フェデレーションなどを利用することが難しく、Amazon Cognito によって共通の認証情報でのログインを実現しているのですが、サービスごとに毎回認証情報を入力する必要があるという課題がありました。 一度認証情報を入力すれば複数のサービスでログイン…