タグ

ブックマーク / satoshi.blogs.com (33)

  • デザイン・パターンとは何か

    先日のMVCの議論の際には、私自身いろいろと勉強させていただいたが、少し心配になったのは、「MVCの定義だって時代とともに変わる」「ウェブサービス用のMVCはSmalltalk時代のMVCとは異なるもの」「MVCなんか理解してなくてもアプリケーションが作れればいいじゃん」など、そもそも「MVCとは何か」どころか「デザイン・パターンとは何か」を理解していないんじゃないかと思われる発言が見られたこと。ということで、今日はデザイン・パターンについてひと言。 デザイン・パターンとは、(業界に蓄積されたノウハウに立脚した)何かを作る際の指針のこと。ソフトウェアに限らず、ものを作るときにはさまざまな(場合によってはお互いに矛盾する)要求条件や制約が課せられるわけだが、そんな時に過去にさまざまな事例を解決してきた先人の知恵を「パターン化」してノウハウとして身につけておけば、似たような事例に出会った時に効

    thesecret3
    thesecret3 2009/10/16
    とりあえずクリストファー・アレグザンダーを読もう。
  • O/Rマッピング技術の進化が皮肉にも助長している「えせMVC症候群」

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

    thesecret3
    thesecret3 2009/10/13
    スパゲッティかどうかはアーキテクチャの問題ではないことが多いかと。むしろ同じスパゲッティなら一ヵ所にズドンと書いてあるほうがいいかも。。
  • Ruby on Railsの「えせMVC」の弊害

    先日のエントリーでも少し触れたが、Ruby on Railsの最大の問題点は、それが持つ「一見そのフレームワークがMVCの形をとりながら、MVCの最も大切なところを外している『えせMVC』である」点にある。MVC(Model View Controller)がなぜ必要かを根底の部分でちゃんとと意識せずにRailsアプリケーションを作ると、後々ひどい目に会うので注意が必要である。 その意味では「RailsでMVCを学ぶ」などもっての他だし、「JavaにもRailsと同じようなフレームワークを作って業務用アプリの開発を効率化しよう」などという発想もとても危険である。 ということで、今日はまずはMVCの解説から。 MVCの発想の根底には、「モジュール化と情報の隠蔽により、プログラムがスパゲッティ化するの(コード間の相互依存関係が複雑に入り込んでしまってにっちもさっちも行かない状態になること)を避

    thesecret3
    thesecret3 2009/10/12
    わかるのだけど、実際そういう意味でのModelを必要とするのは重要ではあってもごく一部であり、全体のアーキテクチャをModel化すると頭デッカチでわずらわしいだけになってることが多いような。javaはそれがね。。
  • HTML5入門:アニメーションの実装方法3種

    HTML5・CSS3のような新しい技術の問題点は、HTML4やらFlashなどの枯れた技術と違ってノウハウ・ライブラリ・ツールとかがまだ十分にそろっていない事。普及のタイミングもまだはっきりとしていないこの段階で手を出せない・出しにくいと感じている人が多いのも良く理解できる。 私から見れば、逆に「こんな楽しい状況は滅多にない」わけで、商売になるかならないかは二の次にしていろいろと試したくなる。 今日作ったのは、HTML5+CSS3上で可能になる(ただし現在ではWebkit独自の拡張を含む)3つのアニメーション・テクニックの比較(左に貼付けたものがそれ、Safari/Chromiumだとすべて動く。Firefox/OperaだとDOMとCanvasのみ(ただし別ウィンドウで開かないとCanvasが動かないークロス・ドメインセキュリティのバグか?))。 詳しくはソース(参照)を見ていただければ

  • 「Flash vs. HTML5」という構図がはっきりと見え始めたぞ、と

    業界関係者(特にスマートフォン関係の仕事をしている人たち)少し前からすでに気がついていた話だが、今回のAdobeからの一連のアナウンスメントで明らかになってきた「HTML5対Flash」という構図。とてもワクワクする戦いだ。 ウェブ上のリッチコンテンツという分野でリーダーシップ・ポジションを取りながらも、「無料Flashゲーム」と「ウェブサイトの見栄えをちょっと良くするアイ・キャンディ」というニッチなポジションに一度は追いやられるように見えたFlash(数年前の話)。しかし、動画フォーマットがReal Networks、MicrosoftAppleの三強いの間で中に浮く隙間を付いた戦略で、見事に「ウェブ上のマルチメディアのデファクト・スタンダード」のポジションをがっちりつかんだかに見えるFlash(現在)。しかし、その地位も安泰ではない。 Adobeにとって一番頭の痛い問題はiPhone

  • Windows Mobileに「全力投球」を決めたMicrosoftの厳しい戦い

    ここの所モバイルの世界ではすっかりGoogleAppleにおいしいところをもっていかれてしまっているMicrosoft。そろそろ「撤退」か「全力投球」のどちらを選ぶ時期だと思っていたのだが、ついに「全力投球」を決めたそうだ。 今までは「Windows CEビジネスの延長上」程度にしか力を入れて来なかったWindows Mobileビジネスだが、Steve Ballmerが「開発者の心をAppleに奪われるなんて由々しき事態」と宣言し、主戦力をWindows部隊のトップクラスのエンジニアにごっそりと入れ替えての「体力勝負」に出る事にしたとのこと。

    thesecret3
    thesecret3 2009/09/23
    iPhoneと違ってアプリ配布が自由なのはいいけど、開発キットが結局10万以上かかるんじゃ開発者逃げちゃいますよ。
  • 外国為替相場取引(FX)で確実にもうける方法(必勝法)

    ワシントン大学で受講しているMBAもあと1ヶ月を残すところまで来たが、最後の期に受けている授業の一つが "International Finance" という外国為替に関する集中講座。今までいろいろと疑問に思ってきたことが一気に解消されたので大好きな授業の一つだ。 その授業の中で、金利の低い外貨で借金をして家を買った結果巨額の借金を抱えることになってしまった人たちがアイスランドにたくさんいる話だとか、リスクを十分に理解せずに為替リスクを100%負って金利の高い外貨預金に走る日の主婦たちなのど話が出たので、日の事情に関して少し調べてみた。

  • 「戦略的OS」の開発がことごとく失敗している点に関する一考察

    90年代にIBM、MicrosoftApple各社が巨額の開発費を投じて作っていた「戦略的OS」がすべて失敗してしまったことを皆さんはご存知だろうか? IBMが作っていたのはOS/2。元々はMicrosoftとの共同開発だったが、途中で仲違いをしてしまい、最後はIBMだけが細々とサポートしていたことすら覚えていない人が多いとは思うが、Windows95の成功であっというまに市場から消えてしまったのがOS/2。具体的な数値は公開されていないので分からないが、両社が数百人体制で数年間開発していたので、少なく見積もっても日円で数百億円は投じられたことは間違いない。 Cairoの方は私自身が初期のころにいたこともあるし、最終的には「Chicago(Windows95のプロジェクト名) vs. Cairo」の戦いの最前線にいた私としては知りすぎている点も多いのだが、一つだけ確かなのは、プロジェク

  • iPhoneのJailbreakの危険性に関してひと言

    iPhoneをハックして、Appleが認めている以上のカスタマイズを可能にしたり、Apple公認のApp Store以外からのソフトをインストール可能にしたり、することをJailbreak(=脱獄)と言うのだが、PhotoShareでの会話とかを見ていると、その危険性をちゃんと理解せずにJailbreakしている人たちがたくさんいるようなので、ひとこと警告しておく。 まず最初に考慮しておくべきことは、iPhoneはNintendo DSやSony PSPと違い、携帯電話でありメールマシンであり、インターネットマシンであり、住所録やらメールやらウェブサイトのパスワードなどの個人情報を思いっきりやりとりする、ある意味パソコン以上にプライバシー管理が大切なマシンであること。当然、ウィルスに感染したり、セキュリティホールからハッカーに情報を盗まれたりしないようにすることがものすごく大切。 パソコン

    thesecret3
    thesecret3 2008/10/04
    オライリーのiPhone開発本はいきなりJBについて・・から始まる。
  • Life is beautiful: ソフトウェアの仕様書は料理のレシピに似ている

    先日、経済産業省向けの仕事をしている知り合いと事をしたのだが、彼によると経済産業省の今の悩みは、「IT産業の階層化の弊害によっておこる下流のプログラマーの収入の低下」だそうである。「プライムベンダー」と呼ばれる「上流コンサルタント」たちがインドや中国にも仕事を発注できることを理由に、激しく値切り始めたために、今やわずか一人月30万円というケースもあるという。 こんな話を聞くと当に悲しくなる。まず第一に「プログラムを書く」という仕事は簡単な仕事ではない。数学的な頭を持っていないとかなり辛いし、基礎がしっかりと出来ていないとろくなソフトウェアは作れない。物価の安いインドや中国なら許せるが、米国よりも生活費の高い日で一人月30万円とはあまりにも低すぎる。 「彼らは下流のエンジニアで、詳細仕様書に従った通りのプログラムを書くだけの簡単な仕事をしているから給料が安い」という説明を聞いたことがあ

    thesecret3
    thesecret3 2008/09/27
    シェフがレシピだけ書いてキッチンにも立たないレストランには行きたくないし、ましてや自分で料理したこともないシェフが書いたレシピを元に作った料理がおいしいわけがない。
  • マルチスレッド・プログラミングの落とし穴、その2

    ずいぶん前に、「マルチスレッド・プログラミングの落とし穴、その1(かもしれない)」というエントリーを書いたが、今回はPhotoShareサーバーを運営していて、まさにこのあたりの深い考察が必要になって来たので、良い機会なので続編エントリー。 PhotoShareのバックエンドのようにCRUD(Create/Read/Update/Delete)のAPIをサポートするバックエンドを作る場合、Create/Update/Deleteのリクエストに対してはクライアントからのAPIコール時にすぐに(HTTP Requestに返事をする前に)データベースに変更を加え、Readの際にも(キャッシュを使う・使わないを別にして)データベースの最新の状況を反映するデータを返すように設計するのが普通である。 このアーキテクチャの問題は、ユーザーのアクティビティが増えた時に、データベースやI/Oがボトルネックと

    thesecret3
    thesecret3 2008/09/23
    Twitterは更新が頻繁だけど、写真サイトのようなものは、レプリケーションで読み取り専用DBを用意するカタチの非同期のほうがいいんじゃないかな。。
  • 「iPhone開発者支援プログラム」に興味がある人、この指とまれ

    シリコンバレーのエンジニアと比べて日エンジニアがの労働環境や待遇の面で冷遇されているということは常々言って来たことだが、その原因の一つがベンチャー企業を支援する仕組みが日に圧倒的に不足していること。私なりになにかできないかと色々と考えて来たのだが、やはり私としてできることはもの作り面での支援だと思う。 そこで、読者に質問だが、もし私が「iPhone開発者支援プログラム」のようなものを立ち上げたら、エンジニアとして参加することに興味のある方は何人ぐらいいるだろうか。漠然と考えているイメージはこんな感じ。 ステップ1:プログラミング・コンテスト 作ったiPhone用のプログラムを「投稿」していただく。審査に通った人はステップ2に進んでいただく。 ステップ2:開発支援 審査に通った人に対し、資金・企画・技術・デザイン面での開発支援を行う。必要であればウェブ・サーバーも提供する。 ステップ3

  • Life is beautiful: 自分で考える前にググっていませんか?

    つい先日、興味深い話を聞いた。ある大学の授業で「デジタル・コンテンツ・ビジネス」というテーマで小論文を宿題として書かせたところ、同じような内容の小論文ばかりが集まったという。その原因を調べたところ、「デジタル コンテンツ ビジネス」のキーワードでググると上位に来る私の過去のエントリーの内容がほぼ丸写しにされていたという。 日の学生の勉強に対する態度なんてそんなものなのかも知れないが(それはそれで憂うべき話だがその話は別の機会に)、少し心配になるのがどんな気持ちでその手の「コピペ」をしているのか、という点である。確信犯的に「徹底的に手を抜きたいからコピペしているだけ」ならまだ許せる。私が問題視するのは「自分で考える前にまずググる」習慣であり、「ググれば答えが見つかるにちがいない」という錯覚である。 暗黒時代とも呼ばれる中世ヨーロッパで科学の進歩があんなにも長い間低迷した原因の一つは、あの時