No Programming, No Life

新しいNPNLです。http://d.hatena.ne.jp/fumokmm/ から引っ越してきました。

プログラミング

No Project Small Library Principle

ある日、業務コードを眺めてていたら、ふとXMLをダウンロードさせるWEBプログラムのソースに出くわした。 それだけだったら何も目新しいことはないだろう、十分に使い古されたフォーマットであるし、何も目にとまることなど無いはずであった。しかし、何かが…

プログラミングレベルメモ(Java編)

レベル1 基礎文法を理解している レベル2 オブジェクト指向を使わずにプログラムを組める レベル3 標準Javaライブラリを使ってプログラムを組める レベル4 自分でクラスを作れる レベル5 デザインパターンを理解できる レベル6 フレームワークのラッパーを作…

中括弧省略問題

例えばif文で、 「処理する行が1行のみであった際は、中括弧を省略できる」 if (条件) 処理; と、みなさんは最初習ったのではないだろうか。 しかしどうだろう、次のようにも考えられないだろうか。 「条件式のあとは式が一つのみ指定できます。 もし複数指…

Re:業務アプリの業務部分で、オブジェクト指向なんか使わないよね(その2)

前回の記事の続きです。こちらにて、id:kmaebashiさんにお返事をいただいたので、ちょっとだけ具体的な例を考えてみました。 あまりいいものがパッと思いつかなかったのですが一応書いておきます。id:kmaebashiさんの例と同じ、はてなダイアリーについて。 …

Re:業務アプリの業務部分で、オブジェクト指向なんか使わないよね

業務アプリの業務部分で、オブジェクト指向なんか使わないよね - プログラミング言語を作る日記 というエントリを読みましたが、ちょっとだけ突っ込みを入れてみたいと思う。 「使わない」ではなく「使えない」のでは? 実際に業務アプリの実装において、オ…

Re:アルゴリズム - 同じ文字列のn回繰り返しをlog n回で作る方法

404 Blog Not Found:アルゴリズム - 同じ文字列のn回繰り返しをlog n回で作る方法 で面白いアルゴリズムがあった。「ある文字列のn回繰り返しを作る関数」を高速化したいらしい。 Groovyとかだと 「"..." * n」 みたいな感じで実現できるやつですね。 ちょっ…

Groovyで処理とイテレーションの分離

Groovyだと、eachなどのイテレーションメソッドが豊富なので処理とイテレーションの分離が楽にできる。 お題 例えば、 1〜10までの数値が入ったリストから繰り返し数値を取得し 出力するプログラムを完成させよ。ただし、数値が5の時は表示しないこと。 なん…

シングルトンにInitialize-On-Demand Holder

忘れないようにメモ。 Initialize-On-Demand Holder Javaでシングルトンを実現しようとする際のクラス生成イディオム。 「いにしゃりぜーしょんおんでまんどほるだー」と読む、多分。 double-checked locking問題をすっぱりと解決したもので、スレッドセーフ…

時間帯重複チェック

今仕事で作っている画面にインプットフィールドで入力した時間帯が重複していないかをチェックするという仕様があります。時間帯の入力は、時と分をそれぞれ分けて開始、終了の項目を指定するので、1つの時間帯を4つの数値で表すことになります。 例) 12時15…

for文内のif文のネストをcontinueで回避

C系の文法の言語で、for文の内部の処理でif文が ずらずらとネストされているケースを回避する方法として if文の否定条件だったらcontinueするという方法がある。 例)ネストしまくりのif文 for (int i = 0; i これを以下のように修正します。 例)ネストしま…

アスペクト指向

こんな本を買ってみました。オブジェクト指向の次はこれみたいですね。アスペクト指向。 今の時点で私が調べたことまでで簡単に説明すると、 アスペクトとはプログラムが実行される「時」を切り取り 断片化して、プログラミングを行えること。たとえば、特定…