タグ

設計に関するtakuya-itohのブックマーク (20)

  • オブジェクト指向開発を理解した開発者に、設計書は不要:アジアのソフトウェア開発現場にて:エンジニアライフ

    シンガポールでアジアのエンジニアと一緒にソフトウエア開発をして日々感じること、アジャイル開発、.NET、SaaS、 Cloud computing について書きます。 わたしのソフトウェア開発者としての経歴は10年程度。10年間、いろいろなものを作ったが、「設計書」と言えるもの、つまり「基設計書」「詳細設計書」がある形でプログラム開発したことは一度もない。たぶん、これからもないかと思う。 「大したものを作っていないのでは」と、わたしのソフト開発者としての能力を疑う人が出てくるかもしれない。しかし、大企業で大勢の人に使われるようなシステム――規模にして数十年月のしっかりしたシステムを作ってきたことは事実である。ということで今回は、「設計書なしでかなりの規模のシステムを作る」ことに関するわたしなりの方法論を少し書いてみる。 オブジェクト指向は必須である。「設計書なしである程度の大きさのソフト

    オブジェクト指向開発を理解した開発者に、設計書は不要:アジアのソフトウェア開発現場にて:エンジニアライフ
  • オブジェクト指向について語った時に使ったメモ

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

  • 語られないアーキテクチャの謎 - 設計者の発言

    業務システム開発の世界でも「アーキテクチャ」という言葉がふつうに使われるようになった。この場合のアーキテクチャとは「ソフトウエアのコンポーネント構造やそれらの相互関係に関する基方針」くらいの意味なのだが、業務システムのように複雑で巨大なソフトウエアを効率的に開発・保守してゆくためには、アーキテクチャが適切にプランされていなければいけない。 私が不思議に思うのは、アーキテクチャが「フレームワーク」のレベルで饒舌に語られるわりに、「アプリケーション」のレベルでほとんど語られない点だ。 ここで言う「アプリケーション」とは、「全社システム」やその1モジュールである「営業管理システム(生産管理システム等の企業の業を支援するシステム)」のようなソフトウエアのことを言う。いっぽう「フレームワーク」とは、ここでは「アプリケーションを開発するためのミドルウエア」を指している。「実装基盤」と呼んでもいい。

    語られないアーキテクチャの謎 - 設計者の発言
  • dfltweb1.onamae.com – このドメインはお名前.comで取得されています。

    このドメインは、お名前.comで取得されています。 お名前.comのトップページへ Copyright © 2020 GMO Internet, Inc. All Rights Reserved.

  • HTML5時代の「運営しやすいアーキテクチャ」の話

    増井君と二人でPhotoShareというサービスを立ち上げてもう15ヶ月になるが、いろいろと学んだことがある。その中でもつくづく思うのは、サービスを作り上げる段階よりも、運営のことを考えた設計が大切なこと。つまり、メンテナンスしやすい、テストしやすい、多少のミスをしても大丈夫、こまめなアップデートがしやすい、作業分担がしやすい、などなどである。 そんななかで強く感じるのは、「AJAXを見た目や使いやすさの面だけに利用するだけでなく、『運営しやすいサービス』を作るのに利用できないか」ということである。 私のイメージするアーキテクチャを図にするとこんな感じになる。 まず一番の特徴は、テンプレート等を利用したHTMLのダイナミックな生成をすべてやめて、データ(JSONもしくはXML)だけをダイナミックに生成するようにし、HTMLはスタティック・ファイルをサーバー側に置いておく(上の図で、CSS,

    HTML5時代の「運営しやすいアーキテクチャ」の話
  • Refactoring Not a Substitute for Design

  • リファクタリングは設計の代わりにはならないよ - masayang's diary

    InfoQ: Refactoring Not a Substitute for Design リファクタリングは設計の代わりにはならないよ 2009年2月9日 Chris Sims 「設計ってリファクタリングの一部なの?」という質問を受けた。この質問の背景には、Agileにおける設計の考え方に関する勘違いが見受けられる。よくAgileな人は「テストしろ! コード書け! リファクタリングしろ! 以下繰り返し!」とマントラのように繰り返す。でも、このやり方が設計を置き換える事はない。プロジェクトにおいて一連の作業が延々と繰り返されているだけなんだ。 Phil Hがこんな質問をしてきた: 新しいやり方ってのは、まずとにかくコードを書いて初期イタレーションの目的を達成し、それから必要に応じてリファクタリングを行い、洗練していくっていうことらしい。コードは漸増的に増えていく一方、全体的な設計はしてい

    リファクタリングは設計の代わりにはならないよ - masayang's diary
    takuya-itoh
    takuya-itoh 2009/02/21
    "いらないんじゃないの?""機能は後から足せば良い""最適化は最後に"
  • Google Code Archive - Long-term storage for Google Code Project Hosting.

    Code Archive Skip to content Google About Google Privacy Terms

  • 『翻訳: よい作曲家/システム構成者はきわめて稀だ』

    このところある洋書の翻訳に掛かりきりで、こちらにほとんど記事を書いていませんでした。ようやく翻訳も終わったので、また少しずつ記事を書いていこうと思います。翻訳書の方は、年内または年始に出版の予定なので、出版が近づいたらまたお知らせします。 といいつつまた翻訳ネタですが、gregor-ramblings-jaプロジェクトに翻訳記事を1追加しました。今回は「Good Composers are Few and Far in Between(よい作曲家/システム構成者はきわめて稀だ)」です。 非同期メッセージングなどを使って非常に疎結合なシステムを作ろうとすると、コンポーネント(SOA的にはサービス)をどう組み合わせていくか、という構成(composition)の問題が重要になってきます。Gregorは、ここにOOPなどとは異なるプログラミングモデルに支配された「構成層」という新たな層が導入さ

  • 次のアーキテクチャと3つのテスト (arclamp.jp アークランプ)

    今度のデブサミ2009でもアーキテクトゾーンの担当をします。ご一緒させていただくユニシス牧野さんとも3年目。毎回のことながらテーマ設定がかっちりしていて楽しいです。 今度のテーマは「次のアーキテクチャ」。そして、裏テーマが現在のアーキテクチャと次のアーキテクチャの断絶をいかにつないでいくのか。 これまでのアーキテクチャの歴史を概観すると、集中>分散>統合と説明することができます。ホストでの「集中」処理を行い、ユーザーはダム端末を利用していました。それがオープン化とダウンサイジングの流れ、そしてインターネットを超えて「分散」化していきます。そこからEAI、SOAと続く「統合」の流れになっています。 では、「次のアーキテクチャ」はなにか。それはアプリケーション同士が緩やかにつながりあいながら、システムが動的に立ち現れてくる時代。 もはや1つのアプリケーションではシステムは完結しません。複数のア

  • 堀江貴文『ANAのシステムトラブル』

    堀江貴文オフィシャルブログ「六木で働いていた元社長のアメブロ」 一般的には、ホリエモンとか堀江とか呼ばれています。コメントはリアルタイムには反映されません。私にコンタクトを取りたいときは、info@takapon-jp.comへメールでご相談ください。 ANAのシステム障害、原因は「認証機能の有効期限切れ」 たまたま、この時飛行機に乗る予定があって、私が乗った飛行機はちゃんと飛んだのですけど、欠航したりしたら、嫌だなあとおもったりしていて、原因が発表されてた。役員を減俸したところで、再発防止策になるわきゃねーな、と。 この種のケアレスミス?は前の会社でも、たまにあって、たとえばドメイン名の有効期限が切れてたとか、SSLの認証鍵が有効期限きれてたりとか。大慌てで直して謝罪してみたいな感じで大変なんだけど、なかなかこういうのはなくならないね。 端末を扱う社員のITリテラシーが高いわけもなく、

    堀江貴文『ANAのシステムトラブル』
    takuya-itoh
    takuya-itoh 2008/09/19
    "100%は無理だということを前提にして、オペレーションを行わなければならないのだ。"
  • 「大規模プロジェクトではどうするか」を考えるより、「大規模にしないためにはどうするか」を考えよう - kなんとかの日記

    はっきり言おう。大規模プロジェクトは存在自体が悪。 続けて同氏は、ケーパース・ジョーンズ氏の著書「Patterns of Software System Failure and Success」から調査結果を引用し、大規模プロジェクトになればばるほど、当初の見積もりとは大きくかい離したものになり、かつ失敗する可能性が高いことを示した。「(一般的なプロジェクトも含めた調査結果でさえこれなのだから)デスマーチについては推して知るべし」とヨードン氏。 エドワード・ヨードン、デスマーチを成功に導く対症療法を説く - ITmedia エンタープライズ (強調は筆者による) うむ。言っていることはごくあたりまえのことではあるが、ヨードン氏が言うと説得力がある。 調査結果の抜粋。FP(ファンクションポイント)はジョーンズ氏が定義している単位で、1FPが100行程度のコードであるという。1FPであればほぼ

    「大規模プロジェクトではどうするか」を考えるより、「大規模にしないためにはどうするか」を考えよう - kなんとかの日記
    takuya-itoh
    takuya-itoh 2008/09/13
    "しかしこの業界はまったく学習してなくて、いまだに大規模であるほど偉い、あるいは大規模こそ正義、みたいなバカが多くて困る。"
  • NTTデータとの決闘シリーズ第二幕 - ひがやすを技術ブログ

    昨日は、NTTデータとの決闘シリーズ第二幕。戦闘服には、かりゆしウェアを選びました。 今回は、データの顧客であるユーザ企業からも参加していただきました。この人はKさんと呼ぶことにします。Kさんは、現在Seasar2(SAStruts, S2JDBC)を使って、プログラミングファースト開発を実践されている先進的なユーザです。BtoCのサイトを作っていると考えてください。 プログラミングファースト開発の詳細はこちら。 http://d.hatena.ne.jp/higayasuo/20080501/1209636051 http://d.hatena.ne.jp/higayasuo/20080721/1216607451 最初のテーマは「品質」。データとしては、 テストコードのカバレッジやバグ密度などで品質を確保しようとしている。 でも、品質に問題があるプロジェクトも残念ながら存在する。 品質

    NTTデータとの決闘シリーズ第二幕 - ひがやすを技術ブログ
    takuya-itoh
    takuya-itoh 2008/08/28
    "ユーザですら自分が本当に欲しいものは何なのかわかっていないのに、精度の高い設計なんてできるわけがない。""ユーザから見るとこれまでより早く、コストが安く、自分たちの思ったものが手に入る。"
  • プログラミングファースト開発は物神化に並ぶ人月商法脱却の解か - 雑種路線でいこう

    プログラミングファースト開発と最初に聞いて、ソフト開発の手順としては当たり前過ぎて、最初は何が新しいのかさっぱり分からなかったんだけど、肝は如何に受託開発でそれを貫徹するかの交渉術や契約形態にありそうだということに合点がいった。人月に代わる値付けの方法、機能や品質に応じた対価を得る手法として、パッケージ販売やSaaSといった共通化と利用者拡大の他に、相対取引での値付けにも新たな道は広がるのだろうか。 実は世の大半の名だたるソフトウェアに厳密な仕様書などないし、受託開発でも設計書と呼ばれているものがコードと同期している可能性はかなり低い。これはソフトにとって役に立つこと、問題を起こさないことが、仕様書通りに動くことよりずっと重視されてきた結果であって、みんな心のどこかで気掛かりではあるけれども、マクロ的には合理的なトレードオフの結果であって必ずしも悪い話ではない。 恐らくプログラミング・ファ

    プログラミングファースト開発は物神化に並ぶ人月商法脱却の解か - 雑種路線でいこう
  • プログラミングファースト開発のアキレス腱 : 404 Blog Not Found

    2008年07月21日15:00 カテゴリArt プログラミングファースト開発のアキレス腱 ktkt. プログラミングファースト開発の必要性 - ひがやすを blog これをふまえて考えたのが、以前提案したプログラミングファースト開発だ。 プログラミングファースト開発とは、ドキュメントを書いてからソースコードを書くのではなく、動くソースコードを書いてユーザに実際に触ってもらうということを何度も繰り返して、仕様を固める開発手法。ドキュメントは仕様が固まった後に書く。 実は私自身、この言葉が生まれる前から実践してきたのだけど、一つけったいな問題点があるので、それを指摘しておく。 それが何かというと、 客がそれを安易だと勘違いして、安価だと思いやすい こと。 プログラミングファーストの場合、最早だと打ち合わせのその場で動くものを見せたりする場合がある。客が分かっている人だと、その事にボーナスを出

    プログラミングファースト開発のアキレス腱 : 404 Blog Not Found
    takuya-itoh
    takuya-itoh 2008/07/21
    ”まあそんなわけで、プログラミングファーストは相当のマッチョでないとキツイというお話。少なくともプログラミングの腕だけでは駄目で、顧客に対して相当強気に振る舞える人でないと難しい....”
  • プログラミングファースト開発の必要性 - ひがやすを技術ブログ

    ここではフローチャートの是非を論じるつもりはない。クソだから。もっと一般化してしまえば、○○設計書みたいに「設計書」と名のつくものは全部クソだ。だって動かないんだもん。 動かない以上、それら設計書が正しいのか、漏れがないのかは保証のしようがない。机上検証なんていう工程もあるらしいけど、君たちの脳味噌は何MIPSなんだと問い詰めたい。もちろん、机上検証で見つかる凡ミスもあるだろうけど、そんなのはズボンもパンツも履かずに会社に向かうのと同じくらいのレベルの間違いだろう。 結局はコードを仕上げてから動かして初めて「だめだこりゃ」ということになる。 ○○設計書は、動かないから検証ができない。だから、だめだというのは、半分あっていて半分間違っていると思う。システム開発の大多数は、最初に○○設計書を作成する。顧客にレビューしてもらったり、自分たちでも内部レビューしたりするが、あれは、有効性が低い。 動

    プログラミングファースト開発の必要性 - ひがやすを技術ブログ
    takuya-itoh
    takuya-itoh 2008/07/21
    "プログラミングファースト開発とは、ドキュメントを書いてからソースコードを書くのではなく、動くソースコードを書いてユーザに実際に触ってもらうということを何度も繰り返して、仕様を固める開発手法。"
  • 深い業務知識が必要なのは案件の提案者と要件定義者 - ひがやすを技術ブログ

    SIerが必要としているのは業務知識だという都市伝説のエントリで、誤解されたのは、「SIerは深い業務知識が不要だ」というふうに私が主張していると思われたことですね。 誤解されるのは、もちろん、私の書き方が悪かったせいなので、続きを書きます。 SIerで深い業務知識が必要とされる人がいます。案件の提案者と要件定義者です。営業がお客様のところから案件を持ってくると、その案件に関する深い業務知識を持っている人がアサインされ、提案書と見積りを作ります。この役割の人は、深い業務知識が必要です。 無事に案件が獲得できたとしましょう。お客様のところにいって要件をつめるのですが、このときのメンバも深い業務知識が必要です。しかし、全員が深い業務知識を持っていなくても大丈夫。全体の半分弱くらいのメンバが深い業務知識を持っていれば大丈夫だと思います。案件の難易度にもよりますが、一人が業務を深く理解していれば大

    深い業務知識が必要なのは案件の提案者と要件定義者 - ひがやすを技術ブログ
    takuya-itoh
    takuya-itoh 2008/06/20
    "技術力だけがあればいいなんていってませんよ。外部設計を行なうには、業務知識が必要です。しかし、それと同時に、「要件をどうやって実装に落とし込むかというスキル」も必要なのです。"
  • SIerが必要としているのは業務知識だという都市伝説 - ひがやすを blog

    SI業界が開発するシステムの目的は何か? それがつまり「業務知識」というやつで、金融や保険だったり、証券取引、財務会計、生産管理、物流・在庫管理、販売管理だったりするのだ。それぞれ必要とされる知識は非常に多い。普通の新入社員がOJTで身につけようと思ったら数年かかってもおかしくないだろう。 金融(ディラーが使うようなポジション計算をするフロントシステム、リスク計算をするようなミドルオフィス、勘定系のバックオフィス)、流通、輸出入、製薬など、いろんな業務をやってきたおいらが通りますよ。 確かに金融は業務知識がないと歯が立たない。でも、自分の経験した限りでは、それ以外の業務は、案件が始まってから勉強しても十分間に合います。 一週間以内の勉強で、お客様のところにいってシステムの仕様を話し合うことはできるようになります。もちろん、この道何年って人にはかないませんよ。でも、仕様を決める分には困らない

    SIerが必要としているのは業務知識だという都市伝説 - ひがやすを blog
    takuya-itoh
    takuya-itoh 2008/06/19
    "技術的なスキルを身につけ、ユーザの要件をいかにシステムに落としこめるかを知っていることが重要です。要件を技術に落とし込むスキルは、勉強しても身につかない。経験をつむしかありません。"
  • 生産性(続き)、アーキテクチャとフレームワーク (arclamp.jp アークランプ)

    前回のエントリから時間が空いてしまいました、ごめんなさい。せっかくひがさんとkoichikさんにコメントをいただいたので整理します。 ひがさんのコメントが象徴的だと思っていて、 選ぶことが大事じゃなくて作ることが大事なのでは。 という点で、僕は「選ぶことが大事だ」と思っています。そもそも僕はひがさんやkoichikさんのように「(フレームワークを)作る」力がない(気持ちとか、そういうのも含めて)。 なので、koichikさんの 規模で世の中の 80% を占めるところのエンタープライズシステムでは Spring の方が生産性を高められる<中略>の根拠たり得る説得力ある意見が聞きたかった については、「選ぶ」という視点ではSpringの方が最適化されているからという答えになります(ここまで断定的な言い方をしているつもりはなくて、『そういう場合が多い』というぐらいだけど)。 「規模で世の中の 8

    takuya-itoh
    takuya-itoh 2008/06/18
    "アーキテクチャとフレームワークは根本的に異なっているモノです。"
  • プログラミングファースト開発 - ひがやすを技術ブログ

    プログラミングファースト開発とは、ドキュメントを書いてからソースコードを書くのではなく、動くソースコードを書いてユーザに実際に触ってもらうということを何度も繰り返して、仕様を固める開発手法です。ドキュメントは仕様が固まった後に書きます。 テストサミットでは、極力ユニットテストを書かずに品質を確保する方法ということで、テストに重点を置いて話をしたのですが、今回のクロスコミュニティカンファレンスでは、「プログラミングファースト開発」そのものについて、会場の方々と一緒にディスカッションしました。 熱い(暑い?)ディスカッションになったので、思わず途中で泡のあるスポーツドリンクを飲まないといけなくなったほどです(笑)。 プログラミングファースト開発の開発手順は次のようになります。 実装してユーザに使ってもらうということを仕様が固まるまで繰り返す レビューの結果はその場で反映させる 仕様を決めながら

    プログラミングファースト開発 - ひがやすを技術ブログ
    takuya-itoh
    takuya-itoh 2008/06/12
    "全部自分たちで開発する。これって気持ちいいし、利益も出る。"
  • 1