タグ

Programmingに関するshozzyのブックマーク (136)

  • 設計者の発言: 詳細設計とコーディングの融合

    「CONCEPTWARE/財務管理」で例示したような「実装独立な基設計」にもとづいて、「実装依存な設計」をまとめる。それが「詳細設計」と呼ばれる工程で、なかなか問題の多い局面だ。その扱いにくさは、この工程が実装技術の未発達さゆえの「来は不要な手順」である点に端を発している。しかし、実装技術の発展にともなって詳細設計の工程はプログラミングに吸収されつつある。その変化はプログラマとアプリケーションエンジニアとの適正な棲み分けをもたらすものでもある。 ◆詳細設計の悩ましさ 経験者ならよくわかると思うが、詳細設計作業のいちばんやっかいな点は、手を抜いても誠実にやっても問題を生じる点だ。まず手を抜くと、プログラマの能力差にしたがったバラバラな品質のプログラムが出来上がる。プログラマからの問い合わせも増えるので、けっきょく手間がとられる。手を抜いてろくなことはない。 では、誰が作ってもそっくりなプ

    設計者の発言: 詳細設計とコーディングの融合
  • @IT:連載 ビジネスWebサービス最新事情(6) 混迷するWebサービス・トランザクション制御

    Webサービスをビジネスで利用するために、高度なセキュリティやトランザクション処理、複数のWebサービスの連携などを実現するさまざまな仕様が策定されようとしている。連載では、これらの仕様を理解するための解説を行っていく。(編集局) 日アイオナテクノロジーズ(株) 小野沢 博文 2004/1/22 今回から2回に分けて、Webサービスのトランザクション仕様の解説を行います。連載の第1回に、「Webサービスのトランザクション仕様は、セキュリティ仕様以上にあわただしい動きが見られる分野」と述べましたが、あれからわずか半年足らずの間にさらに大きな変化がありました。今回は、前半でこうした新しい変化を踏まえて、現在提案されているトランザクション仕様の最新事情を説明し、後半でこれらのトランザクション仕様がそもそも何を目指しているのかというベーシックな部分を解説します。 ■Webサービス・トランザク

    shozzy
    shozzy 2005/09/21
    「補償トランザクション」。あぁ、この機能は名前は知らなかったが、しばしば実装しているな。
  • naoyaのはてなダイアリー - Perlプログラマのレベル10 - Perlプログラミング救命病棟より

    プログラマ、と一言で言っても、if文の意味をようやく理解したばかりの駆け出しのプログラマもいれば、汎用的で優れたライブラリを量産できるような凄腕のハッカーもいる、つまりはピンきりです。 Perlプログラマに関してはどうでしょう。一流のPerlプログラマになるためには、見えない階段があるようです。use strict を使い始めたらその階段を一歩上ったと言えるでしょうし、正規表現を理解したときも一段あがることになると思います。リファレンス、クロージャ、オブジェクト指向、CPANモジュール、mod_perl、MVCフレームワーク。それらも階段を構成する材料の数々と言えるでしょう。 さて、Perlプログラミング救命病棟という書籍から、ちょっと長いですがそんなPerlプログラマのレベル10のリストを引用してみます。 レベル1: Perl 関係の書籍や資料を何も読んでいない。Perl がプログラミン

  • いやなブログ: JavaScript とクロージャ

    JavaScript とクロージャ JavaScript プログラミングはなかなかおもしろいよ、と知人に言ってみたところ、 全然信用されずに怪訝な顔をされる、という目に遭いました。 クロージャが使えて DOM ツリーにイベントハンドラを簡単に追加できるよ、と続けると多少は興味を持ってもらえるようなので、クロージャを使ったサンプルプログラムを書いてみました。 箱の中でマウスカーソルを適当に動かしてください。 このプログラムでは各セルの色の濃さをクロージャを使って保持しています。makeHandler という関数の depth という変数がそれです。クロージャを使うと、個々のイベントハンドラごとに独立した状態を簡単に持たせされるのがポイントです。 別にクロージャを使わなくてもいいようなプログラムですが (クロージャではなく DOM のエレメントに状態を持たせるとか)、こういう風にも書けるよ、と

  • いやなブログ: 配列操作の比較表: Ruby, Python, JavaScript, Perl, C++

    配列操作の比較表: Ruby, Python, JavaScript, Perl, C++ プログラムを書いていると、他のプログラミング言語の記憶とごっちゃになって、「配列の後ろに要素を追加するのは push だっけ、 append だっけ」などと混乱することがあります。特に Ruby, Python, JavaScript はコードの書き方が似ているので、この問題が起きがちです。 そこで、備忘録として、 Ruby, Python, JavaScript, Perl, C++ の配列操作の比較表を作りました。一番慣れている Ruby を基準にしています。間違いなどがあったらご指摘いただけると助かります。他の言語のもあるといいなあ。 Ruby (Array) Python (list) JavaScript (Array) Perl (@) C++ (std::vector)

  • 『Ruby on Rails』入門 : Hotwired

  • JavaScript: 世界で最も誤解されたプログラミング言語 - 実用

    翻訳 原文:JavaScript: The World’s Most Misunderstood Programming LanguageCopyright 2001 Douglas Crockford. All Rights Reserved Wrrrldwide. JavaScript(別名:Mocha、LiveScript、JScript、ECMAScript)は、世界で最も人気のあるプログラミング言語の一つです。世界中のほとんどのパソコンには、少なくとも1つはJavaScriptインタープリタがインストールされ動いていることでしょう。JavaScriptは、WWWのスクリプト言語としての確かな地位により広く利用されるようになったのです。 しかしその高い普及率にもかかわらず、JavaScriptが汎用的でダイナミックな優れたオブジェクト指向プログラミング言語であることはあまり知られて

  • Coding Guidelines | Mono

    Multiline Parameters When you need to write down parameters in multiple lines, indent the parameters to be below the previous line parameters, like this: Good: WriteLine (format, foo, bar, baz); If you do not want to have parameters in the same line as the method invocation because you ar running out of space, you can indent the parameters in the next line, like this: Good: WriteLine ( format, mov

    shozzy
    shozzy 2005/08/30
    The Linus Torvals trick
  • 満足せる豚。眠たげなポチ。:Rolling on Ruby on Rails - Japanese Translation - p1

    見知らぬ極東のRubyistへ丁寧で親切な対応をしてくれたCurtとONLamp.comへ最大級の感謝を込めて。 元記事はこちら。(You can read the original article from here!) nak2kさんからのご指摘で、リンク先を修正しました。'Seeing is Believing'の箇所の表記を修正してみました。どうもありがとうございました。 kdmsnrさんからの情報で、リフレクションによるRailsの自己解析の辺りの話が理解できました。文章修正しました。どうもありがとうございました。 おおやさんからのご指摘で、ideaに関する訳を修正しました。どうもありがとうございました。 匿名希望さんからのご指摘で、家でのedit.rhtmlのコードへの修正を反映しました。どうもありがとうございました。 2008.7.28 追記 Rolling with Ru

    shozzy
    shozzy 2005/08/29
    とても遅くなったがやってみた。もっとはやく触っておけばよかったorz すごすぎるぜ、これ。
  • 「現物主義」に基づいたソフトウェア開発手法

    This domain may be for sale!

    shozzy
    shozzy 2005/08/24
    納得。実感。しかし諸々の要因で実行に移せないことのほうが多い、、、
  • 遅いコードを貯蓄する - Backnumbers: Steps to Phantasien

    2005-08-21 遅いコードを貯蓄する 私は仕事柄, 書いたコードに実行速度を要求されることがある. 当はいつも要求されていて, たまにそれに応えるという方が正しいかもしれない... とにかく, 権力者(上司, 顧客, 同僚)から "遅いので速くしろ" というお言葉を日常的に頂く. とはいえできる範囲の高速化は既に済んでいる. 無い袖は振れない. まわりからの圧力を前にすると, 高速化の余地あるコードがある種の資産に思えてくる. 高速化の "余地" にも色々ある. 直せは確実に速くなる性質の良いもの. 複雑さ故に速くなる "かもしれない" ように見える 不確実性の高い不良債権, まだプロファイルをとっていない未公開株のストックオプション, など. そこで, 優良な財をなす投資の方法 ... つまり遅くてかつ簡単に高速化できるコードを書く方法を, いくつか提案しておく. アクセサ変数を

  • 開発者が楽しく仕事できる環境とは:近藤淳也の新ネットコミュニティ論 - CNET Japan

    立って会議をするだけでなく、はてな社内では他にも色々なことを試みています。その中でも、開発者が楽しく仕事ができるように、という観点でいくつか紹介してみたいと思います。 まずはペアプログラミング。これは、2人1組になってプログラムの開発を行うスタイルで、XP(エクストリームプログラミング)のプラクティスの一つとしても提唱されているものです。 2人でプログラムを開発するというのは、1人がプログラムを書き、もう一人が横からそれを見ている、という方法です。この方法を聞くと、1人がそれぞれの作業を行うよりも作業量が2分の1になってしまいそうな気がするものですが、実際はそれぞれが別々の作業をするよりも効率が上がる、という興味深い逆説的な現象が発生します。 ペアプログラミングの様子。こういうときはなぜかコーラが似合います。 なぜ2人1組でプログラミングをする方が1人ずつでやるよりも効率が上がるのでしょう

  • ThinkPadから組み込みソフトへ――IBM大和事業所の今

    ノートPC「ThinkPad」シリーズの開発拠点として名高い日アイ・ビー・エム(IBM)の大和事業所(神奈川県)。PC事業をレノボ・ジャパンに譲渡した今、家電メーカーの開発支援や企業向けステム開発・営業拠点としての存在感をアピールし始めた。ThinkPad開発で培った効率的なワークフローや技術力を、これからはPC以外の分野に生かしていく。 大和研究所は、IBMのアジア地域の研究開発拠点「APTO」(Asia Pacific Technical Operations)の1つで、今年で設立20周年。ThinkPad事業が目立っていたが、従来からソフトやハードの開発、コンサルティング営業なども手がけてきた。 今年に入り、相次いで施設や研究所を新設。企業のRFID導入支援を行う「RFIDソリューションセンター」を5月に、スーパーコンピュータの金融や創薬分野などへの応用を研究する「ディープコンピュ

    ThinkPadから組み込みソフトへ――IBM大和事業所の今
    shozzy
    shozzy 2005/08/01
    ビジュアルプログラミング:「デジタル家電UI開発ツール」のスクリーンショット
  • ITmedia エンタープライズ:特集:第3回 PHPを思うままに操れるようになる「MVC」と「Smarty」 (1/4)

    特集 2004/02/19 23:50:00 更新 全3回「WebプログラミングPHP言語入門」 特集:第3回 PHPを思うままに操れるようになる「MVC」と「Smarty」 (1/4) 同特集では、PHPについて簡単な解説を行った。最終回となる今回は、MVCモデルを理解して効率のよい開発手法を学ぶとともに、大規模サイトでも利用されるSmartyというテンプレートエンジンを紹介しよう。 はじめに 今回は、PHPの基礎知識から一歩前進して、PHPを使ったWebアプリケーションを開発する際に役立つ情報を解説する。 ここでの重要なキーワードは、“MVC”、“Smarty”、そして“デバッグ”の3つだ。 Webアプリケーションと脆弱性 同連載第2回でも軽く触れた“MVC”について解説する前に、Webアプリケーションと脆弱性について触れておきたい。 Webサイトや雑誌に掲載されている(CGIやPHP

  • 2005-06-30 - トーフサロン

    mixi日記を見ていて「ああそうそう」と共感してたもんで、ちょっと考えてみた。 あまりパターンパターンと言うのは好きじゃないんだけど、まあいいや。 中には必ずしもアンチパターンな状況に結びつくとは限らないものも、個人的な見解のものもあります。 おまけに自分でもちょくちょくやってしまっているものもあります。 ※追記 (2006/4/17): Objective-Cにおけるクラス命名パターンというのも書いてみました。こちらも合わせてどうぞ。 すべてはオブジェクト 概要 クラス名に "Object" をつける。 傾向 言われなくてもオブジェクトなんだからつける意味がない。 対策 ルートクラスやシステム特有の概念を表すクラス以外に "Object" をつけない。 器用貧乏 概要 クラス名に "Manager", "Controller" など管理や制御に関連する一般的な単語をつける。 傾向 どんな

    shozzy
    shozzy 2005/06/30
    ぐは。早速なおしてみた。
  • プログラミングの基礎テクニック

    はじめに こんにちは、結城浩です。 ここは、月刊誌『C MAGAZINE』で『プログラミングの基礎テクニック』という連載を書いていたときのサポートページです。 この連載では、 問題と解決の間のギャップを埋めるテクニックとして、 基的なアルゴリズム プログラミング言語のイディオム そのほかの技法 の中から、よく使われるものを選び、具体的なプログラム例と図を使って解説します。 プログラミング言語としてはJavaやCなどを用いています。 文法は理解しているけれど、経験が浅いという人を対象にして解説しますが、 できれば、熟練者にとっても新しい発見があるような内容も盛り込んでいます。 内容 第1回 (2003年12月号) : Buffering ―― まとめ買いのメリット デバイスへのアクセスに時間がかかる場合、 アクセス回数を減らすことによって高速化をはかることができます。 利用者とデバイスの間