タグ

設計に関するikosinのブックマーク (414)

  • アジャイル開発とデータベース設計 - 変化に対応するシンプルな実装のために必要なこと - Agile Journey

    はじめまして。そーだい(@soudai1025)です。私は普段は技術コンサルティングや受託開発を請け負う合同会社HaveFunTechの代表として、また、予防治療の自社サービスを展開する株式会社リンケージのCTOという二足の草鞋を履き、日々、さまざまなWebサービスの開発に携わっています。 これまでの開発経験のなかで、データベース設計に関わるさまざまな問題に遭遇してきましたが、稿ではとくに、アジャイル開発時に発生しやすい問題とその対処についてお伝えしたいと思います。開発の現場で目にしやすい実装におけるアンチパターンを示しつつ、アジャイルという指針を維持しながら、対処となるデータベース設計についてご紹介します。 会員登録のアンチパターンと処方箋 イージーな実装とシンプルな実装 Userと言う名の罠 拡張と破綻 データベースは変化に弱い 仕様変更とテーブル変更 Addで変化に追従する 正規化

    アジャイル開発とデータベース設計 - 変化に対応するシンプルな実装のために必要なこと - Agile Journey
  • 午前中に読み始めたら午後には設計が上達してしまった! - 『Tidy First?』を読んだ - Mitsuyuki.Shiiba

    私の目標は、読者が午前中に書を読み始めたら、午後には設計が上達していることだ。 当にそのとおりだった。読んでる途中で既に自分の設計に対する考えが良い方向に変わってると感じた。とても良かった。おすすめです。 『Tidy First?』 をいただいて読んだ。昨日(2024年12月25日)発売。英語版が2023年11月28日発売だから、たった1年で日語版が出たということだな。うれしい!はやい!ありがたい! ソフトウェア設計に焦点を当てたシリーズの最初の1冊ということで、サブタイトルに「個人で実践する経験主義的ソフトウェア設計」とあるように、1人でできる種類のソフトウェア設計について書かれている。続刊ではチームについての話になる予定のようで、それも今から楽しみ。 2周読んだ なんとなく2周読もうと思ってそうした。 1周目は細かい部分は気にせずにざーっと1,2時間くらいで読んだ。全体的にどうい

    午前中に読み始めたら午後には設計が上達してしまった! - 『Tidy First?』を読んだ - Mitsuyuki.Shiiba
  • Visualizing software architecture with the C4 model

  • Software Architecture Diagrams with C4 Model

  • Structurizr

    Software architecture models as code Structurizr builds upon "diagrams as code", allowing you to create multiple software architecture diagrams from a single model. There are a number of tools for creating Structurizr compatible workspaces, with the Structurizr DSL being the recommended option for most teams. This Structurizr DSL example creates two diagrams, based upon a single set of elements an

    Structurizr
  • Home

    The C4 model for visualising software architecture The C4 model is: A set of hierarchical abstractions (software systems, containers, components, and code). A set of hierarchical diagrams (system context, containers, components, and code). Notation independent. Tooling independent. Uses and benefits The C4 model is an easy to learn, developer friendly approach to software architecture diagramming.

  • 当人認証、身元確認、クレデンシャル設定を組み合わせた "詰みにくい" ログイン機能の設計

    ritou です。 もう23日ですが、Digital Identity技術勉強会 #iddance Advent Calendar 2024 10日目の記事です。 最近パスキー関連の記事などを書いている中、いわゆるログイン機能について様々な捉え方があることを改めて感じています。 ユーザー目線ではなかなか難しいことはありつつも、開発者目線でログイン機能を設計する際には共通認識を持つことが重要です。今回はアカウントリカバリー付きのログインフローを設計する際の考え方を整理してみます。 キーワード この説明におけるキーワードとなる処理は次の3つです。 当人認証: いわゆる認証処理。サービス登録済みのユーザーを識別し、検証する。 パスワード認証、パスキー認証、メール/SMS OTP、TOTPなど個々の認証方式で実現できる部分。ソーシャルログインも同様。 身元確認: ユーザーが主張した属性情報の検証。

    当人認証、身元確認、クレデンシャル設定を組み合わせた "詰みにくい" ログイン機能の設計
  • アーキテクチャレベルで依存性を逆転させたら最高だった話

    はじめに LITALICO の @katzumi です。 2020 年に LITALICO へ Join して以来、ずっとレセプト業務の開発に携わってきました。 レセプト業務は複雑なドメインゆえミスが許されず、さらに3年に一度の大きな報酬改定があり、ロジックが大幅に変わります。 その改定作業は情報公開から実装完了までの期間が約 3 ヶ月と短いです。また、年々複雑化するシステムに対応する必要があります。 その複雑な業務に立ち向かった内容を過去にも以下の内容で開発業務の記事を書いていました。 今年 2024 年は法改正の年になっており、取り組みの結果、その後どうなったのか?を振り返っていきます。 今回も壮絶だった法改正 私自身の大規模法改正の経験が今回で 2 回目となります。 チーム構成としては私ともう一名を除いて前回の 2021 年度法改正を経験したメンバーがいませんでした。前回は 3 種類

    アーキテクチャレベルで依存性を逆転させたら最高だった話
  • イベントソーシング・CQRSで、ドメイン駆動設計をシンプルかつ柔軟に実践する

    イベントソーシングは複雑で、導入障壁が高いと思っていませんか?しかし、ドメイン駆動設計(DDD)と組み合わせることで、システムの複雑さを扱いやすくし、柔軟な開発を実現できます。セッションでは、イベントソーシング・CQRSとDDDの共通点と、それがもたらすメリットをわかりやすく解説します。具体的には、関心の分離や変更への対応力の向上など、開発現場でどのように役立つのかを、実際の事例を交えて紹介します。イベントソーシングをこれから始めたい方や、DDDをより深く理解したい方におすすめです。

    イベントソーシング・CQRSで、ドメイン駆動設計をシンプルかつ柔軟に実践する
  • みてねのコンテンツ自動作成・自動分類を支える写真・動画解析パイプライン | gihyo.jp

    みてね×gihyo.jpスペシャル みてねのコンテンツ自動作成⁠⁠・自動分類を支える写真⁠⁠・動画解析パイプライン 株式会社MIXIで「家族アルバム みてね」(⁠⁠以下みてね)のData Engineeringグループ所属の松石と申します。 今回は、これまで連載でご紹介してきたみてねの1秒動画や自動作成フォトブック、人物ごとのアルバムといった、みてねのコンテンツ自動作成・自動分類機能の裏側で用いられている写真・動画解析パイプラインについてご紹介します。 写真⁠・動画解析パイプラインのビジネス的な意義と要件 意義 前述のような各種コンテンツ自動作成・自動分類機能は、いずれもみてねのビジョンである「⁠『⁠世界一愛されるサービス』と『圧倒的収益』を達成」の実現のために提供しています。 たとえば1秒動画には、全家族に3ヵ月ごとにお届けする「四季版」と、プレミアム家族限定で毎月・毎年お届けする「月

    みてねのコンテンツ自動作成・自動分類を支える写真・動画解析パイプライン | gihyo.jp
  • ニコニコ生放送でBCD Designを4年運用した知見(導入編)

    この記事は ドワンゴ Advent Calendar 2024 11日目の記事です。 はじめに 株式会社ドワンゴのニコニコ生放送でフロントエンドを担当している misuken です。 現在のニコニコ生放送のフロントエンドReactで実装し始めたのが2016年、その後2020年からBCD Designを導入しました。 全体では8年、BCD Designを導入してから4年が経過しました。 BCD Design によるコンポーネントの分類は今でも継続的にいいねとストックが増えており、JSConf JP 2024のKINTOテクノロジーズさんのスライドの中でBCD Designへの切り替えを検討されているという話が上がるなど、興味を持たれる方も増えてきているように感じます。 この記事では、ニコニコ生放送でBCD Designを導入してから4年間の運用で得られた知見を共有していきます。この記事がコ

    ニコニコ生放送でBCD Designを4年運用した知見(導入編)
  • マルチテナントSaaSアーキテクチャの構築

    TOPICS 発行年月日 2025年01月 PRINT LENGTH 468 ISBN 978-4-8144-0101-7 原書 Building Multi-Tenant SaaS Architectures FORMAT Print PDF SaaS(Software as a Service)とは、ソフトウェアをクラウド環境などでホストし、ユーザーにサービスとして提供する形態のビジネスモデルです。マルチテナントとは、複数のユーザーが同一のリソースを共有するモデルや、それらを統一された体験を通じて管理する仕組みを指します。セキュリティや可用性、運用面などで独自の考慮事項が必要となりますが、インフラストラクチャコストの削減や運用効率の向上が見込めるため、近年その採用件数は右肩上がりに増加しています。書は、エンジニア向けの格的なSaaS解説として、マルチテナントSaaSの概念、実践的

    マルチテナントSaaSアーキテクチャの構築
  • PostgreSQLで時間枠を適切に扱う設計 - そーだいなるらくがき帳

    はじめに Googleカレンダーのような時間枠を扱うシステムを設計する際、開始・終了時刻を管理するロジックは容易ではない。 しかし、PostgreSQLには 範囲型 があり、この機能を活用することで、開始時刻(begin_at)と終了時刻(end_at)を1つのカラムで扱えるようになる。 そこで稿では、範囲型を用いた設計と、その利点を紹介する。 時間枠を扱う難しさ まず前提として時間枠の扱いがなぜ難しいかを紹介する。 ソフトウェアデザインでやっている連載、実戦データベースリファクタリングの 【12】厄介な時間枠に向き合う でも紹介したが、時間の範囲を比較するときが難しい。 範囲の重なりには以下の種類がある。 包含:範囲Aが範囲Bを完全に含む 重複:範囲Aと範囲Bに共通点がある 隣接:範囲Aと範囲Bが隣り合う 時間枠の扱いはSQLに限らず、プログラミングの題材として難易度が高い。 特に重複

    PostgreSQLで時間枠を適切に扱う設計 - そーだいなるらくがき帳
  • データ分析で用いるSQLクエリの設計方法

    STEP2. アウトプットを実現するために必要なデータソースを書き出す アウトプットの整理ができたら、今度はインプットとなるデータソースの整理を行いましょう。 必要なデータソースは要件から読み解くことができます。 今回は「10代のユーザーの月間視聴数(性別 / 動画カテゴリごと)の推移をグラフで見たい」という要件です。 ここから、この分析に必要なエンティティ(実体)とその属性、集計値を抽出しましょう。 エンティティと属性 ユーザー 性別 年代 動画 カテゴリ 集計値 視聴数 これらのデータを管理するテーブルを、調査やヒアリングを実施して探します。 今回は以下のテーブルを使用することとします。 user:ユーザー登録に必須な入力項目を管理するテーブル user_profile:ユーザーが登録後に設定できる任意の入力項目を管理するテーブル video:ユーザーが投稿した動画を管理するテーブル

    データ分析で用いるSQLクエリの設計方法
  • Dataflow: ストリーミング分析

    リアルタイム データの可能性を最大限に引き出します。Dataflow は、リアルタイムの意思決定とカスタマー エクスペリエンスを加速するのに役立つ、使いやすくてスケーラブルなフルマネージド ストリーミング プラットフォームです。

    Dataflow: ストリーミング分析
  • Tidy First?

    乱雑なコードは厄介です。コードを読みやすくするには、管理できる小さなまとまりに分割する必要があります。書は、エクストリームプログラミングの考案者で、ソフトウェアパターンの先駆者であるケント・ベックが、システム全体の構造を念頭に置き、コードを改善するには、いつどこで整頓するのがよいかを解説します。 整頓のしかたを一気に習得するのではなく、整頓を少しずつ試しながら自身の課題解決につなげます。コード行数の多い大きな関数については論理的にコードを小さなチャンクに分割する方法を学び、その過程で、結合、凝集、ソフトウェアシステムの経済的価値(ディスカウントキャッシュフローやオプショナリティ)などソフトウェア設計の背後にある重要な要素を解説します。 また、ソフトウェア設計の基礎理論とそれに作用するフォース、システムにおけるふるまいの変更と構造の変更の違い、先に整頓したりあとに整頓することによるプログラ

    Tidy First?
  • 現場で役立つモデリング 超入門

    JJUG CCC 2024 Fall 発表資料 - モデリングの狙い(簡略化、実用性、経済性) - モデリングの基部品(言葉、囲み、矢印、境界線) - 箇条書きモデリング - 図形化モデリング - モデリングの重点領域 - 事業活動と業務の理解のモデリング - モジュール構造…

    現場で役立つモデリング 超入門
  • 面倒なのは嫌なのでコンテナのマネージドサービスの極振りしたいと思います。

    2023/03/25(土) PHPerKaigi 2023 の登壇資料です。

    面倒なのは嫌なのでコンテナのマネージドサービスの極振りしたいと思います。
  • モデリングとアーキテクチャの知見を積み上げて基幹システムに可変性を注入する - MonotaRO Tech Blog

    こんにちは。 この記事では、2024/5/22に開催された「アーキテクチャを突き詰める Online Conference」で弊社CTOの普川がお話しした内容(ビジネスの構造をアーキテクチャに落とし込みソフトウェアに可変性を注入する〜モノタロウ基幹システム刷新の実践例)を、現場目線から改めてご紹介します。 なお、稿の執筆は頼と尾髙が分担しておりまして、途中で急に文体が変わったな?と違和感を持たれることもあろうかと思われますが、ご容赦いただけますと幸いです。 稿をさらに深掘りするイベントを10/4(金)に開催いたします。 ご興味ある方はぜひご登録ください。 https://connpass.com/event/328360/ 問題領域は関連システムの密結合点 分割を試みる 最初のモデルを手に入れる レイヤードアーキテクチャに沿って実装 レイヤードアーキテクチャのメリット モデルを洗練させ

    モデリングとアーキテクチャの知見を積み上げて基幹システムに可変性を注入する - MonotaRO Tech Blog
  • Data Models

    Click here for our new Courses on Database Design and Data Modelling. This page shows a list of our Industry-specific Data Models in 50 categories that cover Subject Areas and are used to create Enterprise Data Models. Here is an alphabetical list all of our 1,800+ Data Models . Click here to see where our Models are used. We have written a Short downloadable Tutorial on creating a Data Warehouse