サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
ChatGPT
techblog.technology-doctor.com
はじめに こんにちは。テックドクターでバックエンドエンジニアをしている筧と申します。 新規プロダクトのバックエンドで、DDD (Domain-Driven Design) と CQRS (Command Query Responsibility Segregation) を組み合わせたアーキテクチャを採用しました。 DDDの本や記事は、Eric Evans著『Domain-Driven Design』や『実践ドメイン駆動設計』など様々あります。CQRSについてもMartin Fowler氏のCQRSの解説記事などがあります。しかし、DDDにCQRSをどう組み込んでいったかという話はあまり見かけません。 この点について以前より情報収集や試行錯誤を重ねていましたが、今回のプロダクトでようやく納得のいく形で実装ができました。この記事ではそのポイントをご紹介します。特にCQRSを具体的に実装してい
こんにちは。テックドクターでプロダクトマネージャーをしている田向です。 テックドクターでは各種AIツールを積極的に導入し、プロダクト開発のプロセス改善に取り組んでいます。 中でもUIデザイン生成ツールv0の導入は、単に個々のプロトタイプの実装を効率化するだけでなく、プロトタイプ開発全体を大きく加速させてくれました。 本記事では、v0の概要から具体的な導入効果までをご紹介します。 v0とは v0は、Vercelが開発したAIツールです。自然言語のプロンプトや画像、Figmaファイルなどをもとに、WebやモバイルアプリのUIを簡単に作成できます。 v0.app v0を選んだ理由 他にもUIを生成できるAIツールはありますが、今回は下記の理由からv0を選びました。 非エンジニアでも使える手軽さ v0の大きな魅力は、自然言語のプロンプトでUIを生成できる点です。 大まかな指示でも一定の品質のものが
はじめに こんにちは。エンジニアリングマネージャの星野です。今回はReactを用いたSPAの他言語化についての事例を紹介します。 テックドクターで開発している臨床研究支援システム「SelfBase」において、海外案件への対応をきっかけに管理画面の多言語化が必要となりました。 フロントエンドはReactを用いたSPA(Single Page Application)で構築されており、自前で実装する場合は react-i18next などを利用したi18n(国際化)対応を行うことになります。そのためには数ヶ月単位の少なくない開発工数が見込まれました。 そこで、「自前での実装」という選択肢だけでなく、「SaaS型の翻訳サービス」の導入を本格的に検討することにしました。 フロントエンド技術スタックと検討ポイント 多言語化を検討するにあたり、技術スタックとSaaS選定のポイントについて説明します。
こんにちは。株式会社 TechDoctor でソフトウェアエンジニアをしている大瀧です。 突然ですが、アプリケーション開発で、クライアントとサーバーの API の型やバリデーションルールが食い違い、予期せぬバグに繋がった経験はないでしょうか。 このような課題の解決策として、本記事では、OpenAPI スキーマをもとに、API の型とバリデーションルールを一元管理する方法を紹介します。 ここで紹介するアプローチは、 OpenAPI スキーマを作成できる限り特定の言語やフレームワークに依存しませんが、今回は具体例として FastAPI、Pydantic、Zod、openapi-zod-client を使った方法を解説します。 なお本記事のサンプルコードは、以下のリポジトリで確認できます。(Kiro と Claude Code が作ってくれました) GitHub - shutootaki/syn
こんにちは、テックドクターCTOの佐藤です。 最近、生成AIや大規模言語モデル(LLM)の発展により、複雑なタスクを自律的にこなすAIが注目されています。今回紹介するAgenticWorkflowは、こうしたAIの力を最大限に引き出すためのしくみです。 このエントリではAgenticWorkflow自体の紹介にくわえ、その実装のためのライブラリ3つを比較した結果をご紹介します。 AgenticWorkflowとは何か、なぜ注目されているのか AgenticWorkflowとは、AIやプログラムが「自分で考えて動く」ようにする仕組み、あるいはそのための考え方のことです。AIがある目的を達成するために、都度人間の指示を受けるのではなく、自分で手順を考えたり、必要な作業を順番に進めたりできるようにします。 これは単なる自動化とは異なります。これまで行われていた自動化では、あらかじめ決められた流れ
こんにちは、データサイエンスチームの藤本と申します。 この記事では、女性の月経周期にともなう不調に焦点を当てます。 この時期は調子が良い、この時期は調子が悪いなど、一般に言われる通説がありますが、実際のところはどうなのでしょう。 社内での取り組みを通して可視化できたデータについてご紹介していきます。 女性の月経周期についての通説 女性の正常な月経周期は、一般的に25~38日、そのうち月経期の期間は3~7日間とされています。ただしこれには、個人差があること、ホルモンバランスやストレスによって変化しがちであることが知られています。 月経周期のサイクルは、月経期→卵胞期→黄体期→月経期...という順番で繰り返されます。 このうち、黄体期は精神的・身体的に不調が生じやすい期間です。プロゲステロンというホルモンが増加する影響でむくみが起こったり、情緒不安定になったりします。 一方で卵胞期は、調子が良
はじめまして、テックドクターのプロダクトデザイナー、庄司です。テックドクター初のデザイナーとして今年1月に入社し、現在は主に新規プロダクトのUXデザインやUIデザインを行っています。 みなさんの組織では、新しいプロダクトやサービスを考えるとき、どうやってアイデアを出していますか?また、出たアイデアをより具体的にしたり、チーム内でそのイメージを共有するためにどうしていますか? 私はテックドクター入社以前も、大人の女性向けファッションメディア、従業員の心身のケアを行うHR系プロダクト、医療スタートアップにてビデオ診療モジュールのデザイン、医師の勤務のためのアプリ...などなど、さまざまな組織や新規事業において、一人目デザイナーとしてサービスのゼロ→イチの開発に携わってきました。 その経験を踏まえて、この記事ではプロダクトを考え、デザインするためのワークショップを紹介します。 これらはテックドク
はじめに はじめまして、テックドクターでバックエンドエンジニアをしている筧と申します。 最近、弊社では API の品質を担保するために「API シナリオテスト」をプロダクトに導入しました。今回は、この API シナリオテストのツールである Postman(+Newman)、Tavern そして runn を比較し、最終的に runn を選んだ理由をご紹介します。 API シナリオテストとは? API シナリオテストとはなんでしょうか? 開発におけるテストといえば、ユニットテストや結合テスト、API テストや E2E テストなどをよく耳にします。しかしAPI シナリオテストという言葉はあまり聞き馴染みがないという方も多いかもしれません。 API シナリオテストは API テストの一種で、複数の API を連鎖的に呼び出して実行するテストです。以下の特徴を持っています。 複数の API を順序
こんにちは。データサイエンスチームの坂本と申します。 使い慣れたRを使って、Google Colabのクラウド環境上でベイズ推定ができたら便利ですよね。しかしやってみると意外に環境設定手順が複雑で、悩むことになるかもしれません。 TechBlog第15回では、統計解析環境Rのユーザーが、Google Colab上でベイズ推定を行う際の手続きを紹介します。 ベイズ推定にはハミルトニアン・モンテカルロ法のNUTSアルゴリズムを使用してパラメータ推定を行うためのRパッケージ、cmdstanrを利用します。 また、せっかくですので、後半では構築した環境を使った分析例もご紹介します。ウェアラブル端末で測定した睡眠データで「睡眠リズムの安定性(不安定性)」を定量化してみましょう。睡眠リズムを定量化する方法の意外な難しさと、時刻データの解析に関するちょっと面白いお話も披露できたらと思います。 ※2025
こんにちは。テックドクターでプロダクトマネージャーをしている田向です。 テックドクターでは2023年からプロジェクト管理ツールとしてLinearを導入しています。 linear.app 一言で言えば、Linearは「プロジェクト管理の手間を最小化し、顧客に価値を提供するための開発に集中できるツール」です。 プロジェクト管理は大事ですが、管理することに時間を取られて、肝心の開発に手が回らなくなってしまっては本末転倒です。 本記事ではLinearの概要と、個人的にLinearを使用する最大のメリットと感じているGitHub連携やSlack連携の機能を中心にリアルな使用感を紹介していきます。 「もっと使いやすくてシンプルなプロジェクト管理ツールが欲しい」 「プロジェクト管理作業の時間を減らして開発に集中したい」 そんな方に、この記事が少しでも参考になれば嬉しいです。 Linearの概要 Line
こんにちは、データサイエンス部の深見です。 日々ウェアラブルデータ(※)と向き合う仕事をしていると、データに対する勘のようなものがついてきて、ふと「この値にはこんな傾向があるのでは?」とひらめいたりします。 今日はそんなひらめきの中から、心拍のタイプ分けに関するお話です。 また、後半ではタイプ分けに使用したDTW(Dynamic Time Warping:動的時間伸縮法)と呼ばれる手法についても解説します。 ※ウェアラブルデータ……スマートウォッチを代表とするウェアラブル端末で測定された生体情報等のデータ 心拍データに見る5つのタイプ 心拍のデータをじっくりと眺めていると、就寝や運動、または食事など、様々な動作・環境に影響を受けている様子を垣間見ることができます。また、ただじっとしている時でも、その日の体調や天候などによって挙動が変わって興味深いものです。 私はテックドクターに入社して以来
はじめに はじめまして、テックドクターでエンジニアリングマネージャをしている星野です。 弊社ではPythonを活用することが多く、型ヒントを積極的に導入し、型安全なコードの実現に努めています。 Pythonの型ヒントはPython 3.5(2015年9月リリース)から導入されましたが、その後も継続的に機能追加が行われ、使いやすく進化しています。 本記事では、型ヒントの基本的な説明に加え、最新バージョンでの改善点を紹介します。 型ヒントとは Pythonは動的型付け言語のため、変数の型を指定する必要がありません。 そのためコードの記述が簡潔になりますが、一方で実行するまで型エラーが検出できず、予期しないバグの原因となることがあります。 大規模開発では、実行するまで動作が保証されないことが大きなリスクとなるため、Python 3.5 から型ヒントが導入されました。型ヒントを活用することで、実行
今回は、テックドクターで開催した社内イベント「ウェルリンピック」(Well-lympics)をご紹介します。 ウェルリンピックは、参加者が種目ごとに分かれて競い合ったり協力したりしながら、生活改善をするイベントです。 参加メンバーは「睡眠」「リラックス」「消費カロリー」の3つの種目からひとつを選び、それぞれスマートウォッチのFitbitを着用してウェアラブルデータ(※)を記録。競技ごとの基準に沿ってデータの分析を行いながら、開催期間の2週間の間に生活改善ナンバーワンを目指します。 ※ウェアラブルデータ……スマートウォッチを代表とするウェアラブル端末で測定された生体情報等のデータ 開催の目的 使用したスライド資料よりウェルリンピックの目的はいくつかありますが、ここでは2つを紹介します。ひとつは社員が楽しみながら健康を推進すること。もうひとつは、私たちデータサイエンスチームの、健康に関するデー
こんにちは。データサイエンスチームの坂本と申します。 みなさん、データ処理における「外れ値」と聞くと、真っ先に除外すべきものというイメージをお持ちではないでしょうか。実は、必ずしもそうとはいえない場合もあるのです。 TechBlog第八回では、ウェアラブルデータ(※)解析の面白さを知っていただくために、この「外れ値」をめぐるひとつの事例をご紹介したいと思います。 ※ウェアラブルデータ……スマートウォッチを代表とするウェアラブル端末で測定された生体情報等のデータ ウェアラブルデータの分析手法 ウェアラブルデータの分析では、目的に応じてさまざまな手法を使います。 代表的なものには、2つの群の差を取り扱う手法(t検定、分散分析等)や、データとデータの関連性を捉える手法(相関分析、一般化線形モデル等)、反復測定を考慮した手法(マルチレベル分析等)、分類や予測に適した手法(機械学習、深層学習等)、グ
こんにちは。プロダクト開発チームでネイティブアプリの開発を担当している大嶋です。 この記事では、Appleが提供する健康データ管理のためのフレームワークであるHealthKitを活用し、健康管理アプリを開発する方法について解説します。 HealthKitを利用することで、iOSおよびwatchOSアプリがユーザーの健康やフィットネスデータを収集・管理できるようになります。具体的には、iPhoneやAppleWatchが収集したデータをアプリから読み込んだり、逆にアプリで収集したデータをHealthKit経由で蓄積することも可能です。 これから健康やフィットネスに関するアプリを開発したいと考えている方は、ぜひ本記事を参考にしてください。 Apple公式サイト「ヘルスケアとフィットネス」より引用 HealthKitの概要 HealthKitは、ユーザーの同意のもとでアクティビティ・心拍数・体重
こんにちは、データサイエンスチームの瀬川です。 私は以前、病院で理学療法士として働いていました。 日々患者さんと接する中で感じたのは「自身の不調がより早期に発見でき、他者にもわかりやすく伝えられる」ことがとても重要であるということです。 それを可能にしたいという想いから、現在はデータサイエンティストの立場で、身体の状態を可視化し、誰もが自分の体調を理解しやすくなる未来を目指しています。 今回のTechBlog第六回では、私が進めている「女性の月経周期に関連するデータの可視化」に焦点を当て、その取り組みについてご紹介していきます。 「Ladynamic」プロジェクトと、女性ヘルスケアの課題について 弊社には女性メンバーのみで構成された「Ladynamic」というプロジェクトがあり、女性の視点に立った課題提起とデータ解析に取り組んでいます。 女性がキャリアを築きながら社会で活躍する機会はますま
初めまして、テックドクターでフロントエンド開発を担当している大瀧です。 ディレクトリ構成はコードの可読性やスケーラビリティに関わる重要な要素であると思っています。 しかし、フロントエンドのディレクトリ構成はベストプラクティスが確立されておらず、わりと悩むポイントです。 そこで今回は、Next.jsのApp routerにおいて、弊社で採用しているディレクトリ構成を共有します。この記事がディレクトリ構成に悩む開発者の助けになれば幸いです。 ディレクトリ構成の自由度が高すぎる問題 さきほど「フロントエンドのディレクトリ構成はベストプラクティスが確立されていない」と書きましたが、特にApp routerのディレクトリ構成については、公式ドキュメントで以下のように記載されています。 There is no "right" or "wrong" way when it comes to organi
こんにちは。データサイエンスチームの坂本と申します。TechBlog第四回では、日常生活中の心拍や睡眠などのデータを解析する意義や可能性について、分析者の視点からお話しします。 私たちは、スマートウォッチを代表とするウェアラブル端末で測定されたデータの解析を行っています。このデータ解析という行為を少し抽象的に言い換えると、「数字の羅列から意味を見つけ出す技術」であると表現できます。 そこから得られる「意味」とは、いったい何であり、何の役に立つのでしょうか? 心や身体の「調子のバロメータ」 私たちが主に取り扱う心拍・運動・睡眠のデータ*1は、いわば心や身体の「調子のバロメータ」です。 これは体温計のようなものだと考えると馴染みやすいかもしれません。37度の微熱だとか、39度近い高熱だといったように、自分の体調やしんどさを家族やお医者さんに伝える時の「言葉」になるものです。 もちろん、体温だけ
初めまして、テックドクターのバックエンドエンジニアの魚木です。 私が担当するプロジェクトに、データベースのテーブルのあるカラムを前方一致検索する機能があります。そこに部分・後方一致検索もしたいという要望がありました。 そのデータベースはB+treeインデックスが使用されていますが、B+tree (または同系統のtree) インデックスは部分・後方一致検索は効率良くできないと言われています。 結果的に機能追加は見送られたのですが、前方・部分・後方一致検索の違いについて考えるよい機会になりました。 本記事は、B+treeが部分・後方一致検索を効率よくできない理由と、その代替手段として後方一致検索を高効率でする方法を説明します。 MySQLを前提としますが、インデックスの構造が同系統であれば同じような結論になります。 なぜ前方一致検索のみ高効率なのか まずはtree構造が前方一致検索を効率よく処
このページを最初にブックマークしてみませんか?
『techblog.technology-doctor.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く