id:aroundthedistance に召還されたぜ。 http://d.hatena.ne.jp/aroundthedistance/20100727/1280227851 …その昔なー。Seasar Conferenceで「あなたのコードからnewとifが消えます、魔法のDI」みたいなセッションをした。今思い出して「釣りすぎたぜサーセン」という気分になったことをまず懺悔しておく。 この doBusinessん中のif〜else ifをなんとかしたい。 …(中略)… ちょっとすっきりした。けどまだifが残ってるよね。 ポリモーフィズムの例をもうちっと実用的に書いてみた。 - 都元ダイスケ IT-PRESS どんだけif文悪者なんだ。そこまで嫌ならば、一度もif文を書かずにコードを書けばいい。無理だがなw と自嘲。 if文に限らず、問題になるのは濫用なのだ。"ある知識"がトッ散らかって
プログラミング言語は人が作ったもの。人は誤るもの。なので完璧なプログラミング言語は存在しない。 「人は誤るもの、しかし誤りに固執するのは馬鹿の所業だ。」(キケロ) プログラミング言語も、間違った設計をして、馬鹿でない人がそれを修正することの繰り返しで発展してきた。 というわけで言語間での設計判断の食い違いとか失敗した設計とかを収集中。一部抜粋して講義資料に入れるつもりなので他の事例をご存知でしたらぜひ情報をいただけるとありがたいです。 if(x = 0) C言語では代入が式であるためif(x == 0)のつもりでif(x = 0)と書いてしまい、常に偽になってしまう。 x = 0の値はint、条件式はboolでないといけないので型エラーだよ派: Java x = 0は式ではないので条件式に入れたら構文エラーだよ派: Python 条件式にx = 0をいれたらx == 0と解釈するよ派: H
JavaよりもC#が優れている点は、Deledateという機能があるおかげでイベント通知のロジックが書きやすい点にある。 Javaでは、Multicastというデザイパターンでカバーする必要がある。 平鍋さんの記事が分かりやすいのでメモ。 【元ネタ】 - デザインパターンによる進化的設計 Jude開発記 - Java プログラマのためのデザインパターン入門 [Effective C#] 項目21 デリゲートを使用してコールバックを実現する | まさくらのブログ デザインパターンにあるObserverパターンは、デスクトップアプリを作る時に非常に重要なパターン。 GUI上のイベントをキャッチして、次のイベントを発火するロジックに使うから。 しかし、- デザインパターンによる進化的設計に書いてあるように、Push型のObserverパターンでもPull型のObserverパターンであっても、情
最近転職活動の一つとして何か形になるものを作ろうとツイッター関係のアプリを作成しているのですが、その際に並行処理化したい部分が出てきてあれこれと考えたので、その考えを整理する為にもまとめを書きたいと思います。コード例は全てJavaを使用していますが最後に他言語の機能も紹介していますし、考え方自体は他の言語にも適用できるかと思います。 また、文章の書き方が定まっていないので途中で文章が変わったりと読みにくかったらすみません。一応、週一で更新することを先週辺りから始めましたので、その内安定すると思いますからそれまで我慢してお待ちくださいw 書かなきゃいけない記事の宿題や自分の知識もある程度溜まってきましたしね^^; 【追記】 まとめ→並行処理の助けとなる考えへ変更 シンプル=とにかくメソッドを細かくわけて短いものにする的な意味にとれるという指摘を受けましたので補足を追記 並列処理と並行処理の違
Webプログラミングは何故オブジェクト指向でない?~WicketはWebプログラミングにオブジェクト指向を取り戻す JavaでWebアプリを10年書いて思ったこと。 Webプログラミングは全然オブジェクト指向でない。 Sevlet+JSP主体のプログラミングスタイルは、リクエストとレスポンスへPrimitiveな値をどうやって渡すか、という手続き型の発想でしか書いていない。 従来のWebプログラミングスタイルの問題点について書いてみる。 以下ラフなメモ書き。 【参考リンク】 Wicketって? ウェブ開発をもう一歩前に Wicketで始めるオブジェクト指向ウェブ開発:第1回 Hello, Wicket|gihyo.jp … 技術評論社 【コラム】イマドキのIDE事情 (39) Wicket、Grails、Click - IDEでみる軽量Javaフレームワーク | エンタープライズ | マイ
● [Scala] RubyからScalaに乗り換えた15くらいの理由 [注意] この文章を読むと、既存のRubyコードをScalaでrewriteしたくなる、 Rubyコードで型チェックをやるのが鬱になる、Ruby案件でやる気が出なくなる、 などの幻覚や異常行動が報告されています。 現在関わっているプロジェクトや家族のことを常に意識し、 気を強く持って冷静に読むとよいでしょう。 「Scalaプログラミング入門」を読みはじめて、いきなり大きく頷いてしまった。 "コーディング時間の半分をテスト作成に費やさなければならなかった"(p.3) "Railsによって得られた生産性の向上は、テスト作成の作業に失われてしまいました"(p.3) まさにここ数年私が抱いてた漠然としたストレスの正体が、的確に文章となっていたからだ。そしてほどなく、「あ、この機能がRubyに欲しかった!」という驚きと共に Sc
Message-Driven Beanとは 前回、JMSをJavaアプリケーションに組み込んで非同期通信を説明しました。ただし、業務ではMessage-Driven Bean(MDB)を使用する方が多いため、今回はMDBを使った非同期通信の仕方を説明します。 あらかじめ知っておくべきこと 前提知識 「今からでも遅くない JMSを学ぼう!」ではJMSを通じて非同期通信を学ぶことを目的としていますが、ドメインはPTPを使用しているため、Pub/Subの知識は必要ありません。PTPについてご存じない方、JMSの知識のない方は前編を読んだ後にその後編の当記事を読まれることをお薦めします。 Webアプリケーションの基礎的な知識が必要です。JSPやServlet、あるいはStrutsなどのWebフレームワークを使用した経験のある方はそのまま読むことが可能です。知識がない方は筆者の「GlassFishか
IOException の catch に何を書いていいか分かりません><! はじめに 順番が前後しますが、今回は Java の特徴のひとつである例外機構についてです。 今回の範囲 223 ページ 〜 250 ページ 前回はこちら Effective Java 読書会 12 日目 「スレッド・セーフってなによ!!」 - IT戦記 Java の例外 throw 可能なオブジェクト Throwable インタフェースを実装したもの Exception を継承しない Throwable は基本的に使わない チェック例外 メソッドの実装者が「呼び出し元が回復可能」だと考えている例外 ちゃんと「なぜ、例外だったのか」理由が提供されるべき 呼び出し元は try catch で囲むか throws 宣言を書く必要がある Exception を継承していて RuntimeException を継承していな
“全部入り”のEclipseで学ぶ統合開発環境の常識:企業システムの常識をJBossで身につける(2)(1/4 ページ) 企業向けアプリケーションのさまざまな“常識”をJavaのオープンソース・フレームワーク群である「JBoss」から学んでいきましょう。企業システムを構築するうえでの基礎となる知識をリファレンス感覚で説明していきます。初心者から中堅、ベテランまで大歓迎! 連載第1回の「企業向けアプリの常識を学び、JBossの環境構築」では、企業向けアプリケーションに必要な要素としてフレームワークやアプリケーションサーバ、そしてその一例として、JBossプロジェクトの概要を説明しました。 今回は、企業向けアプリケーションを構築する際に必要な要素として「統合開発環境」を説明し、実際にサンプルアプリケーションを作成します。企業向けアプリケーションの構築における、統合開発環境の機能やその重要性を学
あれは私がまだ大学助手をしていたころだから3年ほど前のことだと思う。 私の勤めていた大学(情報系)では「プログラミング研究会」みたいなサークル活動が行われていて プログラミングの講義を受け持っていた私はそのサークルにちょくちょく顔を見せるようになっていた。 そこにはとびっきりかわいい女子学生が一人いたのだけれど、その子はゲームが大好きで 「自分でもゲームが作りたい」と一念発起してゲームコンテストに作品を出品することになった。 しかし、彼女はプログラミングの講義(Java)を1年くらい受けているものの、 本格的なモノを作った経験がなく、ひとりでは行き詰まりをみせているようだった。 彼女はひとりでいることが多く、パソコンに向かって黙々とプログラムを書いているのをよく見かけた。 それを気にかけていた私はたまに彼女をランチに誘うようになり、彼女の方もしだいに私に打ち解けてきた。 私たちはだんだんと
Eclipse 3.5 の新機能について俺が便利だというものをまとめたよ!PDE の話は割りとよくわからなかったよ!w http://update.eclipse.org/downloads/drops/S-3.5M7-200904302300/eclipse-news-M7.html Switch editors and multi-page editors Multiplu Editor の中のタブの移動が Alt+PageDown, Alt+PageUp になった。 Plug-in Spy and menus PDE の Plug-in Spy (Alt+Shift+F1)は、view の上で実行すると、それがどのプラグインなのか見れた。新しく導入された Alt + Shift + F2 は、押した"後" に、調べたい箇所を選択すると、それがどのプラグインなのか見えるようになる ht
はじめに 第7回「Eclipse 3.4を使ったデータベース操作」までで、Eclipseのインストールと設定、Eclipseを用いてアプリケーションを開発・デバッグしテストするまでの一般的な流れ、バージョン管理システムと連係する機能、データベースを操作する機能などを説明しました。 今回は、Javaプログラムの作成と編集を効率化するコード生成機能とリファクタリング機能を紹介します。 コード生成機能は、クラスの作成時などにプログラムの一部を自動生成してくれる機能です。これに対して、リファクタリング機能は、作成済みのプログラムを編集するときに関連する編集を自動化してくれる機能です。よって、この2機能はEclipseではメニューが異なり、関連書籍などでは別々に説明している場合が多いようです。しかし、実際のプログラム開発では、プログラムの生成と編集は連続した作業であり、作業の流れに例えて理解したほう
JRuby - Java powered Ruby implementation JRubyの開発者であるCharles Nutter氏が自身のブログにおいてHow JRuby Makes Ruby Fastのタイトルのもと、JRubyのパフォーマンス計測結果を報告している。Charles Nutter氏は竹内関数の一種であるTak関数を使ったベンチマークを例に取り上げ、インタプリタモードから最適化が実施されたコンパイルモードの動作までをまとめている。紹介されているデータをまとめると次のとおり。 実行環境 実行時間[s] Ruby 1.8.6p114 18.22 Ruby 1.9.1p0 3.61 JRuby 1.3.0-dev, interpreted, client VM 26.81 JRuby 1.3.0-dev, interpreted, server VM 8.00 JRuby
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く