lynx   »   [go: up one dir, main page]

タグ

設計に関するholyppのブックマーク (10)

  • Hashbang(#!)なURLの恐怖

    諸方面からお叱りの言葉しかいただけない#!なURLは様々な問題をはらんでいますが、来るべき未来(もうすぐですよ!)におけるメンテナンス性という問題についてAdactioで取り上げられていました。#!の表面的な凶悪さに思考停止していて、こういった質的な問題についてはまったく考えていなかった気がします。 その問題というのは、#!なURLからHistory APIなどを利用してクリーンなURLに乗り換えよう(戻そう)としても、古い#!なURLを有効なままにするためにはサーバー側の何か(単純なリダイレクトやmod_rewriteなど)ではどうしようもないので、クライアント側での(JavaScriptを利用した)リダイレクトを提供する機能を提供し続けなければならないというメンテナンス性の悪さです。 この#!なURLのメンテナンス性の悪さという問題は、URLの#以降はクライアント側の扱いなので、クラ

    Hashbang(#!)なURLの恐怖
  • プログラミングと設計は本来切り離せないものなのでは - 達人プログラマーを目指して

    最近はアーキテクトという役割で客先に常駐し、フレームワークの選定をしたり、事前に共通部品を設計したりする役割を担う仕事を引き受けることが結構あります。そこで運よくお客様のマネージャーがオブジェクト指向開発の経験が十分にある方だと、IDEなどの開発環境やインターネット接続環境を当然のように用意してくれるので最初から仕事がスムーズにできるのですが、そうでないとMS Officeしか入っていないロースペックのノートPCを渡されて、要件定義フェーズの期間中、フレームワークの設計をお願いしますとか、私としてはちょっと首をかしげてしまうような困ったことを言われてしまう場合があります。開発フェーズが始まる半年後まではコーディングは基的に不要という考え方です。アプリケーションのアーキテクトという役割では少なくともコーディング規約を考えたり、ツールやフレームワークの選定をしたりする必要がありますし、プロジ

    プログラミングと設計は本来切り離せないものなのでは - 達人プログラマーを目指して
    holypp
    holypp 2010/11/25
    この一言で一気に説得力が増している。>現在のようなオブジェクト指向の開発環境が一般化する前の言語ではデータ構造を設計し、それに対する処理の流れを設計してしまえばよかったですし、
  • Wikipedia が記事の履歴をどのように DB に格納してるか調べてみた - てっく煮ブログ

    Wikipedia は過去の編集履歴もサイト上から確認できるようになっているのだが、どのようなデータ構造で情報を保存しているのか気になって調べてみた。MediaWiki を見ればいいWikipedia のソースコードは MediaWiki として公開されているので、これのソースコードを見たり、試しに動かしたりして把握していった。MediaWiki は PHP で開発されている。今回は調査時点での最新バージョン 1.16.0 を利用して調査した。と思ったら MediaWiki に DB 構造が書いてある記事のデータやユーザー情報は全て DB(PostgreSQL or MySQL or SQLite) に保存されるようだ。手っ取り早く SQLite を使ってローカル環境で動かしてみて DB を覗いてみた。DB を眺めつつ、いろいろ調べてたら MediaWiki のサイト上にテーブル構造を示し

    holypp
    holypp 2010/09/24
    こういうのおもしろいな。Wikipediaのテーブル設計。>MediaWiki のサイト上にテーブル構造を示したドキュメントがあった
  • デザインパターンを読み解く

    ポリモーフィズム(サブクラスによる切り替え、抽象化) ここに分類されるのは、オブジェクト指向の第3原則、ポリモーフィズムを使用したパターンです。ポリモーフィズムを使用すると、動的に使用するクラスを切り替えることができます。<参照> 他に分類されているものでも、ポリモーフィズムが重要な位置を占めているものもありますが、ここではそれしか使われていないものを扱います。 ただデザインパターン全体を通して強調されているのは、インターフェースでプログラミングするということです。実装への依存をなくし、そうすることによって設計の骨組みを明らかにするのです。 Template 次のようなメソッドがあった場合に、処理Bのところを条件によって変えたい場合があるとします。 class Hogehoge { void doit() { ... 処理A ... ... 処理B ... ... 処理C ... } }

    holypp
    holypp 2010/09/10
    デザインパターン、このまとめはうまいなぁ。GOFはもうバイブルではなく古典だと思ってるけど、続くものが出てこない。@hyukiさんの本は毛色が違う感じ。今風に書き直したら、と期待してしまうけど。
  • テストは誰が書くのか - 未来のいつか/hyoshiokの日記

    昨日のエントリの補足的なもの。id:hyoshiok:20100612#p1 テストは誰が書くのか。もちろんコードを書いた人が書く。コードは誰が書くのか。設計をした人が書く。誰が設計をするのか。要求を分析した人がする。このように一つの機能について一人が責任を持って行うのがベストプラクティスになっている。 ところが、日のソフトウェア産業の8割以上は受託開発と言われているが、そのような現場では誰かが一貫してすべての工程に責任を持つということは普通行われていない。工程を上流下流とわけ、いわゆる一次受けと呼ばれる大手SIベンダーが要求分析をし、その下に設計実装する下請け、孫請けを持つという多重構造になる。 要求分析をして、仕様にまとめるわけであるが、実装のコスト(実装のしやすやしにくさ、実装工数の大きさ)はほとんど考慮されない。契約文書として、これこれを実装することみたいなものがあらかじめ取り交

    テストは誰が書くのか - 未来のいつか/hyoshiokの日記
  • O/Rマッピング技術の進化が皮肉にも助長している「えせMVC症候群」

    昨日の「Ruby on Railsの『えせMVC』の弊害」というエントリー。若干「釣り」の要素が含まれたタイトルが功を奏したのか、たくさんのフィードバックがいただけた。そんな中で見えて来たのは、この問題はRailsに限った話ではなく、業務用アプリケーションで使われているJavaや.Netの世界でもよく見られる問題だということ。 その「問題」とは、ActiveRecordに代表されるO/Rマッピングの技術の進化が、来のMVC(そしてオブジェクト指向そのもの)のメリットを無視した「えせMVC」な設計を助長している、という問題である。 ・MVCやオブジェクト指向を表面的にしか理解していないエンジニアが増えている(ここが根的な問題) ↓ ・SQLを自分で記述しなくて良いO/Rマッピングはとても魅力的(これはこれで別の問題を含んでいるが、このエントリーではあえて突っ込まない) ↓ ・O/Rマッピ

    holypp
    holypp 2010/04/27
    O/RマッピングからMVCのあるべき形を。また、Rails上で犯しやすい設計上のミス
  • なぜTwitterは低遅延のままスケールできたのか 秒間120万つぶやきを処理、Twitterシステムの“今” − @IT

    ユーザー同士のつながりを元に時系列に140文字のメッセージを20個ほど表示する――。Twitterのサービスは、文字にしてしまうと実にシンプルだが、背後には非常に大きな技術的チャレンジが横たわっている。つぶやき数は月間10億件を突破、Twitterを流れるメッセージ数は秒間120万にも達し、ユーザー同士のつながりを表すソーシャル・グラフですらメモリに載る量を超えている。途方もないスケールのデータをつないでいるにも関わらず、0.1秒以下でWebページの表示を完了させなければならない。そのために各データストレージは1~5ms程度で応答しなければならない。 Twitterのリスト機能の実装でプロジェクトリーダーを務めたこともあるNick Kallen氏が来日し、2010年4月19日から2日間の予定で開催中の「QCon Tokyo 2010」で基調講演を行った。「Data Architecture

  • SEOには、運用のSEOと設計のSEOの2つのフェーズがある。

    SEO対策というのは、サイトを作った後の運用の話だと思っていたら大間違いで、SEOを意識したウェブサイトを設計すれば、立ち上がりが速くなるし、そもそもサイトのポテンシャルに影響してくる。何より何事にも変えられない大事な時間を失わないで済む。 SEO対策には2つのフェーズがある。 フェーズ1.インデックスされやすさ、クロールされやすさ(クローラビリティというらしい)を実現するサイト設計 フェーズ2.コンテンツ運用によって、、上位表示されるに値する価値を作り出す フェーズ1だけで、上位表示するのは難しい。 難しいが、フェーズ1が満たされてないと、上位表示は難しい。 インデックスされやすさ、クロールされやすさは、サーバ設計、URL設計、コンテンツ設計(HTML構造含む)技術的側面で解決する問題だ。 そして、適切なインデックスをされるポテンシャルを持ったWebサイトが、フェーズ2の上位表示されやす

    holypp
    holypp 2010/01/14
    SEOはバリバリにこんな感じ。IT業界の他の要素も、もう少しガチでやっていいのに。→そもそも敵が多い。お互い商売なので本気でチューニングしてくる。
  • 詳細設計書に何を書くべきか? - Sacrificed & Exploited

    詳細設計書の書き方については黙っていられないので、ちょっと意見を言わせてもらう。 私も「詳しすぎる詳細設計書 - SiroKuro Page」で示されているようなコードと1対1に対応したような詳細設計書は、書くだけ無駄だと思っている。ただ、ちゃんとした詳細設計書をつくるなら、処理内容(内部の処理の実装方法)の書き方をどのように実装言語に合せるかではなく、処理内容を一切書かないようにするべきだと考えている。 なぜなら、処理内容をいくら詳細に記述したところで、それは仕様ではなくコードであり、仕様の代わりに記述したコードでは、バグも含めて記述されているため、そのコードのみでは正しいか間違っているかを判定できないからだ。 コードの他にどういった動作が正しいのかを判定する基準が必要で、その基準が仕様であり、詳細設計書にはその仕様を記述する必要があると考えている。 現に、例として示された処理概要では、

    詳細設計書に何を書くべきか? - Sacrificed & Exploited
    holypp
    holypp 2010/01/08
    同意。 ~具体的には、TDDやBDDの考え方みたいに、どういう入力に対して、どういう結果になるかというブラックボックステスト的な振る舞いのみを記述する必要があると考えている。~
  • 詳しすぎる詳細設計書 - SiroKuro Page

    「詳細設計書」と呼ばれるドキュメントがあります。各処理の入出力や処理概要を記載した文章です。 入力: 「性別と身長のペア」のリスト 出力: 男性の平均身長」と「女性の平均身長」の差 処理概要: 変数「男性の合計身長」「女性の合計身長」「男性の人数」「女性の人数」を 0 で初期化する 入力を受け取る 入力されたリストから要素を読み込む 入力されたリストの要素数だけ以下を繰り返す 要素を1つ読み込み、条件分岐する もし要素が男性なら、変数「男性の合計身長」に身長を加算し、変数「男性の人数」を1増加させる もし要素が女性なら、変数「女性の合計身長」に身長を加算し、変数「女性の人数」を1増加させる 次の要素を読み込む 「男性の合計身長」÷「男性の人数」−「女性の合計身長」÷「女性の人数」を、変数「計算結果」に代入する 出力する イメージとしては、こんな感じ。各社それぞれ、どんな詳細設計書を書いてい

    詳しすぎる詳細設計書 - SiroKuro Page
    holypp
    holypp 2010/01/07
    ~COBOL 最強説ここに爆誕。~ あるある。javaなら詳細設計書は書かずにテストコードを死ぬ気で書いた方がいい。
  • 1
Лучший частный хостинг