タグ

プログラミングに関するtroterのブックマーク (18)

  • 防御的プログラミング(2): 柴田 芳樹 (Yoshiki Shibata)

    防御的プログラミングに関して、いくつか記事を書いています。 防御的プログラミング 防御的プログラミングとテスト駆動開発 防御的プログラミングしない後ろ向きの理由 防御的プログラミングしない後ろ向きの理由(2) 防御的プログラミングとカバレッジ 防御的にプログラミングするというのは、公開APIの仕様にその内容を反映するということです。つまり、不正なパラメータが渡された時に、どのように振る舞うか(どのような例外をスローするかとか)を仕様書に記述する訳です。しかし、開発組織として防御的プログラミングの重要性を認識していない場合には、次のようなことが起きています。 開発者の多くが言葉としての「防御的プログラミング」を聞いたこともない。 APIの仕様書には正常な場合の処理内容しか書かれておらず、不正なパラメータが渡された場合の振る舞いが何も記述されていない。 結果として、APIの実装コードでは不正パ

    防御的プログラミング(2): 柴田 芳樹 (Yoshiki Shibata)
    troter
    troter 2011/06/27
    実践しよう
  • 日本のSI業界でこそ、専門の技術者の必要性がもっと見直されるべきではないのか? - 達人プログラマーを目指して

    Twitterでフォローさせていただいている@chok12jaさんのつぶやき がきっかけで、外国人の視点から日のSI業界の問題について分析した面白い英文の記事を見つけました。 How the Japanese IT Industry Destroys Talent | Japan -- Business People Technology | www.japaninc.com [ThinkIT] 第2回:なぜ日IT業界ではスーパーSEを育てられないのか (1/4)(New 日語訳が見つかりました。) 2007年に書かれた記事なのでもう4年も前に書かれたものですが、日頃から私が感じてきた業界の問題点について鋭く批評を加えており、非常に共感する内容が書かれていました。ブログの主な読者の方々にとっても興味深い内容だと思いますので、ここで簡単に内容について紹介させていただきたいと思います

    日本のSI業界でこそ、専門の技術者の必要性がもっと見直されるべきではないのか? - 達人プログラマーを目指して
  • これはマネしたい!スーパーエンジニア達の習慣 | Act as Professional

    いままで勉強会に顔を出し、すばらしいエンジニアと数多く会うことができた。そして、スーパーエンジニアと共に仕事をすることもできたし、できている。そんなスーパーエンジニア達が持っていた習慣を僕の経験と視点からまとめてみる。 自分が使う道具を厳選して選んで手入れをしている エンジニアでいえばエディタやツールなど。皆が使っているIDEやエディタを何も考えずに使い始めたりしない。 厳選したエディタやツールを使って、手になじませるのである。手になじませるというのは、2つの意味がある。 1つは操作性に慣れること。呼吸をするように自然に、キーボードの上を駆け回る心地よいリズムを奏でるエディタを選ぶ。 2つめは、自分に合わせて拡張しているということ。プラグインのON/OFFだけではなく、オリジナルのショートカットを設定し、適切なハイライト、シンタックスのチェック、コーディングルールのチェック、様々な言語への

    これはマネしたい!スーパーエンジニア達の習慣 | Act as Professional
  • 最近興味深いと思ったWeb記事のリンク集 - give IT a try

    社内のメンバーに紹介しようと思ってためてきた各種Web記事へのリンクが大量に溜まっちゃいました。 ついでにここでも紹介しておきます。 一部の記事は会員登録が必要かもしれません。あしからず。。。 プログラミング/プログラム設計 プログラミングについてあまり知られていない7つのこと http://www.tommyjp.com/2010/08/blog-post_1710.html => どれも超重要。知らなかった人はこれを機に覚えておきましょう。 ソースコードの質 http://el.jibun.atmarkit.co.jp/genmaicha/2010/11/post-5c3e.html => 保守性、可読性、拡張性の重要性について。 技術的負債 http://d.hatena.ne.jp/asakichy/20101210/1291936604 => 技術的負債の原因や解決策について(そ

    最近興味深いと思ったWeb記事のリンク集 - give IT a try
  • matarillo.com: UIパターン

    UIパターン 追記 この記事の一部を加筆・修正したものを「開発者が知っておくべき、6つのUIアーキテクチャ・パターン」として@ITに転載しています。 MVVMを追加した上で、アプリケーションモデルとMVVMをプレゼンテーションモデルのバリエーションとして位置づけました。 MVPの2つのスタイルとして、監視コントローラとパッシブ・ビューを説明しました。 まえがき Martin Fowlerの"GUI Architectures"を訳したので公開しようと思ったのだが、FAQページに「EAA developmentとかDSLなんかは商業出版するんで例外ってことで」と書いてある。面倒だったので翻訳の公開はやめて、「自分の理解を書く」というスタイルにしようと思う。 Fowler氏が説明しているのは 「フォームとコントロール」、「モデルビューコントローラー (MVC)」、「プレゼンテーションモデル」、

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

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

    プログラミングと設計は本来切り離せないものなのでは - 達人プログラマーを目指して
  • 「Javaが使えます」という人の基準 - しんさんの出張所 はてなブログ編

    そういえば、「Javaがつかえます」、という基準はどこにあるだろうか。 そんな考えをまとめてみた。 おいらの場合特定のプロダクトを使いこなせるというよりは、標準APIの基礎が広く薄くわかっているというレベルかなぁ。 たとえば暗記していてクラス名やメソッド名などすらすらでてくる、というのは望ましいけど、そうではなく、JavadocやIDEの補完、ネット上の情報見てそれなりにやれるというレベルを期待したいところ。どうせ、開発始めれば細かい使い方はわかるようになるし。 かなーりあまい基準で「そんなへっぽこレベルでできるといわれても困る」とおこられそうだけど。 言語の文法は基抑えているというのが前提として以下のものが当てはまる人。 Java2Dがわかる Graphics/2Dをある程度触れる BufferedImageとVolatileImageの違いを理解している 日付処理がわかる Dateの

    「Javaが使えます」という人の基準 - しんさんの出張所 はてなブログ編
  • WEBプログラマー必見!WEB脆弱性基礎知識最速マスター - 燈明日記

    以下は、WEBプログラマー用のWEB脆弱性の基礎知識の一覧です。 WEBプログラマーの人はこれを読めばWEB脆弱性の基礎をマスターしてWEBプログラムを書くことができるようになっているかもです。 また、WEB脆弱性の簡易リファレンスとしても少し利用できるかもしれません。 WEBアプリケーションを開発するには、開発要件書やプログラム仕様書通りに開発すれば良いというわけにはいきません。 そう、WEB脆弱性を狙う悪意のユーザにも対処しないといけないのです。 今回、WEBアプリケーションを開発にあたってのWEB脆弱性を、以下の一覧にまとめてみました。 このまとめがWEBアプリケーション開発の参考になれば幸いです。 インジェクション クロスサイト・スクリプティング セッション・ハイジャック アクセス制御や認可制御の欠落 ディレクトリ・トラバーサル(Directory Traversal) CSRF(

    WEBプログラマー必見!WEB脆弱性基礎知識最速マスター - 燈明日記
  • jQueryはモナドだ - id:anatooのブログ

    この記事はjQuery is a Monad | Important Shockという記事の勝手訳です。 追記1: bonotakeさんが補足記事を書いてくれています → JQueryがモナドかどうかとか - たけをの日記@天竺から帰ってきたよ 追記2: hirataraさんが補足記事を書いてくれています → jQueryは当にモナドだった - 北海道苫小牧市出身のPGが書くブログ Haskellプログラマーは誰しもがモナドに関する各々のチュートリアルを書くと言われる。というのも、一度モナドの定義とその可能性を理解すれば、モナド全体を囲む神秘性に挑戦して打ち破るのが容易になるからだ。門外漢からすれば、モナドはHaskellを真に理解することを妨げる不可解な障壁だ。モナドはとても不適当な名前で呪われていて、一風変わった文法を持ち、一度に何もかもやってしまう様に見える。しかしながら、その動き

    jQueryはモナドだ - id:anatooのブログ
  • オープンソースソフトウェアの育て方

    製作著作 © 2005-2013 Karl Fogel, 高木正弘, Yoshinari Takaoka(a.k.a mumumu), under a CreativeCommons Attribution-ShareAlike (表示・継承) license (3.0, 2.1-jp)

  • 知らないと恥をかく プログラミングの常識 - ぐるぐる~

    新人プログラマが身につけるべき 知らないと恥をかくプログラミングの常識 作者: 日向俊二出版社/メーカー: アスキー・メディアワークス発売日: 2009/02/25メディア: 単行(ソフトカバー) クリック: 108回この商品を含むブログ (8件) を見る メールアドレスが載っていたから問題点をまとめて*1送ったら、意外と早く返信が来たものの・・・・ 私の考え方は223ページ以降に記したとおりです。 一部、ご指摘のことを踏まえて、将来の版でより適切に書き直すことを検討させていただきたいと思います。 書の出版が、他の「プログラミングの常識」に関連した書籍の内容の比較等も含めて、活発な議論のきっかけになれば幸いです。 亜阿相界 あぁそうかい。 なら議論のきっかけになるように、「一部」ではなかったことを示しておくことにするよ*2 *3。 223 ページの「私の考え」はどんなものかというと、

    知らないと恥をかく プログラミングの常識 - ぐるぐる~
  • マルチコア時代の高並列性IOアーキテクチャ Wavy - Blog by Sadayuki Furuhashi

    シングルスレッドではもう遅い。 以前にマルチコア時代の高速サーバーの実装で、「ネットワークIOはマルチスレッドで動かすが、その他の部分はシングルスレッドで動かす」というIOアーキテクチャの実装(mp::iothreads)を紹介しました。iothreadsはロジック部分をシングルスレッドで書けるため実装の手間を抑えることができ、ネットワークIOがボトルネックになるプログラムには特に適していると思われます。 しかし実際にiothreadsを使ってプログラムを書いてみると、非常に負荷が高い状況でシングルスレッドの部分の処理速度がボトルネックになってしまうことがありました。 そこでマルチコアCPUの性能を引き出すために、徹頭徹尾マルチスレッドで動かすIOアーキテクチャを実装してみました。 1つのスレッドが、ある時はepoll_wait()し、ある時はread(2)を行い、ある時はイベントを処理す

    マルチコア時代の高並列性IOアーキテクチャ Wavy - Blog by Sadayuki Furuhashi
  • プログラマーの誇りを見せ付けろ - レベルエンター山本大のブログ

    僕は今回の案件で、システムのレスポンスに徹底的にこだわってる。 それには理由がある。 それは、プログラマの誇りを見せたいからだ。 この案件は、既存機能をコピーして似た機能を作るというものだ。 既存機能は、Webシステムなのに1アクションで 1分や2分以上のレスポンスタイムはザラで、 悪いときには数分後にタイムアウトして、 さらに悪いときには、アプリケーション全体をロックしてしまっていた。 顧客はそれでも我慢して使っていてくれたそうだ。 今回の改修に際して、顧客がパフォーマンスを要求するのは当然だった。 それにしても酷いアリサマだとコードを見てみると 酷い。 確かにパフォーマンスは出ないのも無理はない。 いや、それどころか僕は、このSI業界の問題を感じざるを得なかった。 この機能はそこそこ難しく、業務的にも重要だ。 しかし、そのコードは、新人〜3年目ぐらいのプログラマが書いたとしか思えないコ

    プログラマーの誇りを見せ付けろ - レベルエンター山本大のブログ
  • カプセル化、情報隠蔽、データ隠蔽 - ぐるぐる~

    あちこちのサイトを見てると、間違った解釈をしてるのが多い。カプセル化なんて、情報隠蔽まで含んでるのが常識になりつつあるような。。。ここまで一般化してると情報隠蔽してるのがカプセル化というのが常識なのかも。 カプセル化・情報隠蔽・データ抽象化 - 今日の役に立たない一言 − Today’s Trifle! − カプセル化と情報隠蔽、データ隠蔽の違いがよくわからくなったので、手持ちので調べてみた。 基準 基準としては、 カプセル化、情報隠蔽、データ隠蔽の関係 カプセル化は隠蔽を含んでいるかどうか 対象はクラスのみか、そうでないか などなど。 一番目はそのまんま。二番目は、 // 隠蔽せずともカプセル化か class Hoge { int hoge; // なんかhogeを使うメソッド } // 隠蔽しなければカプセル化ではないか class Piyo { private int piyo;

    カプセル化、情報隠蔽、データ隠蔽 - ぐるぐる~
  • はてなブログ | 無料ブログを作成しよう

    早春とフィルム写真 カラーネガフィルムとはなんとも不思議なメディアで、その季節の陽光だとか湿度が写真に乗ってくるような気がする。 冬の写真は暗くかさついているし春の写真は霞がかって見える。夏の写真は湿度100%に近い空間を貫いてくる強い太陽光がフィルムの乳剤面に記録されてい…

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

    晴天の価値 2月中旬に出張で千葉へ行った。5日間の滞在中はずっと快晴で、気温は20℃に迫る春のような暖かさだった。仕事は朝から晩まで現場を走り回る過酷なもので、身体的にも精神的にも追い込まれた。毎朝、京葉線から見える美しい景色を眺めて正気を保っていた。太平洋へ燦々と…

    はてなブログ | 無料ブログを作成しよう
  • ユメのチカラ: 取締役退任。生涯一プログラマ宣言。

    6月30日臨時株主総会において、ミラクル・リナックス株式会社の新取締役として、児玉崇、伊東達雄を選任し、それに続く、取締役会議により、新しい代表取締役として児玉崇を選任した。佐藤武前代表取締役社長は、取締役会長へ、わたしは取締役を退任した。 ここにご報告する。 さて、ここからが題(?)である。取締役を退任したからといってミラクル・リナックスを辞めるわけではない。今後は経営者という責任ある立場を退き一技術者としてミラクル・リナックスに貢献していく。 2000年6月にミラクル・リナックスを創業以来8年にわたって取締役CTOとしてミラクル・リナックスとともに歩んできたが、取締役というよりも、技術屋としてミラクル・リナックスのV1.0の開発、OSDL (Open Source Development Lab -- The Linux FOundationの前身)への参画、そしてAsianuxプロ

  • JUnit 実践講座

    更新: 2003/11/05 公開: 2002/01/03石井 勝 はじめに ここでは, JUnit ついて僕が普段使っているテクニックやコーディングスタイルについてまとめていきたいと思います.読者としては,ある程度 JUnit を使いこなせる方を想定しています. 僕が仕事で JUnit を使い始めて 1 年半以上になります.つい先日まで行っていた開発プロジェクトでは,テストメソッドの数は 2000 程度,TestCase のクラス数は 2,3 百個という規模になりました.それぐらいの規模になれば,JUnit でコーディングする際に何らかの指針が必要になります.その開発プロジェクトでは,何度もプログラミングスタイルを変え,どういうスタイルが JUnit のコードをメンテナンスしやすいか,ということを考えてきました.そういったことをまず プログラミングスタイルガイド と シナリオベース

  • 1