タグ

関連タグで絞り込む (313)

タグの絞り込みを解除

designに関するa2ikmのブックマーク (508)

  • 今まで見たもっともクソなテーブル設計 - 何か着ていればいいよ

    あれは、僕がデータベースを扱ううち最初から3件目のプロジェクトだった。 C++のソースが難解で火を吹いているという話で、自分は低スキルの若造。火にくべるには丁度良い程度のやる気と責任感をもっていた。折悪く別のプロジェクトが終了した直後だったもので投入されたのでした。 現場で『DBからデータを吸い出すツールかSQLを作ってくれ』といわれ話をきくと他社が作ったDB定義がすこぶる使いづらいという。 ER図やDB定義を見せてくださいと言ったのだけど、そんなものは無いという返事。 今ならもうここら辺で逃げ出すところですが、当時は『ふーん。』てなもんでそういうこともあるのかくらいの軽い気持ちで考えていました。 で、プロジェクトの資料をあさりまくって何とかDB定義のようなものも見つけDBのデータを調査し始めたのですが何かがおかしい。 機能の数に比して異様にテーブル数が少ないのです。 ふと周りを見ると、皆

    今まで見たもっともクソなテーブル設計 - 何か着ていればいいよ
    a2ikm
    a2ikm 2014/03/05
    Wordpressのメタ属性かなんかはこんな感じだけど、全部が全部ってわけでもないし。つらそう
  • ユビキタス言語とドメインモデル、そしてモデル探求うずまき - じゅんいち☆かとうの技術日誌

    最近、ドメイン駆動設計ってどうやって実践すればいいかなーという質問をよくされるので、この記事が満額回答にはならないと思いますが、書いてみたいと思います。 シンプルな問題はトランザクションスクリプト、いわゆる手続き型で対処できます。問題が小さいのでコードは直接的でわかりやすくなる傾向にあります。 とはいえ、世の中の問題はシンプルなものばかりじゃない。複雑な問題もある。DDDの著者であるEric氏は、複雑な問題はドメインモデルを使って対処すべきと説く。 ドメインとは問題の領域とか知識の範囲をいうのですが、DDDはそのドメインにある概念をモデル(ドメインモデル)として定義して、さらに実装として紐付けていく設計手法です。 モデルクラスは概念ありき 例えば、電車にまつわるドメインというので考えたとしたら 電車 乗客 駅 ダイア などの概念が登場します。 現実世界に限った話ではなく、仮想世界でもドメイ

  • 要するに DI って何なのという話 - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く

    友人から「しんぺいさん DI について書いてほしい」みたいな話をだいぶ前からされてたんだけど書く気力ずっとなかった。でも仕事の気分転換にちょっとずつ書いたやつがいい量まとまったので公開するです。たいしたことは書いてないっていうか知ってるひとにはあたりまえのことしか書いてない。サンプルコードはわたしの趣味Scala で書いてあるが、Java が読めればなんとなく読めると思います。 DI ってなに Dependency Injection、日語で言えば依存性の注入です。おしまい。 で記事を終えてもいいんだけど、そもそも依存性とはなんなのか、それを注入するとはどういうことなのか、なぜ DI が必要となるのかみたいな話をこれからします。 そもそも依存性ってなあに 例を出します。入力された文字列をもとにおみくじをひいて、その結果を twitter に投稿するプログラムにしましょう。 まずは普通

    要するに DI って何なのという話 - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く
  • Device Specific API Design - r7kamura per second

    The Netflix Tech Blog: Embracing the Differences : Inside the Netflix API Redesign Netflixの開発者ブログで触れられているように、Netflixは以下の4つの方針に沿って彼らのAPIを再構築した。 デバイスごとの差異を受け入れる コンテンツの収集と整形を分ける クライアントとサーバの境界線を再定義する 変化を促進する デバイスごとの差異を受け入れる REST APIのように1つの汎用的なインターフェースで全ての要件を満たそうというアプローチは、 APIへの理解が簡単になる一方、後から変更することは難しくなり、また非効率な処理を生み出しやすくなる。 この手のアプローチが重視しているのは、API提供者側の開発コストを下げることであり、 API利用者の利便性を第一に考えたものではないと彼らは考える。 API

  • 4色ほど指定するだけでTwitter Bootstrapの配色を良い感じにしてくれるSass | mah365

    そんなSassが町田先生のCustomizedTwitterBootstrapに含まれていたので、これをTwitter Bootstrap3に対応させてみたのでした。 ソース こちらが良い感じにしてくれるベースの変数です。 $base-color、$main-color、$accent-color、$base-text-colorを決めることで良い感じにしてくれます。僕は下のファイルみたいなテイストが好きです。ほんわかしている。仕事では使えない感じがある。 実際に読み込むときには、Twitter Bootstrapより先に変数を読み込んでおきます。 //--------------------------------------------------------- // Color Scheme for Bootstrap @import colors/try @import color

    4色ほど指定するだけでTwitter Bootstrapの配色を良い感じにしてくれるSass | mah365
  • Webサイトに変なスクロール使うのをやめろ

    最近変なスクロールを使ってるサイトを見る。 これとか http://www.apple.com/iphone-5s/ これとか http://heteml.jp/ 他にも色々。 Javascriptがなんか頑張ってんだろうけどさ、 正直陶しいよ。 やけに重いし、使いづらいし。 Chromeだとヌルヌル動くって? みんなChrome使ってる思ってたらアカンでほんま。 追記: この変なスクロールはパララックスと言うそうです。 「この変なスクロール=パララックス」ではないそうです。 また、「この変なスクロール=パララックスのひとつ」と言う訳でもないみたいです。 ごめんね、もうこの追記消したい気分。

    Webサイトに変なスクロール使うのをやめろ
    a2ikm
    a2ikm 2014/01/30
    自分で思ったとおりに操作ができていない感じがするのが気持ち悪い。スクロールなのにスクロールじゃない
  • デザインの裏側を理解できるエンジニアになろう - Qiita

    「画面」のデザインは、エンドユーザーから見た「プロダクト」との唯一の接点。超大事。 そんな画面のデザインにまつわる、エンジニアが「いじる」ときに気をつけると、もしかしたら面倒が減って争いが減ってみんなが幸せになれるんじゃないかなあ、とか、そもそもの設計上で考慮できると、もしかしたら使う人たちが幸せになれるんじゃないかなあ、というポイントを、思い付きで書いていくので、あとは誰か整理してほしい的な投げやり感あふれるアレコレ。デザインとコーディングの話を混ぜて書いてます。 空白の理由を考える編 その1. 空白にまつわる認識の相違 例えば、Tumblrのダッシュボード。右肩のメニューの隅までちゃんとレイアウトされてるなーって感じがします。 でも、もしあなたが「空白を理解しないエンジニア」だった場合、こんな感じにコーディングしてしまうかもしれません。 (※画像はイメージです) 「なーんか、素人感があ

    デザインの裏側を理解できるエンジニアになろう - Qiita
    a2ikm
    a2ikm 2014/01/22
    ノンデザイナーズ・デザインブックっぽい話だ
  • UI変更バトルに勝利するための方法考えた - yashiganiの英傑になるまで死ねない日記

    UI変更批判バトルと複数のバージョンのウェブサービスを同時に配信することについて - hitode909の日記 を読んで,同じようなこと前から考えていて昨日ひょんなことからブレイクスルーがあったので共有します. ウェブサービス,UI変えると,改悪とか,元に戻してとか,そういう意見が出る. ウェブサービスだけじゃなくてアプリでも同じような問題抱えていて,アプリの場合はストアの評価システムみたいなのがあって,そこにこういう意見が書かれまくる. アプリの場合はウェブサービスと違って,ユーザの選択でアップデートしないとかもできるので,余計に状況が悪くて「こんなことならアプデしなけりゃよかった」とかも平気で言われる. 実際iOS 7が出たときに担当しているアプリで同じようなこと経験したことがあって,iOS 7のあたらしくなったiPhoneにいつも使っているアプリが完全に対応したら最高のユーザ体験だろ

    UI変更バトルに勝利するための方法考えた - yashiganiの英傑になるまで死ねない日記
    a2ikm
    a2ikm 2013/12/25
    “変えるって前提で作るのすごくいいアイディアだと思う”
  • ナチュラルキーとサロゲートキーについての議論

    とあるブログエントリで「ナチュラルキーを主キーにしてはいけない」という主張を見かけたのでこれに反論しておく。これはリレーショナルモデル的には明らかに間違った考えだからだ。 リレーショナルモデルにあるのはナチュラルキーだけリレーショナルモデルには「サロゲートキー(代理キー)」という概念はない。まずこの点に注意して頂きたい。サロゲートキーとは、データベースアプリケーション開発において実用上必要とされる機能であって、質的には不要のものである。リレーショナルモデルでは、いわゆるナチュラルキーというものがあれば機能的には十分だからだ。 そのためにはまず「キー」という概念が何を指し示すかということについて正しく理解しなければならない。リレーショナルモデルではキーと呼ばれるものは候補キーとスーパーキーという2つの概念だけである。「タプル(≒行)の値を一意に決定することができる属性(≒カラム)の集合」の

    ナチュラルキーとサロゲートキーについての議論
  • 主キーのナチュラル⇔サロゲート問題 - b6note

    についてひとこといっておくか、みたいな。 複合主キーを避けるべき理由 http://d.hatena.ne.jp/torazuka/20110713/pk 今回これを書きながら、色々考える機会になりました。 ありがとうございました>id:torazuka さん 自分のぶこめ http://b.hatena.ne.jp/akitsukada/20110715#bookmark-50842882 複合主キー、ここでいう「ナチュラルキー」は論理設計とか分析モデルのときにデータの意味をはっきりさせるために抽出し、物理設計/実装段階で物理的制約や要件に応じてサロゲートキーをつければいいと思うと書いたんだけど、何しろ100文字ではちょっと足りないので もうちょっと自分の考えを補足 わたしの考え まず自分の立場は、上記のブコメを展開して データモデリング、分析、論理設計の段階ではID(サロゲートキー)を

    主キーのナチュラル⇔サロゲート問題 - b6note
  • デメテルの法則 - Wikipedia

    デメテルの法則 (Law of Demeter, LoD) または最小知識の原則 (Principle of Least Knowledge) とは、ソフトウェアの設計、特にオブジェクト指向プログラムの設計におけるガイドラインである。 このガイドラインは1987年の末にかけてノースイースタン大学で作成された。簡潔に言うと「直接の友達とだけ話すこと」と要約できる。基的な考え方は、任意のオブジェクトが自分以外(サブコンポーネント含む)の構造やプロパティに対して持っている仮定を最小限にすべきであるという点にある。 「デメテルの法則」という名前は、この法則がアダプティブプログラミングとアスペクト指向プログラミングに関する研究であるデメテルプロジェクトの成果であることに由来する。プロジェクト名は農業の女神であるデーメーテールにあやかっている。 オブジェクト指向における適用[編集] オブジェクト指向

  • つくること = 生きること : パターン・ランゲージによる創造の支援

    成蹊大学「コース特殊講義A (デザインとIT)」(坂井直樹先生)での井庭崇の講演スライド。2013年12月3日(火)。 Read less

    つくること = 生きること : パターン・ランゲージによる創造の支援
  • コーディングにおける「深いレベルの『創造』」について - irohiroki's blog 2

    12月8日、渋谷で開催されたAgile Samurai Boot Campにサポーターとして参加した。編の中でも参加者の質問などを通じて学ぶことがあったのだが、今回はその話ではないので割愛する。ただ、そのような経験をできたのは主催の西村直人さん/永和システムマネジメントや会場提供のサイバーエージェント様、スポンサーのCodeIQ様、それから参加者とスタッフの皆さんのおかげなので、この場を借りて感謝致します。ありがとうございます。 さて、事件(私にとってはちょっとした事件だった)は打ち上げ会場の土佐料理店「祢保希(ねぼけ)」で起こった。私の斜向かいには@t_wadaがいらっしゃって、宴会の終盤まではイベントの内容をふりかえったり言語処理系やライブラリの話を聞かせてもらったりしていた。話が途切れたときに思い出したことがあったので、聞いてみた。 最近僕はパターン・ランゲージに強い興味を持ってい

  • リレーショナルモデルのドメイン設計についての議論

    リレーショナルモデルを実践するには、ドメイン(≒データ型)を如何に正しく設計するかということが極めて重要になる。しかしながら、ドメインをどう設計すべきかという議論はあまりされていないように思う。その結果、ドメインについての理解はあまり進まず、データベース設計に失敗しているパターンが多いように思われる。 というわけで今日のテーマはドメインである。 集合を定義するリレーショナルモデルにおけるデータ型とは何か。リレーショナルモデルを実践するにはまずその点から理解する必要がある。 リレーショナルモデルでは、データ型はドメインと呼ばれる。ドメインとは、その属性(≒カラム)に入るべき値はどういったものかを集合として定義したものだ。言い換えると、属性値とはある集合の要素の一つであると言える。従って、ドメインを設計する際には、SQLで言うところのデータ型、つまりINTやCHARといったものだけでなく、その

    リレーショナルモデルのドメイン設計についての議論
  • 少ない装飾で素材の魅力を生かす、ズルいWebサービスデザイン実践編 // Speaker Deck

    WCAF Vol.11 「Design」 in 福井 で発表させていただきました。 http://wcaf.doorkeeper.jp/events/7028 協力: we love heroku by @ppworks http://welove.herokuapp.com/ (参考)ppworks 氏によるエントリー http://www.genuineblue.jp/posts/weloveheroku-design-renewal/ ズルいデザインテクニック2013 + セミフラット version - in 福井 https://speakerdeck.com/ken_c_lo/zuruidezaintekunituku2013-plus-semihuratuto-version-in-fu-jing

    少ない装飾で素材の魅力を生かす、ズルいWebサービスデザイン実践編 // Speaker Deck
    a2ikm
    a2ikm 2013/12/08
    細かく具体的でためになる。dl/dt/ddはいっそtable使っちゃってもいい
  • http://handywebdesign.net/2013/12/slide-share-about-color/

    http://handywebdesign.net/2013/12/slide-share-about-color/
  • Favoriteの設計実装はパターンとして使える - Qiita

    RailsでのfavoriteのURL設計 http://d.hatena.ne.jp/tkawa/20110508/p1 かなり前にこういう記事を書いたのですが、最近たまたま似たものをRailsで何回か実装する機会があって、これはいろんなところで使えるんじゃないかと思ったので、その設計実装パターンを紹介してみます。 モデル 任意のツイートに任意のユーザーがお気に入りをつけられるというもの。別にツイートじゃなくても何でもOKです。 class Tweet < ActiveRecord::Base has_many :favorites end class User < ActiveRecord::Base has_many :favorites end class Favorite < ActiveRecord::Base belongs_to :tweet belongs_to :use

    Favoriteの設計実装はパターンとして使える - Qiita
  • Railsでサービスとフォームを導入してみる話 - assertInstanceOf('Engineer', $a_suenami)

    この記事はRuby on Rails Advent Calendar 2013の6日目の記事です。 前日は @tkawa さんの「Favoriteの設計実装はパターンとして使える」でした。 Railsで適切に責務を分割するということ RailsはいわゆるMVCと呼ばれるアーキテクチャパターンにのっとったフレームワークであり、プロジェクトを作成するとデフォルトでmodels/、views/、controllers/などのディレクトリが作成されます。 基的にロジックを記述する場所はモデルであり、ビューには表示処理だけを、コントローラにはアプリケーション上必要な手続きだけを記述するべきであると一般的には言われています。*1 ただ、それを忠実に実践していった結果、モデルが肥大化しメンテナンシビリティやテスタビリティが低下するという問題も多く指摘されています。 これについては4日目に @joker

    Railsでサービスとフォームを導入してみる話 - assertInstanceOf('Engineer', $a_suenami)
  • てめえらのRailsはオブジェクト指向じゃねえ!まずはCallbackクラス、Validatorクラスを活用しろ! - Qiita

    てめえらのRailsはオブジェクト指向じゃねえ!まずはCallbackクラス、Validatorクラスを活用しろ!RubyRails ちょっと煽り気味のタイトルにしてみましたが、Railsで開発する時は意識的にOOPに寄せないとオブジェクトの力が活かせなくなるよってことと、Railsが提供しているクラスの責務を分割することを支援してくれる機能について話をします。 ActiveRecordの性質 Rails開発においては、モデル層にロジックを書いてコントローラーは薄くしろ、というのはしつこく言われているので、概ね浸透してきていると思います。 それに加えて、最近私が結構しつこく主張しておきたいのが、モデル = ActiveRecordでは無いよ、ということです。 ActiveRecordは成り立ちから言うと、ロジックとDBへの永続化をまとめてカプセル化するアーキテクチャパターンから来ています。

    てめえらのRailsはオブジェクト指向じゃねえ!まずはCallbackクラス、Validatorクラスを活用しろ! - Qiita
  • データベース設計徹底指南

    DBエンジニアのための技術勉強会(第3回)で使用した資料です。主にリレーショナルモデルと正規化について解説しています。リレーショナルモデルの限界について正しく認識してこそ、リレーショナルモデルを理解したと言えると思います。

    データベース設計徹底指南