タグ

設計に関するtatsu_toraのブックマーク (12)

  • 良い設計と悪い設計の違い

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

    良い設計と悪い設計の違い
  • テーブル設計の考え方とやり方 [入門編]

    「基から学ぶテーブル設計 超入門!」 https://modeling-how-to-learn.connpass.com/event/242944/ の発表資料。 - 2つの設計スタイルの違いを理解する - 何を記録するか(資源・活動・当事者・規程) - どう記録するか(テーブルの役割を単純に保つ) - 基ツール:CREATE TABLE文 - データ型と制約

    テーブル設計の考え方とやり方 [入門編]
  • 個人的なアプリケーション設計のバイブル3選 - Runner in the High

    自分が格的に設計を意識するようになったのは、2015年の夏に現職であるFringe81株式会社で開催されていたサマーインターンに参加してからだ。 インターンではDDDとクリーン・アーキテクチャ*1を一から勉強してAPIサーバーに実装する、というカリキュラムであったが、いま思うと2週間という比較的長いインターンで僕が学べたことと言えば当に微々たるものだった。つまるところ、それくらいには設計というものは奥が深い。常になんらか特定のデザイン・パターンなりアーキテクチャ・パターンを適用することでアプリケーション開発がうまくいくということはなく、それらの様々な知識から少しづつ応用されたものが最終的なアプリケーションの設計に対して真の洞察を与えてくれるものというのが、僕自身のいまの認識である。 設計はまさに Connecting the dots そのものだ。多くを知れば知るほど、アプリケーション

    個人的なアプリケーション設計のバイブル3選 - Runner in the High
  • 4.1. ドメイン層の実装 — TERASOLUNA Global Framework Development Guideline 1.0.0.publicreview documentation

    4.1.1. ドメイン層の役割¶ ドメイン層は、 アプリケーション層に提供する業務ロジックを実装するためのレイヤとなる。 ドメイン層の実装は、以下3つに分かれる。

  • 無駄な設計書をなぜ書かされるのか・なくすにはどうしたらいいか、に関する乱文 - Murga

    コードを日語訳したような設計書CREATE TABLE 文を表形式に変換した定義書。これらは「Excel 方眼紙」と呼ばれる日の SE 業界を象徴する伝統的な手法で記述されており、ロクにメンテナンスされることなく引き継がれ、保守担当者を困惑させる。 今回はこうした設計書がなぜ存在し、どうしたらこんな醜いものをなくせるか、考えたい。 対象とするのは、ブラウザからアクセスできる、Web アプリケーションとして動作する社内のアレコレを管理するようなシステムを作る場合。組み込み系などは経験ないので、ソフトウェア開発における話、それもインターネットに繋がっていない環境で仕事をさせられているような時代遅れの SIer に限定させていただきたい。 漠然と思った順に書き殴っていくので、乱文です。 自分の基主張 コードファースト。ソフトウェアは実際に動いているコードが主たる成果物であり納品物。設計書

    無駄な設計書をなぜ書かされるのか・なくすにはどうしたらいいか、に関する乱文 - Murga
  • Microservicesでなぜ作るのか - An Epicurean

    「Microservices時代の監視設計」と言うエントリーを書きたいのだけど、そもそもなんでMicroservicesで作る必要があるのかというところを先に書く必要があると感じたので私見を述べてみる。すでにMicroservicesで作っている人からすると「何をいまさら」と言う内容も多いかもしれません。 Microservicesでなぜ作るのか ドメイン分割のレイヤーの変遷 今は成長段階 Microservicesのメリットとアーキテクト クラウドはフレームワークになった 共有データベースアンチパターンとMicroservices設計 Microservices時代の監視設計 参考図書など Microservicesでなぜ作るのか 身も蓋もないことを書いてしまうと、これはもう「潮流がそうなっているから」ということだと思う。業界がそういうアプリケーションの作り方をしてノウハウを貯めていく流

    Microservicesでなぜ作るのか - An Epicurean
  • 設計ガイドライン

    ビジネスロジック(ビジネスルール)を記述するためのクラス設計のガイドラインです。 ビジネスルールに基づく計算ロジックと判定ロジックをプログラミング言語で記述したものがビジネスロジックです。 このガイドラインは、ビジネスロジックを型指向でプログラミングするための考え方とやり方を説明します。 型による設計 型によるモジュール化 型とは値の種類である ビジネスロジックの計算・判定の対象になる「値の種類」を特定する 値の種類ごとに、データとロジックを一つのモジュール(クラス)にまとめる 値の種類ごとにロジックを一つのモジュールにまとめることで、同じロジックが複数のモジュールに重複することを防ぐ 型は、次の3つで定義する 値の種類の「名前」 値に対して有効な計算 値の有効な範囲 クラスを使って、型を記述する クラス名で値の種類を表現する メソッドで、値に対して有効な計算を表現する 値のMAX, MI

    設計ガイドライン
  • テスト自動化の理論と技術と戦略:LINE Developer Meetup Tokyo #39 - Testing & Engineering - LINE ENGINEERING

    テスト自動化の理論と技術と戦略:LINE Developer Meetup Tokyo #39 – Testing & Engineering By Hiroyuki Ito | 2018.07.09 2021.01.08LINE株式会社のSET(Software Engineer in Test)です。「SETタスクフォース」(以下「SETチーム」と表記)のリーダーとして、主にLINEプラットフォームのサーバーサイドで、テスト自動化を活用したプロダクト開発ライフサイクルの改善を立案・実施・主導しています。また、アジャイルコーチも兼務しています。 はじめに こんにちは。LINE株式会社のSET(Software Engineer in Test)の伊藤 宏幸(Hiroyuki Ito)です。 2018年6月27日(水)に、電気通信大学の西 康晴さん(以下「にしさん」と表記)をお招きして、「

    テスト自動化の理論と技術と戦略:LINE Developer Meetup Tokyo #39 - Testing & Engineering - LINE ENGINEERING
  • 認証を含む API 開発で検討すべきこと - ボクココ

    ども、@kimihomです。 API に関する基礎的な話で、なぜ API が重要なのか、APIの実装で注意する点について記述した。 今回はAPI開発において最も頭を悩ます、認証の問題について考えてみたい。 API における認証 よくあるログインが必要なページを考えてみていただきたい。 通常のWebアプリケーションであれば、Cookieという仕組みを使って毎回Webサーバーにアクセスするときにsession idというものを送信し、それとユーザー情報を紐付けたデータを取ってくることで、どんなユーザーからリクエストが来たのかをWebアプリケーション側で判断することができる。これにより、私たちはいつも閲覧しているWebアプリケーションが自分専用の画面として見れるようになっている。 これがAPIになると話は違ってくる。Cookieという仕組みが使えないのである。ということで、なんとかしてAPIにア

    認証を含む API 開発で検討すべきこと - ボクココ
  • 第1回 Elastisearch 入門 インデックスを設計する際に知っておくべき事 | DevelopersIO

    今回、第1回目の Elasticsearch 入門という事で、今回は「インデックスを設計する際に知っておくべき事」というテーマにしてみました。ここでのインデックスの設計とは RDB のデータベースとかテーブル、ビューの設計に当たるところです。 Elasticsearch は RDB など他のデータベスに比べ、その設計方法も結構独特です。(と言うか同じ事を実現するにしても色々な方法が用意されていて、さらにアプリケーション要件〜システムアーキテクチャ、運用面など広い範囲が関わってくる)RDB との比較も交え解説していきます。 Index で分けるか? Type で分けるか? 例えば、商品情報を保存するインデックスの設計を考えてみましょう。いわゆるRDBの設計で言うところのテーブル設計ですね。おそらくRDBではアプリケーション要件のみが、その設計の中心になるはずです。例えば、商品名や説明、価格情

    第1回 Elastisearch 入門 インデックスを設計する際に知っておくべき事 | DevelopersIO
  • だんだん開発スピードが遅くなっていくのをどうやってとめたら良かったんだろう? - Mitsuyuki.Shiiba

    先日、モブプロをやってきた。その中で、モブプロとは別で、いくつか感じたことがあって、今日はその中のひとつを思い浮かんだままにメモ。 bufferings.hatenablog.com 要件を満たすプロダクトをより早く出す モブプロでTDDしながら、要件を満たすプロダクトをより早く出すことに集中してみた。例えば、第2ラウンドのお題はTDDBCなどでお馴染みの「自販機」。 「100円を入れてボタンを押すとコーラが1買えること」 最初に「100円を入れてボタンを押すとコーラが1買えること」と言われ。 assertThat(get(100), is("コーラ")); みたいなテストを書いて。 String get(int money) { return "コーラ"; } みたいな実装を書いた。爆速! 「200円を入れてボタンを押すとオレンジジュースが1買えること」 次に「200円を入れてボタ

    だんだん開発スピードが遅くなっていくのをどうやってとめたら良かったんだろう? - Mitsuyuki.Shiiba
  • APIのバージョニングは限局分岐でやるのが良い - Hidden in Plain Sight

    ちょっと前にTwitterAPIのバージョニングをどうやるかみたいな話をしていたのですが、そのへんもやもやしているので少し整理しておきたいなと。 APIのURLを/api/v1/*とかってやるの、やめたほうがいいとおもうんだけどなぁ。いざv2を作るとなったときに、大量のコピペが発生して後悔するよ、って伝えたい。— Kenn Ejima (@kenn) February 28, 2014 さて、これについて色々と異論・反論も含めた意見が出たのですが、まずは、大昔にURL方式(=コントローラ分割)でやってきて後悔したぼくが、(5年ぐらい前から)現在はどうやってAPIのバージョンを管理しているか?について紹介します。 基原理としては、コピペが多発する根っこで分岐(=コントローラ分割)じゃなくて、必要最小限のところで限局的に分岐するのがいい、という考え方に基づきます。 一言でいうと、「パラメー

    APIのバージョニングは限局分岐でやるのが良い - Hidden in Plain Sight
  • 1