TECH PLAY

株式会社カケハシ

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

380

はじめに こんにちは、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 によって共通の認証情報でのログインを実現しているのですが、サービスごとに毎回認証情報を入力する必要があるという課題がありました。 一度認証情報を入力すれば複数のサービスでログイン…
アバター
はじめに こんにちは、LINE上で動くおくすり連絡帳 Pocket Musubiというサービスを開発している種岡です。 この記事では、Serverless Stackとapollo-server-lambdaを使って、AWS Lambda上でApollo Serverを動かしてみたのでご紹介します。 対象読者 以下に興味がある方は読んで頂ければ幸いです。 CDKのラッパーであるServerless Stackについて AWS Lambda上でApollo GraphQLサーバーの起動について とくに、Serveless StackのLive Lambda Development機能がオススメで…
アバター
AWS Lambdaを使えば開発者がビジネス価値に集中できる一方、それでも今までの開発と異なるポイントに気をつける必要があります。この記事では注意したい計30個のチェックポイントを紹介します。 まずは比較的簡単で効果が出やすい部分から見ていきましょう。 🚀時間がないあなたに!すぐできるポイント10選 レビューしていてよく出てくる、比較的修正しやすい事項です。 (1) メモリサイズを設定する LambdaはメモリサイズによってCPU含めたリソースパワーが決まり、1792MBで1CPUちょうどとされています。利用言語やマルチスレッド処理の状況に合わせ増減させましょう。 デフォルトはCloudFor…
アバター
こんにちは、LINE上で動くおくすり連絡帳Pocket Musubiというサービスを開発している南光(@stnamco)です。 Qiitaのググって解決しづらかったこと Advent Calendar 2021向けに書いた記事です。 この記事では、ググれなかった時に個人的にやっている手法について紹介します。 ググれない状態とは 手法を紹介する前に、前提の課題感を合わせるために自分がググれなかった時がどういう時なのか整理してみました。 正式な名称がわからない。 まさに下記のような時ですね。そもそも検索に利用すべきワードが分からないので、欲しい回答を見つけるのは難しいです。 ん?なんやこの??って…
アバター
KAKEHASHI の、Musubi Insight チームのエンジニアの横田です。 KAKEHASHI では BI ツールの Musubi Insight という Web アプリケーションを提供しています。 BI ツールでは薬剤師さんの業務データを可視化しておりますが、そのデータの集計処理には AWS Glue を使っています。 今年 AWS Glue 3.0が使えるようになり、できることが増えました。 チームのデータ基盤の概要と、AWS Glue 3.0 になって新たに使えるようになった PySpark の関数をいくつか紹介していきます。 Musubi Insight チームでの AWS …
アバター
こんにちは、LINE上で動くおくすり連絡帳Pocket Musubiというサービスを開発している南光(@stnamco)です。 この記事では、PRレビューを利用して自分の学びをチームの学びに繋げた取り組みについて紹介します。 背景 カケハシではDXCriteriaを利用した開発組織の状態の可視化にトライしており、自分のチームでも確認する機会がありました。 確認項目の中には、継続的な学習機会を設けているか?という質問もあり、個人としてはPRレビューなどで学習機会がある実感はあったのですが、チームとして学習機会を作れているか?と問われると、たまに気になる書籍があれば輪読会を開くくらいで、継続的な機…
アバター
こちらは株式会社カケハシ x TypeScriptアドベントカレンダー2021 20日目の記事です。 タイトルの通り、TypeScript ファイルに Yaml データを読み込んで型付けをする方法です。 TypeScript 環境のセットアップ まずは TypeScript 環境をつくります。 mkdir typed-yaml-demo cd typed-yaml-demo npm init -y 今回は ts-node を利用。 TypeStrong/ts-node: TypeScript execution and REPL for node.js npm install -D types…
アバター
処方箋情報基盤開発チームエンジニアの加藤です。 この記事は カケハシアドベントカレンダー2021 の18日目の記事になります。 まえがき 今年はとくにアウトプットの速度を求められる局面が多い年でした。 そのため、社内の仕事の速いエンジニア(速い人はビビるぐらい速い)から知恵を借りたり、自身で工夫して開発効率を改善する必要がありました。 その中でも、導入が簡単かつテクノロジースタックに依存しないものを紹介します。 なお以下の説明はすべてmacOS Big Sur環境の前提です。 あらかじめご了承ください。 ターミナル & シェル macOS Catalina からデフォルトのログインシェルがzs…
アバター
こんにちは。カケハシの Musubi AI在庫管理 チームで業務委託のエンジニアとして開発を行っております山田です。こちらの記事は カケハシ Advent Calendar 2021 の17日目の記事になります。 本記事では、AWS Systems Manager Session ManagerとAWS FargateでプライベートネットワークのRDSにアクセスするための踏み台サーバーを構築した際に、AI在庫チームが遭遇した問題の解決策や便利な設定をTipsとして紹介します。 上記技術スタックの選択を行うそもそものメリットや、実際の構築手順等の基本的な部分の情報に関してはネット上に多くの記事が…
アバター
「株式会社カケハシ x TypeScript Advent Calendar 2021」18日目の記事です。 https://qiita.com/advent-calendar/2021/kkhs-ts プラットフォームチームのエンジニアさだです。 私たちの環境ではテストコードもTypeScriptで書いていて、jest + ts-jestを利用しています。 色々な事情があって、プロダクトコード用のtsconfigとは別にテスト用のtsconfigを作らなきゃいけない場合ってありますよね。 そんな方にお伝えしたいのがこちら💁 https://kulshekhar.github.io/ts-je…
アバター
こんにちは🎄 プラットフォームチームの石黒です。 こちらは株式会社カケハシ x TypeScriptアドベントカレンダー2021 17日目の記事です。 今回はajvによるJSON Schemaを用いた入力値のバリデーションについてご紹介します。 ajvとは? APIなどから渡された入力値のバリデーションツールとして、ajvを採用しています。 これは、JSON Schemaを指定するだけでコードを書かずともバリデーションを行ってくれるもので、JSON SchemaのほかにはJSON Type Definitionにも対応しているとのことです。 例えば、以下のようにUser型を定義します。 typ…
アバター
こんにちは、カケハシでMusubi Insightのバックエンドエンジニアをしている末松です。 こちらの記事はカケハシ Advent Calendar 2021の 14 日目の記事になります。 半年ほど前の話にはなりますが、Musubi Insight チームにおいてローコードテスト自動化の SaaS であるmablを導入することで、リリースにかかっていた工数を半減させることに成功しました。 今回は、その mabl を導入した背景や実運用に至るまでの工程、そして学びを紹介したいと思います。 mabl の向き不向きなテストやつまづきポイントなども記載してますので、最後まで読んでいただけると嬉しい…
アバター
こんにちは☃️ プラットフォームチームの石黒です。 こちらは株式会社カケハシ x TypeScriptアドベントカレンダー2021 13日目の記事です。 今回は、Typescriptでの直列リクエストと並列リクエストを組み合わせた実装についてお話しします。 要件 データの一括処理をしたい データ量はリクエストごとに異なる 処理するシステムは1件ずつしか受け付けられない 処理するシステムのクォータは50件/秒とする 実装方針 データ量が一定でないので、クォータの50件を超過しても問題ないように実装したいところです。 処理システムは1件ずつしか受け付けられないですが、1秒の間隔を空ければ最大50件…
アバター
前置き こちらの記事はカケハシ Advent Calendar 2021の12日目の記事になります。 新規事業の開発を担当している木村です。 本来であれば新規事業で利用している技術を紹介したいのですが、まだリリースに至っていないので汎用的なテーマになっております。 カケハシでは何人かの有志が集まって定期的な社内勉強会が開かれております。 私が参加している「データ基盤のトレンド勉強会」では社内横断でデータエンジニアリングにまつわる課題を解決するための様々な視点からの洞察を得るために、最新の技術をキャッチアップしています。 私の個人は、トレンドを無策に追うよりも背景となる概念を理解した方が効果的に…
アバター
こんにちは、Musubi開発チームで開発ディレクターを担当している門垣です。 この記事はカケハシアドベントカレンダー2021の11日目の記事になります。 カケハシではコロナ前からリモートワーク環境が整っており、私の所属するMusubi開発チームは全員がフルリモート環境で働いています。長野県や三重県といった遠隔地のメンバーも所属しているため、出社日も設けておりません。 本日は「フルリモートワークのチームがオンライン雑談を6ヶ月続けてみて感じたこと」を共有したいと思います。 フルリモートの会社に転職したいけど少し不安がある 今のリモートワーク環境をもっと楽しくしたい と考えている方の参考になると嬉…
アバター