タグ

設計に関するkahkiのブックマーク (63)

  • 設計の知識と技能で駆動するソフトウェア開発

    Object Oriented Conference 2024 登壇の機会をいただいたので、ここ数年、設計について考えていることを、言語化してみました。 はじめに 設計と開発プロセスの関係性 ソフトウェア設計の知識と技能 ① ソフトウェア設計の基礎知識 a. 基課題 b. 解決のアプローチ c. モジュール化:基となる4つの技法 ② モジュール化 a. モジュールの分類 b. オブジェクト指向プログラミングのモジュール化 c. ドメイン駆動設計のモジュール化 ③アプリケーションのモジュール構成(参照モデル) コア(中心) ポート(境界) アダプタ(周辺) ④モデル駆動設計 全体 事業活動、要件、アーキテクチャ コア(中央) 業務ロジック、ドメインモデル 業務機能、アプリケーションサービス アダプター(周辺) 記録モデル、データベーススキーマ 連係モデル、プロトコル設計 対話モデル、イン

    設計の知識と技能で駆動するソフトウェア開発
  • 「システム設計の面接試験」が使える場面は面接試験だけじゃない! 「システム設計の面接試験」の勉強会を行った話 - ANDPAD Tech Blog

    お久しぶりです。 ANDPADボードのプロダクトテックリードの原田(tomtwinkle)です。 「システム設計の面接試験」はいいぞ……! 的な記事が上がってきてせっかくなので書かねばと筆を執りました。 zenn.dev 「システム設計の面接試験」はいいぞ……! ! What's System Design Interview? 「Grokking Modern System Design Interview」「System Design Interview」とは主に外資企業の面接で行われるJob Interviewの対策マニュアルみたいなものです。 面接試験 と言いつつ内容は大体GoogleAmazon, Meta(旧Facebook), Netflix, X(旧Twitter)等の大規模トラフィックを捌くシステムを構築する際どのようにシステムを設計するかという話なのでAWSのマネージ

    「システム設計の面接試験」が使える場面は面接試験だけじゃない! 「システム設計の面接試験」の勉強会を行った話 - ANDPAD Tech Blog
  • 「システム設計の面接試験」という本が良かった

    皆さんこんにちは。株式会社ラクーンホールディングスで働いている川崎です。 最近「システム設計の面接試験」というを読みました。 個人的にとても面白いと感じたので、オススメポイントと感想を共有します。 直近でシステム設計の面接を受けない方も、きっと読んで得るものがあると思います。 の概要 システムの設計はシステムの機能や仕様、データのアクセスやセキュリティを左右するため、非常に重要だが、従うべき一定のパターンがないために、その習得は難しいと言われています。 一方で、システム設計自体がITエンジニアに日常的に求められる作業であるため、システム設計の面接試験は米国で広く採用されています。 書では、「Webクローラ」「通知システム」「ニュースフィードシステム」「チャットシステム」「youtube」など実践的なテーマに沿って、システム設計の問題を出題し、その回答を解説することで、システム設計力を

    「システム設計の面接試験」という本が良かった
  • ソフトウェアアーキテクトに必要なシステム設計知識を学んだ17冊 - yoshikipom Tech Blog

    はじめに アーキテクチャ・デザイン全般 ソフトウェアアーキテクチャの基礎 Clean Architecture 達人に学ぶソフトウェアの構造と設計 Design It! ソフトウェアシステムアーキテクチャ構築の原理 データ指向アプリケーションデザイン マイクロサービス マイクロサービスアーキテクチャ マイクロサービスパターン 実践的システムデザインのためのコード解説 ソフトウェアアーキテクチャ・ハードパーツ ドメイン駆動設計 エリック・エヴァンスのドメイン駆動設計 ドメイン駆動設計入門 ボトムアップでわかる!ドメイン駆動設計の基 現場で役立つシステム設計の原則 要件定義 はじめよう!プロセス設計 ~要件定義のその前に はじめよう! 要件定義 ~ビギナーからベテランまで はじめよう!システム設計 ~要件定義のその後に Web, Web API Webを支える技術 プロになるためのWeb技術

    ソフトウェアアーキテクトに必要なシステム設計知識を学んだ17冊 - yoshikipom Tech Blog
  • 良い設計と悪い設計の違い

    2022年11月7日(月) 「現場で役立つシステム設計の原則 - Forkwell Library #9」 発表資料

    良い設計と悪い設計の違い
  • 加速するコンポーネント設計入門 / Component Design as an Accelerator

    社内勉強会用 デザイナーとフロントエンドエンジニアの境界をなくし、UI開発を加速させるためのコンポーネント設計入門 ※フロントエンドエンジニア視点 [Keywords] - 共通認識としてのデザインシステム - 共通認識としてのコンポーネント設計

    加速するコンポーネント設計入門 / Component Design as an Accelerator
  • UMLとかAWS構成図とかを描くツール

    UMLとか構成図とかの図を描くの何のツールを使えばいいか迷いませんか?私は迷います。 ですので、最近使っているツールを紹介します。 世の中にツールがイロイロあるのは理解した上で、大量に紹介するとやっぱり迷うので、似たようなツールや個人的に使わないツールはバッサリ省いています。 パワポで描く まずはPowerPointです。 エンジニア技術系の方は「パワポで図を描くのはちょっと、、、」と思われるかも知れませんが、状況によってありだと思っています。 パワポのメリット パワポは、ビジネスユーザーならほぼ誰でも使える システムを作る時に、お客さん側も含めた関わるメンバー全員がITに詳しいとは限りません。しかしそういう人にもシステムに対する理解は最低限していただく必要があります。システム構成図とか特に興味がない人に説明するときに「新しいツールをいれてください」というのはハードルが高いです。 パワポ

    UMLとかAWS構成図とかを描くツール
  • Markdownでシーケンス図とかが書けるMermaid記法で業務フローを書いたら意外とイケたので自分なりのコツを紹介してみる | DevelopersIO

    こんにちは、臼田です。 みなさん、業務設計してますか?(挨拶 今回はMarkdownでシーケンス図やフローチャートなどの図を記述できるMermaidを使って業務フローを書いてみたら、意外と書けたので自分なりのTipsを紹介したいと思います。 その前に 注意点として、まだMermaidを使い始めたばかりなので、「もっとこうしたらいいぞ」とか「こっちのほうがいいぞ」とかあれば建設的なフィードバックとしてSNSとかでいただけるとありがたいです。 あと業務フローって表現しましたが、人によって思い描く業務フローが違うと思うので、業務フローの定義に関するツッコミはご容赦ください。私が今回Mermaidで書いたのは以下の図です。(内容はブログ用に簡素化しました) この図のコードは以下のとおりです。(後ほど解説します) sequenceDiagram autonumber actor お客様 partic

    Markdownでシーケンス図とかが書けるMermaid記法で業務フローを書いたら意外とイケたので自分なりのコツを紹介してみる | DevelopersIO
  • そもそもエンジニアは何を設計するのか? 『はじめての設計をやり抜くための本 第2版』から解説

    仕様に沿ったプログラミングができるようになったエンジニアが設計に取り組むために、その全体像と具体的な手順を解説した技術書が『はじめての設計をやり抜くための 第2版』(翔泳社)です。書では大きく外部設計と内部設計、さらにアーキテクチャについて取り上げ、システムをゼロから作り上げるためのノウハウを解説。今回は「第2章 設計の目的」から、そもそもエンジニアは何を設計するのかを説明したパートを紹介します。 設計ができるようになるには、設計とは何かを知る必要があります。世の中には、設計に関する書籍がたくさん出回っています。最近では、オブジェクト指向設計に関するものが多いようです。書店に行くと、「オブジェクト指向」「UML」「ユースケース」といった文字が目に留まります。他にも、「アーキテクチャ」「デザインパターン」「フレームワーク」などもよく見かけるでしょう。これから設計を学ぶ皆さんは、学ぶことが

    そもそもエンジニアは何を設計するのか? 『はじめての設計をやり抜くための本 第2版』から解説
  • データ変更を伴うバッチ処理を書く時に考慮していること - shallowな暮らし

    こんにちは、id:shallow1729です。最近はインフラ寄りなお仕事をよくやっていますがこれまでにいくつかデータ移行やデータ基盤構築などのバッチ処理のお仕事をしてきました。以前にも一度そういった経験を元に記事を書いたのですが、MySQLやシステムに関する知識が以前よりも増えた今もう一度書き直したいなと思いました。 なので今回はバッチ処理を書く時のテクニック2022版という感じです。今の仕事の関係でMySQLrailsを前提にしている話が多いですが、おそらく他のデータベースを使っている人にも役に立つ話が多いのではないかと思います。ただ、今回の記事は経験に基づくものが多く、あまりよくないアイデアもあるかもしれません。改善点や間違いなどあればご指摘ください。 冪等性を持つように 冪等性とは端的に言えばある操作を複数回実行しても一回しか実行しなかった時と同じ結果になる性質の事です。長時間かか

    データ変更を伴うバッチ処理を書く時に考慮していること - shallowな暮らし
  • GitHub - Katsukiniwa/awesome-software-design-ja: 日本語でのソフトウェア開発・設計に関する記事や書籍をまとめたリポジトリです

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

    GitHub - Katsukiniwa/awesome-software-design-ja: 日本語でのソフトウェア開発・設計に関する記事や書籍をまとめたリポジトリです
  • 「設計」で大事なのはこれだった!半年間で40本レビューして分かった 5つのポイント - Qiita

    Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back useful informationYou can use dark themeWhat you can do with signing up

    「設計」で大事なのはこれだった!半年間で40本レビューして分かった 5つのポイント - Qiita
    kahki
    kahki 2021/12/27
  • システム開発で曖昧な要望を形にしていく方法 - arclamp

    このブログはグロースエクスパートナーズ Advent Calendar 2021の10日目です。 社内メンバーから要望があったので、僕自身がどのようにシステム開発の初期段階において、どのように要望を整理し、形にしていっているのかについて書きたいと思います。 なお内容は弊グループの案件を前提にしているので、システム開発は以下のような状況が一般的です。 クライアントは直接契約(プライム) 要望を出すのはクライアント企業内で事業運営側の人で、システム開発にかかわった経験がないことがある 対象システムはSoE/mode2で、一般消費者や取引先などの外部ユーザーと、社内で業務を回す内部ユーザーがいる 相手の話を整理するフレーム まず、相手から得られる情報を4つの階層にわけて整理する必要があります。 目的:達成すべきこと 戦略:目的を確実・効率的に達成するためのシナリオ 戦術:戦略を実行するための具体

    システム開発で曖昧な要望を形にしていく方法 - arclamp
  • 決済システムの残高管理周りの DB 設計と戦略 - カンムテックブログ

    エンジニアの佐野です。今日はカンムの決済システムでユーザの残高管理をどうやっているかについて書きます。 カンムの製品であるバンドルカードはプリペイド方式のカードです。ユーザによる入金、店舗での利用、運営事由の操作などによりユーザの残高が増減します。このような残高の管理について単純に考えると user_id と balance と updated_at あたりをもったテーブルを用意して balance と updated_at を更新していく方法があるかもしれません。しかしながらカンムでは残高を管理するテーブルを持たず、これらイベントの履歴のみで残高を管理しています。以下、記事ではこれらユーザの残高が増減するイベントのことをトランザクションと呼びます。ここでは DB の Transaction Processing を意味しません。 記事のポイントは 残高を管理をするテーブルは作らず、ト

    決済システムの残高管理周りの DB 設計と戦略 - カンムテックブログ
  • 成功法則が詰まったBtoBサイトの標準ワイヤーフレームを無料配布します | knowledge / baigie

    約1年前、BtoB企業における顧客獲得型サイトの勝ちパターンをまとめた『BtoBサイト・チェックリスト』を、ベイジ、才流さん、WACULさんの3社連名で発表し、大きな反響をいただきました。 このチェックリストはブログで公開しただけではなく、私たちのウェブ制作の現場でもフル活用されています。この1年間に手掛けた多くのBtoBサイトが、このチェックリストを満たすように設計され、多くのBtoBサイトでコンバージョン数/率やフォーム誘導数/率の向上など、ポジティブな変化が生まれました。 このような活動の中から、『BtoBサイト・チェックリスト』の内容を満たした『BtoBサイト・ワイヤーフレーム』なるものが誕生しました。これを今回、皆さんにご提供します。リード情報なども一切取らず、そのまま丸ごとお渡しします。 BtoBサイト標準ワイヤーフレームXD版(770KB) BtoBサイト標準ワイヤーフレーム

    成功法則が詰まったBtoBサイトの標準ワイヤーフレームを無料配布します | knowledge / baigie
  • 変化が激しく脆いドメインで技術的負債を増やさない設計

    はじめに ソフトウェア設計についてのポエム。 それも、ドメインが短期的なサイクルで大きく変化をしてしまうような領域での。 僕が携わる領域、つまりメディアサイトでのSEO施策を反映するシステムでの経験を念頭にしている。 結論から言えば、ビルド・アンド・スクラップを可能にしようという話です。 「変化の激しく脆いドメイン」とは? 問題の解決策のコアとなる部分が頻繁に変わるドメインのこと。 特にプロダクトのライフサイクルよりも早く変わるドメインのことを指したい。 僕が携わっている「Webメディア」というのも、この変化の激しく脆いドメインに当たると思う。 Webメディアにおける開発では、SEOUXについて考慮することは避けることはできない。 しかし、SEOUXは頻繁に変わるGoogleのアルゴリズムやユーザの嗜好によって正解が変わっていく。 一年前に正解だったものが、次の年にはただの技術的負債

    変化が激しく脆いドメインで技術的負債を増やさない設計
  • システム設計時の脱Excelの手助けとなるツール - 聞こえないJavaエンジニアが適当に書き連ねていく

    これは何 業務で設計する際に、Excelを使わずにドキュメントを作成したいときに使いたいものまとめ。 Excelだと辛いこと Excelで図を書こうとすると、図形の大きさや矢印の向き、吹き出しの位置の調整に結構時間を取られてしまう。 また、修正したときに差分確認がExcelだと出来ないのでどこを変えたのかがわかりにくい。 改善するにあたって重視するポイント 新たなツールを購入する必要が無い。 フリーのツールで実現できる。 導入が比較的容易である。 環境構築するのが難しくない。 テキストベースで資料を作成出来る。 テキストベースであるため、差分確認が容易である。 構文が難しくない ある程度パターンを把握すれば、直感的に書くことが出来る。 図の配置はツールにほぼ一任が出来る。 図によっては、ちょっと位置を変えたくなることがあるが、その時はオプションでちょっとだけどうにか出来る。 画像ファイルへ

    システム設計時の脱Excelの手助けとなるツール - 聞こえないJavaエンジニアが適当に書き連ねていく
  • オブジェクト指向設計実践ガイド rspec実践編 - Qiita

    はじめに 自分はオブジェクト指向実践ガイドを読んでからテストの書き方、コードの書き方、リファクタリングの仕方など影響を受けた部分が多く、 それまでrubyで悩んでいた部分に光明を指してくれた一冊として非常に素晴らしいだと思っています。 ですがテストに関する項目は社内で読書会をしたときも理解してもらうのが少し難しく、実践していくのは少し難しい点は否めないと感じていて、理解の一助としてこの記事を書くことにしました。 というわけで、この記事では、テストに関する原著のコードの引用と、それに対する簡単な解説を書いています。 また、TestUnitで書かれている原著でのテストコードをrspecで自分が書いた例と、そして自分の持つTipsや考え方を書いています。 なお、今回この記事では単体テストに焦点を当てて書いています。 request specなどのE2Eテストについてもまた書く機会があれば……

    オブジェクト指向設計実践ガイド rspec実践編 - Qiita
  • 実況中継シリーズ 「開発現場で役立たせるための設計原則とパターン」 #builderscon 2018 - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く

    先日慶應義塾大学日吉キャンパスで行われた builderscon2018、最高のカンファレンスでしたね。わたしも「開発現場で役立たせるための設計原則とパターン」というタイトルで発表させていただきました。今回は恒例「実況中継シリーズ」として、プレゼンの再現をブログで行いたいと思います。 なお、過去の実況中継シリーズは前職の技術ブログにまとまっていますので、そちらからご覧ください。 それでは編を開始したいと思います。 開発現場で役立たせるための設計原則とパターン アバンパート よろしくお願いします。 まず最初に簡単に自己紹介をさせていただきます。 先月転職をしまして、8/1からClassiという会社で働いています。と息子がおります。Scalaが好きですが、仕事ではRubyメインという感じです。 Web+DB PressやSoftware Designで何度か特集を書かせていただきました。と

    実況中継シリーズ 「開発現場で役立たせるための設計原則とパターン」 #builderscon 2018 - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く
  • 最近のアプリ界隈での「設計」の違和感 - なるようになるかも

    アプリ界隈で「設計」の話をするときに MVC / MVP / MVVM のような「設計パターン」だけが語られるようになった気がする。 往々にして、「アプリの規模によってどれを採択すべきかは変わる」みたいなお茶を濁すような結論で終わることが多い。 私的な結論 「設計」と、「設計パターン」は別物だと思う。 「設計」のレベルを上げたい。 アーキテクチャシンドロームから抜け出して、価値のあるものを作りたい。 以下、思うところのメモ。 MVC は古い / 劣ったやり方か? MVC は Model をどう構築するかについてとくに規定していない。 MVC への批判をするときに、FatVC が持ち出されることが多いのですが、FatVC を実装してしまうのは単に実装者の能力不足だと考えていて、MVVM を採用しても FatVM を作るだけだと思っている。 また、比較的新しめの Flux アーキテクチャは、良

    最近のアプリ界隈での「設計」の違和感 - なるようになるかも