タグ

Designとprogrammingに関するyifeのブックマーク (14)

  • 単一責任の原則(SRP) - Strategic Choice

    単一責任の原則(SRP:the Single Responsibility Principle) クラスを変更する理由は1つ以上存在してはならない。どういうこと?変更理由が2つあるということは、責任(役割)も2つあるということ。そんなジェネラリストなクラスを許さない、という原則。 ところで、「単一責任」って、クラスを作る上で一見当たり前に見える。責任(役割)をそのまま責任ではなく、変更理由としているところがポイント。 この見る角度を変えるところがこの原則の運用の大切な所。なんで?役割を複数もつクラスはもろいクラスだから。 複数の役割を担っているクラスがあって、それをある1つの理由で変更すると、関係のないその他の役割部分にまで影響を及ぼす事になり、その結果予想もしない形でクラスが壊れてしまう。 保守で違う人が修正したら簡単に壊れてしまう。 保守で変更していくと、実装的だけでなく、設計的にもよ

  • 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
  • InfoQ: Domain Driven Design(ドメイン駆動設計) Quickly 日本語版

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

  • コマンドラインツールを作るときに参考にしている資料 | SOTA

    コマンドラインツールについて語るときに僕の語ること - YAPC::Asia Tokyo 2014 コマンドラインツールが好きで昔からつくってきた. 今年のYAPCで,そのコマンドラインツールをつくるときにどういうことを意識して作っているのか?どのような流れで開発しているのか?といったことを語る機会をもらえた. 具体的な内容については,是非トークを聴きに来てもらうとして, スライドをつくるにあったって過去に読んだ資料や,よく参考にしている記事を集め直したので,その一部を参考資料としてまとめておく. UNIXという考え方 UNIXという考え方 Mike GancarzによるUNIXの思想や哲学をまとめた.古いが全然色あせてない. コマンドラインツールの作り方を書いたではないが,これらの思想の上で動くツールはこの思想に準拠して作られるべきだと思う.何度も読んで考え方を染み付かせた. 小さい

  • デザインパターンFAQ

    翻訳: デザインパターン・メーリングリスト有志 原文は Doug Lea<dl@cs.oswego.edu> によってメンテナンスされています。 原文の最終更新は2000年11月です。 この文書は通常の意味でのFAQではありません。 この文書には、 patterns-discussionメーリングリストで議論されてきたトピックの 非常に短いサマリーがQ&Aの形式で含まれています。 項目の取捨選択および内容には管理者の主観的な判断が入っています。 このFAQは不定期に更新されます。 パターンに関する情報は、 The Patterns Home Pageを参照してください。 そこにはオンライン上のパターンへのリンク、 パターンに関する論文、パターンを扱った書籍の説明、 カンファレンスの一覧、 そしてパターンに関連したメーリングリストが含まれています。 「パターン」という用語によい定義がないのは

  • Glocalization 2013 #3 テキストのハードコーディングは痛い (精神/肉体/経済的に)

    テキストハードコードするとどんなことがヤバイかを簡単にまとめました。 新人さんなどに説明するのが面倒くさい時などにご活用ください。Read less

    Glocalization 2013 #3 テキストのハードコーディングは痛い (精神/肉体/経済的に)
  • プログラミング原則一覧 - Strategic Choice

    見つけた時に逐次エントリしている「プログラミング原則」カテゴリの一覧です。不定期に追加しています。プログラミング一般デメテルの法則DRY原則YAGNIKISS原則OAOOUNIX哲学可逆性曳光弾直交性契約による設計 DbCプログラマの三大美徳PIEの原則SLAPパフォーマンスチューニングの格言驚き最小の原則オブジェクト指向プログラミングパルナスの規則抽象データ型サブタイプ求めるな、命じよコマンドとクエリ分離原則オブジェクト指向設計パターン言語生成・使用分離の原則パターンの定義IOP

  • 例外設計の話

    例外設計の話。 こんな指針がいいのかなー 2013 夏 ver. 例外の目的とは? 「例外をキャッチする主な目的は、エラーの原因を取り除いて、回復すること」 via http://dobon.net/vb/dotnet/beginner/exceptionhandling.html .NET の「例外のデザインのガイドライン」にもこう書いてある。 特定の例外が特定のコンテキストでスローされる理由を把握できている場合は、その例外をキャッチするようにしてください。 回復可能な例外だけをキャッチする必要があります。たとえば、存在しないファイルを開こうとした場合に発生する FileNotFoundException は、アプリケーションで処理できる例外です。それは、アプリケーションがユーザーに問題を知らせ、ユーザーが別のファイル名を指定したり、ファイルを作成したりできるようにすることが可能だからで

    例外設計の話
  • 現代ゲームデザイナー向け基礎教養本::Colorful Pieces of Game

    の5つの要素技術について、僕が大いに参考にしているを並べる次第。もちろん、自分の浅学菲才をなんとかするために、日夜参考にするレベルw 実は、これ全部横には並べてあるのだけど、なんの説明もしていないも同然だし、一度自分自身の整理もかねてレビューを書いておこうという次第。 もちろん、あなたが天才なら、こんなものいらない。 世の中には、普通の人が壁になって苦しむことを簡単に乗り越えていく超人がウン万人に一人ぐらいいる。そしてそういう人はみんな「え? なんか難しい?」とか平気で言う。 けれど、たいていの人(もちろん僕も含めてw)は、そうじゃない。そして、そうじゃない人にとっては、こういう困ったときに立ち返れる基礎知識はとても大事だと思っている。 ■ゲームエンジン・アーキテクチャ ともかく長い・デカいだけど、近代的なゲームエンジンに必要とされている要素のすべてについて、ほぼ網羅的に解説されている

  • はてなブログ | 無料ブログを作成しよう

    異国の友人たちへ、また会う日まで 2024年ゴールデンウィーク。5年ぶりにウズベキスタン旅行に行ってきたので、旅の模様をデイリーポータルZに綴りました。ウズベク旅行記はこれが3目。 dailyportalz.jp dailyportalz.jp dailyportalz.jp (↑New!) おかげさまでどの記事も多くの方にお読みいただき、…

    はてなブログ | 無料ブログを作成しよう
  • HTML5 における HTML4 からの変更点

    この文書は「HTML5 differences from HTML4 (W3C Working Draft 25 May 2011)」の日語訳です。 原文の最新版 は、この日語訳が参照した版から更新されている可能性があります。 この日語訳は参考情報であり、正式な文書ではないことにご注意ください。また、翻訳において生じた誤りが含まれる可能性があります。他の仕様の訳については Web 標準仕様 日語訳一覧 を参照してください。 更新日: 2011-09-15 公開日: 2011-05-26 翻訳者: 矢倉 眞隆 <yakura-masataka@mitsue.co.jp> HTML5 における HTML4 からの変更点 2011年5月25日付 W3C 草案 (Working Draft) この版: http://www.w3.org/TR/2011/WD-html5-diff-2011

  • CSSでリストを整形するなら覚えておくべき8つのリストデザインサンプル集:phpspot開発日誌

    CSSでリストを整形するなら覚えておくべき8つのリストデザインサンプル集。 リストデザインというと、CSSの整形方法によって様々な見せ方が可能ですが、ソースコード&チュートリアル付きがまとまったエントリが公開されています。 リストデザインの際は、いつも単調になりがち、という方は覚えておくと、ちょっと変わったデザインも作れそうですし、テクニックを駆使してまったく新しいデザインを考えることも出来そう。 それでは以下にそのデザインされたリストのサンプルをご紹介。 1. サイトのナビゲーション風にデザインされたリスト 2. 番号付き&番号の横に縦のラインがはいった見やすいリスト 3. 矢印画像を使ったリスト 4. iPhoneスタイルのクールなボックスリスト 5. ツリーっぽい形式にできるリストデザイン 6. 複数行にしてテキストっぽく表示できるテキストリスト 7. ワンラインにして、カンマを付与

  • 非プログラマのためのプログラミング講座 - @IT

    鳥人間 郷田まり子 2009/9/10 非プログラマのためのプログラミング講座。MITが作った「Scratch」を使って、ねとらぼITちゃんに枕投げをさせるまでを解説する ITちゃんに枕投げの相手をしてもらうまで 「プログラミング」というと、皆さんはどのようなイメージをお持ちでしょうか。 便利そうだけど専門知識が必要なうえに英語だらけで、自分には無理。そう思われている方は下の図を見てください。 これはイギリスの小学生が、今回解説する「Scratch」というソフトで作った、立派な「目覚ましプログラム」です。 この短いプログラムには、どのプログラムにも共通する基礎が詰まっているのですが、全く予備知識のない方でも、これがどのような機能を持つか大体見当がつくと思います。 プログラムの基礎を理解し、コンピュータをより自由に操れるようになるということは、すべての人にとってとても大きな力となります。絵

  • これは注目!jQueryでExtばりにリッチなUIが実装できる「jQuery Ribbon」:phpspot開発日誌

    これは注目!jQueryでExtばりにリッチなUIが実装できる「jQuery Ribbon」 2009年05月28日- jQuery Ribbon - Home これは注目!jQueryでExtばりにリッチなUIが実装できる「jQuery Ribbon」。 利用すれば、コントロールのグルーピングや、ドロップダウンメニュー、階層リストなどのリッチなコンポーネントが実装できるみたい。 jQuery Ribbonを使ったリッチなUI。Windows7っぽいデザインのUIがJavaScriptで。 アイコン付きのかっこいいメニュー 表示しているUIのテーマを選べる アイコンつきリスト アイテムのグルーピング ドロップダウンメニュー ちょっとこれは素晴らしいですね・・・。jQueryの優位性がますます高くなってしまいましたね。 関連エントリ ナビゲーションのUIはこれで完璧かもなjQueryプラグイ

  • 1