No Programming, No Life

プログラミング関連の話題や雑記

プログラミング

Javaはつまらなくなったな

これは、Javaに限った話ではないが、最近の流れとして、プログラミング言語がどれもこれも似てきてしまっているように思う*1。 あまりに言語が似すぎてしまうと、何を選んでも大差ない、選ぶ基準は動かせるプラットフォームとか、動作速度とか、そういった部…

No Project Small Library Principle

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

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

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

中括弧省略問題

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

関数型言語は難しいことを簡単にしてくれるが、簡単なことを難しくしてくれる

言語設計者たちが考えること (Theory in practice)作者: Federico Biancuzzi,Shane Warden,伊藤真浩,頃末和義,佐藤嘉一,鈴木幸敏,村上雅章出版社/メーカー: オライリージャパン発売日: 2010/09/27メディア: 大型本購入: 9人 クリック: 368回…

時間帯重複チェックについてひとこと

はじめに お題「時間帯重複チェック」は昔、実際の業務で私が実装した経験をもとに作成したプログラミングお題です。当時はJavaでコードを記述していました。個人的にこのお題の面白いと思っているところとしては「内容が単純で仕様がすぐに理解でき、簡単に…

プログラミング言語の違いってなんですか?

はじめに 今日は来年度の4月から入社の新人さんの懇親会にお招きされたので参加してきました。その席で訊かれた質問が今回のタイトルにも書いたものなのですが、 「プログラミング言語の違いってなんですか?」 というものでした。質問してきた人は全くのプ…

私が今積んでいるプログラム本10冊+α(2010年12月5日付け)

はじめに 巷で本を紹介するエントリが流行っているので、私もやってみようと思う。ただ、私の場合、自分が買ったり借りてきたりしたはいいが読み切れておらず、積んでいる本を勝手に紹介するという趣旨で行きたいと思います。*1 それではスタート。 1冊目 プ…

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

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

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

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

セキュアなプログラミングのためのガイドライン

IPAがガイドラインを出しているので必読。>>IPA セキュア・プログラミング講座 (旧版) >>IPA セキュア・プログラミング講座 (新版) >>「セキュア・プログラミング講座2」 (PDF)

Inspire Me!

最近はServer error が楽しくて、タイトルのとおり触発されてる私です。いろんな人のコードを見て、「あっ、これなら自分も書けるかも」とか「もっといい書き方があるなぁ〜」とか「こんなお題があったらみんなどう書くんだろう?」とか、どんどん触発されて…

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

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

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

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

どう書く?orgに参加してみた

面白そうなので「Server error 」に参加してみた。 お題が出題されていて、それをある言語では「どう書くか」を投稿できるサイトのようです。 アルゴリズムやいろんな言語のことを知れる機会になるなと期待中。 ちなみにfumokmmのユーザページ >>Server erro…

Re:プログラミングは人生だ

それでも自分の命令したとおりに動作するポケコンを見ていると、自分にはなんでもできるようなそんな「万能感」を感じさせてくれました。それから四半世紀以上たちましたが、私がプログラミングから感じる「わくわく」は少しも減ることはありません。むしろ…

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

当記事はJavaでシングルトンを実現するならInitialize-On-Demand Holderイディオムを使うといいらしい | Think Twiceに移設しました。

プログラミング入門に最適な言語とは?

プログラミングを全く触ったことがなくて、 とりあえず基本文法あたりをさくっと自分のものにしてもらうための 手っ取り早い言語として、私はJavaScriptをオススメします。 私自身、HTML→JavaScript という流れで自然にJavaScriptを嗜むようになり、 その後…

C言語再入門その2

前回に引き続き今日もC言語のお勉強をしておりました。 そうそう、ちなみに前回書き忘れたんですが、読んでいる本は読本Cです。 読本C―C言語徹底攻略作者: 赤坂玲音出版社/メーカー: 毎日コミュニケーションズ発売日: 2003/02メディア: 単行本この商品を含む…

C言語再入門

来年度の新入社員の課題としてC言語でテトリスを作らせるという話が 出ていて、私のところにも教材を作ってよという話がきています。 話がくること自体はいいんですが、C言語が問題ですわ。 もともとJavaScriptやC#、それにJavaといった所謂 OOPな言語ばっか…

コピペの罠

罠 既存の悪いソースをコピーしてしまう。 ↓ 悪いソースコードが蔓延する。 改善策 既存のソースを吟味する。 ↓ 悪い部分をリファクタリング ↓ 再利用する。

Rubyが気になる

気になることには取り合えず手を出してみよう ということで、最近はRubyが気になっています。 Wikipediaに書いてあった名前の由来を読んでみて、素敵なネーミングセンスだと思いました。 名称のRubyは、プログラミング言語Perlが6月の誕生石であるPearl(真…

時間帯重複チェック

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

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

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

アスペクト指向

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