タグ

設計に関するamigogrjのブックマーク (76)

  • オブジェクト指向について語った時に使ったメモ

    今日、オブジェクト指向について1時間ほど語りました。整理するため自分用に書いたメモを公開します。大まかな構成はメモどおりに話しましたが、メモに書いていないこともたくさん話していますし、書いていても話さなかったこともあります。 前提として自分自身のオブジェクト指向へのスタンスを書いておきます。 自分のプログラマとしてのキャリアとオブジェクト指向の隆盛の重なりを考えると客観的に見て自分はオブジェクト指向世代のプログラマなんだと思います。一方で、世間で過剰にもてはやされる技術には反発してきました。オブジェクト指向も例外ではありません。オブジェクト指向を否定はしませんが、金科玉条のように扱う人の前では、オブジェクト指向なんて技法のひとつに過ぎないと、冷たく突き放してきました。 ただここ数年、かつてに比べてオブジェクト指向の威光は下がっている気がします。関数型プログラミング支持者から、オブジェクト指

  • Diagram Designer

    Simple vector graphics editor for creating flowcharts, diagrams and slide shows. Features Customizable template object paletteSlide show viewerSimple graph plotter to plot mathematical expressionsAdvanced "pocket" calculator with equation solverMeeSoft Image Analyzer integration for bitmap image editing and extended file format supportUses compressed file format for minimizing drawing file size

  • 複合主キーを避けるべき理由 - 虎塚

    データベース設計の話をしていて、「連番の主キーは業務上意味のないデータだから、テーブルに持たせるのはムダだ。複合主キーにするべき」という意見を聞く機会がありました。 脊髄反射で「ないわー」と思ったものの、理由を上手く説明できなかったので、改めて考えてみました。 その結果、次のような結論に至りました。 単一の連番カラムによる主キーと、複合カラムによる主キーとで迷ったら 実装をシンプルにし、業務変更の影響範囲を小さくするために、複合主キーを避ける というわけで、調べたことや考えたことをメモしておきます。# 間違っている部分があれば、教えていただけると嬉しいです。 (2011/07/25 追記)複合主キーとサロゲートキーについては、要件やシステムに依存して多様な判断がありうると思います。にもかかわらず、「避けるべき」というタイトルにしたのは極端でした。申し訳ありません。ご指摘下さった皆さん、あり

    複合主キーを避けるべき理由 - 虎塚
  • 素早く正規形を見抜く実践テクニック(1/4) - @IT

    今回のテーマはデータベースエンジニアの必須知識の1つである「正規化」です。正規化は、リレーショナル・データベースのテーブル設計を行ううえで非常に重要なテクニックであり、データベースを設計、実装したことのある方なら一度は正規化に触れているのではないでしょうか。 それほど基的な知識であるにもかかわらず、正規化を説明できる人はなかなかいません。多く聞かれるのが「何となくテーブルを作ると自然に第3正規形になる」とか「実務上は第3正規化まで行えば問題ない」というものです。 ではなぜ「第3正規化まで行えば問題ない」のでしょうか。稿ではひととおり正規化について確認しながら、あまり触れられることのない第3正規化より先の正規化を紹介して、この疑問に答えていきたいと思います。 正規化の位置付け 正規化は、データベース設計全般にかかわる基礎知識ですが、特に論理データモデリングの作業の中で必要になります。稿

    素早く正規形を見抜く実践テクニック(1/4) - @IT
  • 個人で作ったWebサービスの仕様書(Evernoteのメモ)を2つ公開してみる - アインシュタインの電話番号

    個人でWebサービスを作る際の考察に関する以下の記事が、とても興味深く面白かった。ここに書いてあることはだいたい同意で、自分も実践したいと思うことばかり。 個人でWebサービスを超高速でつくる人たちの作り方を考察。 │ モノづくりブログ 株式会社8bitのスタッフブログです で、記事の最後に執筆者が聞いてみたいこととして「個人Webサービスの場合、仕様書はどうしてるの?」と呼びかけていたので、僭越ながら自分が過去に作ったWebサービスの仕様書(Evernoteに書いたメモ)を公開してみる。公開するのはNekostagramとはてなスターカウンターのもの。 仕様書(TODOリスト)の書き方 自分の場合、Webサービスを作るときに書くものは「仕様書」などと呼べるようなちゃんとしたシロモノではなく、Evernoteに思いついたことをどんどんリストアップしていくだけ。いわゆるTODOリストですね。

    個人で作ったWebサービスの仕様書(Evernoteのメモ)を2つ公開してみる - アインシュタインの電話番号
  • 人間のために分かりやすい実用的なURLを設計する方法

    URL Design [ad#ad-2] 下記は各ポイントを意訳したものです。 はじめに URLを設計する理由 トップレベルのセクションは重要 URL構造を増強する方法 クエリの文字列 URLにはASCIIを URLは検索エンジンのためにではない URLは合意 全てがURLを持っているべき リンクはリンクらしく 再利用できないURL 素晴らしいURLの例 おわりに はじめに あなたは、URLの構造を設計するのに時間をかけるべきです。この記事を読んだ後で、あなたに一つだけ覚えておいてほしいことは、URLの構造を設計するのに時間をかける、ということです。 URLデザインは簡単ではなく、正しい解決方法があると言うことはできません。しかしそれは、他のデザインと同じです。良いURLデザインがあり、良くないURLデザインがあり、そしてその中間もあります。 しかし、それは素晴らしいURLデザインを作るこ

  • [GDC 2011]日本の同人ゲーム作家がGDCで講演を行うという快挙を達成。フリーゲーム「洞窟物語」の作者 天谷大輔氏による講演の模様をレポート

    [GDC 2011]日同人ゲーム作家がGDCで講演を行うという快挙を達成。フリーゲーム「洞窟物語」の作者 天谷大輔氏による講演の模様をレポート 編集部:A.I. 天谷大輔氏(ハンドルネーム:Pixel) GDC 2011最終日である米国時間3月4日,日ゲーム作家 天谷大輔氏(ハンドルネーム:Pixel)による講演「The Story of CAVE STORY」が行われた。 「CAVE STORY」は天谷氏が作ったゲーム「洞窟物語」の英語タイトル。「洞窟物語」は,英語でいうところのインディーズゲームであり,日では「同人ゲーム」や「フリーゲーム」などと呼ばれている作品の一つだ。そう,今回天谷氏は「日同人ゲーム作者がGDCで講演を行う」という快挙を成し遂げてしまったのである。 天谷氏が「洞窟物語」をフリーゲームとしてリリースしたのは2004年の話。開発はたった1人で,何年もかけて

    [GDC 2011]日本の同人ゲーム作家がGDCで講演を行うという快挙を達成。フリーゲーム「洞窟物語」の作者 天谷大輔氏による講演の模様をレポート
    amigogrj
    amigogrj 2011/03/05
    / [GDC 2011]日本の同人ゲーム作家がGDCで講演を行うという快挙を達成。フリーゲーム「洞窟物語」の作者 天谷大輔氏による講演の模様をレポート – B!
  • Web Applicationを綺麗に設計するためのMVACという考え方 - $shibayu36->blog;

    【2016/03/04追記】以前まとめたこのMVACという名前の設計は既に古くなっており、今はこのようなアーキテクチャで設計していません。 こんにちは。最近ははてなでMVACというアーキテクチャに則って開発をしているのですが、ようやく意味を理解できてきました。そこで今回は「Web Applicationを綺麗に設計するためのMVACという考え方」について、サンプルを交えながら説明していこうと思います。かなり長くなってしまったので、時間があるときにでもどうぞ。 MVACって? データソースやロジックを扱う「Model」、表示・出力を管理する「View」、複数のModelとControllerをつなぐApplication、ユーザのリクエストなどを受け取りViewやApplicationを制御する「Controller」の4つの要素を組み合わせてシステムを実装する方式。MVCをさらに抽象化した

  • @IT情報マネジメント - 情報システムの“企画・導入・設計・運用”の課題を解決する

  • 仕様書とは[Q-pedia]

    説明 † システムの動作の規定,すなわち仕様+について定めた文書です. 個人でソフトウェア+を作成する場合は必ずしも仕様書は必要ありませんが,複数人で作成する場合には,統一した動作規定が存在せねば作成が難しくなります.さらに,企業において,システムの作成を他人・他社に請け負ってもらう場合には,仕様書は必須となります.この仕様書通りに動くシステムを作成することが要求され,逆にいえばそれに沿っていれば規定されない部分はどのような動作をしても問題ないということもできます. 仕様書は,大きく分けて三つに分かれます.(呼び方や位置づけは利用者によって異なります.) 要件仕様書(要件定義書・機能仕様書) 外部仕様書(基設計書) 内部仕様書(詳細設計書) 要件定義書は,顧客の要望を聞いた人などがまとめるものであり,業務の要件が網羅されます.例えば大まかな機能やセキュリティ+に関する要望,運用の方法,利

  • ソーシャルゲームのためのMySQL入門その2 | BLOG - DeNA Engineering

    こんにちはこんにちは。11インチMacBook Airが欲しくてたまらないiwanagaです。 前回の記事 が幸いにもご好評を頂けた様で非常にうれしいです。嬉しくなって、ついがんばって第2弾を書いてしまいました。引き続き、ソーシャルゲームでよく使われるテーブルタイプ毎にちょっとしたテクニックを紹介していきます。 今回はちょっとライトな感じ&読み物になってしまっていますが「ユーザID単位で1つだけ持つデータ」と「パラメータなどのマスターデータ」についてご説明したいと思います。ちなみに次回はInnoDBのデータ構造の簡単な説明と複合プライマリーキーのデータについて、その次で紹介し損ねたちょっとマニアックなテクニックや性能管理のための手法を紹介することを予定しています。 その前に。。。 先日行われた JAPAN INNOVATION LEADERS SUMMIT で弊社松信が「ソーシャルゲーム

    ソーシャルゲームのためのMySQL入門その2 | BLOG - DeNA Engineering
  • Good night, Posterous

    Posterous Spaces is no longer available Thanks to all of my @posterous peeps. Y'all made this a crazy ride and it was an honor and pleasure working with all of y'all. Thanks to all of the users. Thanks to the academy. Nobody will read this.

  • [ThinkIT] 第1回:企業戦略を支える技術としてのBPI (1/4)

    ビジネス・プロセス・インテグレーション(BPI:Business Process Integration)とは、簡単にいってしまうとビジネスプロセスをシステム的に統合するための技術である。しかしBPIをこのように技術的側面からだけ捉えたのでは、質的な意味は見えてこない。 BPIを柔軟なシステム基盤を作るためのサービス・オリエンテッド・アーキテクチャ(SOA:Service Oriented Architecture)の中の重要なコンポーネントと位置づけ、企業のある一時点における業務システムを実現するための技術としてだけで考えるのではなく、企業が存続するための企業戦略を支える技術として考えるべきである。 BPIを「複数システム間での処理を連携させて、プロセスとして統合することにより、ビジネス的に意味のある一連の作業の『End To End』での自動化を実現すること」と定義する。 具体例とし

  • 前編でご紹介したBPIを実現するための要件と機能の一覧

    コンポーネント化(ビジネスプロセス部分、データマッピング部分、ビジネスルール部分、ユーザ入力部分) (参照:http://www.thinkit.co.jp/cert/project/10/3/2.htm)

  • [ThinkIT] 第1回:BO定義とインターフェース定義 (1/4)

    「企業戦略におけるビジネス・プロセス・インテグレーション」の連載では、ビジネス・プロセス・インテグレーション(BPI:Business Process Integration)と他の技術の違いやサービス・オリエンテッド・アーキテクチャ(SOA:Service Oriented Architecture)との関係などから、BPIの位置付けとBPIを実現するための要件と機能、それらを実現するメリットや難しさについて説明した。 特に重要な点は、BPIの機能を単なる柔軟な業務システムを作るためだけではなく、柔軟なシステム基盤を作るためのSOAの中の重要なコンポーネントと位置付け、企業が存続するための企業戦略を支える技術として考えるということであると結論付けた。 連載では、「企業戦略におけるビジネス・プロセス・インテグレーション」の内容を踏まえて、それらを実装する方法を紹介する。 ここでは実践方法

  • [ThinkIT] 第2回:ビジネスフローの設計 (1/4)

    「第1回:BO定義とインターフェース定義」ではBPIの具体的な実装例として、天然の原木一枚板を使ったダイニング・テーブルの販売を行っているO社のネット注文システムを取り上げた。ネット注文システムを構成する各システムの構成を整理し、それぞれのシステムのインターフェースとなり、成果物であるWSDLおよびXSDを作成する流れを説明した。 前回から引き続いて、今回もビジネスプロセスの実装について説明する。 ビジネスプロセスフローの設計では、ビジネスプロセスを実現するために個々のロジックやサービスをどのような順番で呼び出していくなど、処理のコントロールに関する仕様を決めていく。ビジネスプロセスの成果物はビジネスプロセスを定義するための標準言語であるWSBPELによって記述される。連載では執筆時点(2005年12月)で最新版であるVersion 1.1に基づいて解説を行う。WSBPELについては「第

  • Webエンジニアスキルの勘所

    Webのエンジニアにはどういうスキルが一番必要か?という話を考えてみた。 例えば、C言語やUnixの経験が長く、オブジェクト指向も理解していたとしたら、PHPから始まり、Rubyなどの理解は決して難しくないだろう。 では、それだけの経験で一線級のWebエンジニアとしての信頼が置けるかというと、ちょっと違うような気がする。 考え方のベースは、 「Webは、要するにテキスト処理であることが多い。だから難しい」 ほとんどの事がHTTPプロトコルを通じてテキストデータとして情報が、なんのネットワークの制約もなく流通する。つまり、HTTPヘッダを含むテキストの操作でセキュリティホールを作り、それが世界のどこから攻撃されるかわからない。 また、 同様に世界中からアクセスが集まることがありうるので、回りくどいテーブル設計をしてしまうと、あっというまに破綻してしまうこともある。 そして、 基的にマルチア

    amigogrj
    amigogrj 2011/01/26
    セキュリティとスケーラビリティ
  • martinfowler.com

    Software development is a young profession, and we are still learning the techniques and building the tools to do it effectively. I've been involved in this activity for over three decades and in the last two I've been writing on this website about patterns and practices that make it easier to build useful software. The site began as a place to put my own writing, but I also use it to publish arti

    martinfowler.com
  • UMLを基礎から理解する ――UMLでできること,できないこと

    UML(Unified Modeling Language)の入門的な解説というと,各種ダイヤグラムについて手取り足取り説明する場合が多い.しかし,この意味でのUML入門については,すでに多数の書籍が存在しているし,Webサイトで公開されているものもある.ここでは,世の中にあふれているUML情報に接する際に必要となる,UMLの位置付けや,ハードウェアにからむ今後の方向性について解説する.  (筆者) ◎1.UMLとは何か UML(Unified Modeling Language)は,意味付けされた表記法を持つ,モデリング用のビジュアル言語です.UMLを使用しない場合は,自然言語で書いた文書とソース・コードがソフトウェア開発の成果物になります.これに対して,UMLを使用した場合は,文書のほかに(あるいは文書に取って代わって)UMLで表現したモデルが成果物になります(図1). UMLは,箱と

  • fabFORCE.net

    General Information - What is DBDesigner 4? DBDesigner 4 is a visual database design system that integrates database design, modeling, creation and maintenance into a single, seamless environment. It combines professional features and a clear and simple user interface to offer the most efficient way to handle your databases. DBDesigner 4 compares to products like Oracle's Designer�, IBM's Rational