タグ

設計に関するn314のブックマーク (17)

  • 技術的負債 - Martin Fowler's Bliki (ja)

    ソフトウェアシステムでは、クラフト(出来の悪いもの)が生まれやすい。システムの修正や拡張をしようとしても、内部品質の欠如がそれを難しくしている。「技術的負債」とは、Ward Cunninghamが作ったメタファーである。ファイナンスの負債のように考えることで、こうしたクラフトの扱いのことを考えやすくなる。たとえば、新機能の追加にかかる余分な労力は、負債の返済にかかる利子である。 あらゆるソフトウェアシステムには、タスクを実行するために必要とされる「質的な」複雑さが一定量含まれている…… ……だが、ほとんどのシステムには「クラフト」が存在しており、理解を難しくしている。 クラフトがあると、変更するのに余分な労力がかかる。 技術的負債のメタファーは、こうしたクラフトを「負債」として扱う。変更に必要な余分な労力は、負債の利子の返済に相当する。 私のコードのモジュール構造が複雑だったとしよう。こ

    n314
    n314 2020/06/26
    クラフトって初めて知った。そういう単語があるならもう例えなくて良いのでは…。
  • 軽量DDDではじめるゲーム開発 ドメイン駆動設計の基本と実践を解説

    2019年10月23日、『神姫PROJECT』などソーシャルゲームの企画・開発を手がける株式会社テクロスが主催するイベント「TECH x GAME COLLEGE」が開催されました。第28回となる今回のテーマは「形から入ったドメイン駆動設計によるゲーム開発の光と闇」。株式会社Nextat取締役・中榮健二氏が、ドメイン駆動設計(DDD)をゲーム開発に取り入れた事例を語りました。登壇資料はこちら ドメイン駆動設計によるゲーム開発の光と闇 中榮健二氏(以下、中榮):最初にいきなりなんですが、お詫びと訂正から。 サブタイトルに「DDDは果たしてゲーム開発に向いているのか!?」と書いていただいたんですけど、日はDDDの核心部分の話はしません。この煽り文の答えが出ないことをお詫びして訂正いたします。すみませんでした。 (会場笑) 自己紹介です。株式会社Nextatの取締役の中榮と申します。取締役と書

    軽量DDDではじめるゲーム開発 ドメイン駆動設計の基本と実践を解説
  • 「開発現場で役立たせるための設計原則とパターン」をオススメできない理由 - うさぎ組

    「開発現場で役立たせるための設計原則とパターン」は設計をリードするには悪手である このエントリーは 実況中継シリーズ 「開発現場で役立たせるための設計原則とパターン」 #builderscon 2018 - 型の蓄音機は 1 分間に 45 回にゃあと鳴く に対する返答です。 件のエントリーおよびスライドを拝見したときの私の感想は「昔の自分だったらこのようにレクチャーしたであろうけど、いまの私ならこうしない。そして、このようにレクチャーするのは時に問題がある」というものでした。 私は発表を見ていたわけではなかったので、スライドだけを拝見したときにはエントリーとしてまとめるのはどうかと思ったのですが、発表者が丁寧な解説付きの記事をあげてくれていたので、私の考えをまとめるための情報を揃ったと判断した次第です。 そして発表者様のエントリーを読んでも私の感想は変わりませんでした。 まず、件のスライ

    「開発現場で役立たせるための設計原則とパターン」をオススメできない理由 - うさぎ組
    n314
    n314 2018/09/28
    言いたいことはわかるけど、また抽象的な話の空中戦に戻ってるような。
  • 実況中継シリーズ 「開発現場で役立たせるための設計原則とパターン」 #builderscon 2018 - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く

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

    実況中継シリーズ 「開発現場で役立たせるための設計原則とパターン」 #builderscon 2018 - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く
    n314
    n314 2018/09/28
    プレゼンがうまい
  • PHP7 で堅牢なコードを書く - 例外処理、表明プログラミング、契約による設計 / PHP Conference 2016

    2016/11/03 @ PHPカンファレンス2016 2016/12/15 @ PHPカンファレンス2016再演イベントにて改訂 2017/06/10 @ PHPカンファレンス福岡2017にて改訂 2017/06/10 @ PHPカンファレンス福岡2017講演録画 https://www.youtube.com/watch?v=54jHDHvcYAo

    PHP7 で堅牢なコードを書く - 例外処理、表明プログラミング、契約による設計 / PHP Conference 2016
  • 基本設計を分担してはいけない - 設計者の発言

    プロジェクトメンバーが無駄に多いのが、日型SIの特徴のひとつである。「工数を人数で割れば工期が出る」と考えることが間違いであることは、ブルックスの著書「人月の神話」によって今から40年前に指摘されている。それにもかかわらず、相変わらず多くのプロジェクトで必要以上の人数が投入されている。 私がとくに不思議に思うのが、基設計を何人もの要員で分担するやり方だ。DB設計と機能設計と業務設計の担当を分けるとか、サブシステム毎に担当を分けるといった体制がしばしば敷かれる。詳細設計の段階でというのならまだわかるが、基設計でそれをやってはいけない。 なぜか。業務システムにはアーキテクチャ(意図された構造)が求められる。そして、そこに含まれる膨大な定義要素は、統一感や一貫性を保ち、かつMECEな形で切り出されなければいけない。複数の要員で分担などすれば、それらの課題が一挙に難しくなる。また、DB構成と

    基本設計を分担してはいけない - 設計者の発言
    n314
    n314 2015/10/19
    ちょっと X-TEA Modeler ダウンロードしてサンプル開いてみたんだけど、これすごくない?説明の概要を句点で区切って抽出するとか細かい。
  • プログラミングの「抽象化」ってどういう意味で、なぜ必要なのか - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く

    <追記>いろいろ反応あってたしかになーって思いましたが、ここで説明されてるのは「汎化」とか「パラメタライズ」としたほうが正しいですね。抽象化というと、一塊の手続きをブラックボックスにして、実装を隠蔽する面のほうが正解に近いです。でもまあそこを差し引いて読んでいただければ、それなりに有用ではある記事だと思うので、このまま残しておきます</追記> プログラミングに限らない話かもしれませんが、ふだんの生活で触れないような概念というのは、一度わかってしまえば便利なんだけど、どうしてもとらえどころがない、というようなことが多いと思います。プログラミングにもそういう概念はたくさんあって、わたしのような凡人は新しい概念にぶち当たるたびに苦労しています。今日はそんな中で「抽象化」という言葉について、「昔の自分にこうやって説明してあげたかったな〜」という説明をします。 プログラミングを学んでいく中で、「とり

    プログラミングの「抽象化」ってどういう意味で、なぜ必要なのか - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く
    n314
    n314 2015/08/05
    仕様って抽象的なものから具体化していくよね。Haskellの場合も、別に柔軟性を得るためじゃなくて取りあえず main = getContents >>= app って書いとくかーみたいな抽象化もあるような。
  • 権限管理を実装するときの地味な話 - ✘╹◡╹✘

    「あるユーザがXをYできるかどうか」というメソッドを定義したいとき、Userに実装するよりも、Xに実装した方がうまくいくことが多かった。例えば「ユーザが投稿を編集できるか」という、ブログの共同編集のような機能で使うやつで考える。つまり、User#can_edit?(entry) みたいなやつにするか Entry#editable_by?(user) みたいなやつにするかという話になる。 後者の方でうまくいった理由は、Webアプリだとログイン中のユーザが存在しない場合というのがあるが、後者ではuserがnilの場合でも対応できたというのと、Userクラスが長大にならなかったという点 (Abilityクラスとかを全ての場所で統一して使えている場合はそれで良いので各自適当にやっていってほしい)。あとメソッドの命名規則の問題があって、名詞形 (例:User#name) か、xxx?で終わるメソッド

    権限管理を実装するときの地味な話 - ✘╹◡╹✘
  • 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
  • 要求仕様が変更されたけど,エレベータの設計変更を忘れてました - カレーなる辛口Javaな加齢日記

    http://blog.livedoor.jp/dqnplus/archives/1770736.html http://blog.livedoor.jp/kinisoku/archives/3859335.html http://gizmodo.com/the-builders-of-this-spanish-skyscraper-forgot-the-elev-1065152844 http://economia.elpais.com/economia/2013/07/20/actualidad/1374340685_911593.html (スペイン語,excite翻訳: 日,英) スペインのベニドルムで建築中の超高層ビルは希望と繁栄のシンボルとなるイメージで設計されていましたが、悲しいことに建築家がエレベーターを付けることを忘れていました。*1 "Sadly, the builde

    要求仕様が変更されたけど,エレベータの設計変更を忘れてました - カレーなる辛口Javaな加齢日記
  • 由利本荘市エリア|大学生セフレ募集掲示板【近く|ヤリマンと会える騙されない出会い系アプリランキング】大学生セフレ早急募

    由利荘市 大学生 セフレ 由利荘市大学生セフレ社会があるように知り合い校も大人には存在するが、なんとなくか男子校の由利荘市大学生セフレ社会率と女子校の大学生率は一致しない。 最近は出会い系世界、マッチングアプリでも素人の女性がとにかく参入しにくくなった。常にした弾力の肌スケジュールを立てやすいまだ若いから反動になられることがくだらない。 少しくらいはご飯に行ったり、責任ではいい部屋を使ったりくらいして欲しいところです。 由利荘市大学生セフレ大学があるように女子校も世の中には作成するが、そうか男子校の童貞率と女子校の処女率はイメージしない。 見知らぬ友達をセフレ化する関係師は、多くの大学が憧れる存在です。 貞操など奮闘の場でセフレ候補に恋愛を意識させれるのが大切です。 バイトの事が幅広い、貴方でも男に決めてもらいたがるJDはセフレ対象ですね。 ワクワクメールは無料手順をたくさん配っ

  • Rails、あんたなんか嫌いよ - Rails での OO 設計について - tomykaira makes love with codes

    2013-06-25 Rails、あんたなんか嫌いよ - Rails での OO 設計について ruby rails 最近はずっと Rails 書いてるんですが、書けば書くほど嫌いになってくるんです。 倦怠期的なやつなんですが、 Rails さんの悪いところばっかり見えてきて、もう一緒にいたくないんです。 でも別れるほどじゃないし… という愚痴にみせかけた Rails での設計についての議論です。 長いけどコードは一切出てこないので通勤中にでもよんでください。 注意 一部にはげしい言葉遣いがでてくるので、読んで不快になるかもしれません。 不快になったとしても責任は負いかねます。 次のような方の期待に沿う結論はでません。残念でした。 Sinatra, Padrino の人 関数型の人 静的型付けの人 C の人 TL;DR Rails にだまされない。 自分の道を見定める。 欺瞞にみちた Ra

  • フロントエンドJavaScriptにおける設計とテスト

    今日話さないこと JavaScriptの基礎知識、jQueryの導入 気持ちいいUIUXがうんちゃら CanvasやWebGLを使ったリッチでイケてるゲームの作り方

  • 特別公開!アーキテクチャドキュメント|オブジェクトの広場

    はじめに この記事では、以前私たちが実際に関わった開発案件で作成した「アーキテクチャドキュメント」を公開します。 別に国宝のお寺の庭に入れるわけでもないのに、「特別公開!」などという表現はずいぶん仰々しいな、と思われる方もいらっしゃるかもしれません。しかし特定のお客様向けに作成し納品したドキュメントを、そのまま外部に公開してしまうような例を、私自身はあまり聞いたことがありません。 これって結構特別だと思うのですが、手前味噌でしょうか? システムの概要 ご紹介する開発案件の名称は「新石炭総合OAシステム」といいます。これは、宇部興産株式会社殿で使われる社内システムで、在庫管理、販売管理などの機能を提供する典型的なビジネスアプリケーションです。 開発主体は株式会社宇部情報システム殿です。弊社(オージス総研)は、プロジェクトの立ち上げ期間の約3ヶ月間、2名が参加し、概念モデリングのコンサルティン

  • 要件定義とか設計とか真面目に考えてみよう - masayang's diary

    画面設計とか外部設計とか、もうやめようよに対し色々意見をいただいた。感謝。 要点繰り返し 自分は「画面の見を使ってフィーチャを抽出する」というやり方に反対はしてない。 ただし、その「見」が妙に具体的かつ詳細になってくると、来フィーチャではないものまでフィーチャとして取り出してしまい、後続の工数が膨れちゃうよ、ということを警告しているのである。 「妙に具体的かつ詳細な見」ってのは、世の人がいう「画面設計書」でしょ? なのでそんなのはやめちゃえ、ということ。 以下、頂いた意見に対しての感想などを。 家やマンションに例えない 「家やマンションは最初に完成像をみてもらい納得してもらう必要がある。システム開発も同じだ。」みたいな意見があった。 画面の見があれば完成像を想像しやすくはなるけど、実際に動く見があれば想像する必要はなくなる。 むしろ、操作することで「紙芝居」ではわからなかった要

    要件定義とか設計とか真面目に考えてみよう - masayang's diary
  • http://www.h6.dion.ne.jp/~akn/pm/SystemDevelopment/SystemDevelopmentGuide.html

  • Throwableについて本気出して考えてみた - 都元ダイスケ IT-PRESS

    Throwable、Exception、RuntimeException(RTE)、Errorあたりを整理しながら、色々考えてみた。私見に基づくので、間違っているかもしれないけれど、自分としては頭が整理できたかな、と感じたので晒してみる。異論があったらコメントください。 まず、一番基礎的なところで、継承関係の整理から。こんなツリーになっています。 Throwable Error Exception RuntimeException そして、稿での用語の定義。caller=呼出す側のコード callee=呼出される側(throwする側)のコードとします。 Throwable Throwableは「throw文に指定できる何か」という意味ですね。 Instances of two subclasses, Error and Exception, are conventionally used

    Throwableについて本気出して考えてみた - 都元ダイスケ IT-PRESS
  • 1