てきとうなメモ

本の感想とか技術メモとか

Java

Java needs an overhaul

This is the sort of overhaul I'm talking about. Adding closures or not in the next version of Java is just a new coat of paint on a burning barn. Clean out the damn libs and make the language cleaner and leaner again is what's needed. I'd …

java.sql.Types.VARCHAR

commons-dbutilsのソースコードを読んでいたのだが,変なコードを見つけた. protected void fillStatement(PreparedStatement stmt, Object[] params) throws SQLException { if (params == null) { return; } for (int i = 0; i < params.length; i++) { i…

Java7にpropertyが

Google DriveC#-likeなpropertyがjavaに導入されるかもしれない.たしかに無駄にgetter/setterが多くて読みにくい.IDEが自動生成してくれるというのが逆に無意味にgetter/setterを増やしている気がする.

リファクタリング入門 第14章

メソッドの委譲先のクラスをクライアントが使っているとクラスの関係が複雑になってコードを変更しにくくなるのでサーバクラスだけ使うのが委譲の隠蔽. Hide Delegate逆に委譲の隠蔽をしすぎるとメソッドが増えて,何ができてどのメソッドを使えばいいのか…

リファクタリング入門 第15章

継承の分割.refactoring.comのカタログにはのっていなかった.継承でガチガチにつながっている部分を委譲によってゆるやかな結合にする.やっと読み終わった.本の内容は,ステップバイステップでリファクタリングをおこなうというポリシーの下で,とても分…

リファクタリング入門 第13章

Replace Inheritance with Delegation 継承を委譲に.本の例とは関係ないけどState/Strategyパターンは継承と委譲をバランスよく使っている気がする.あと,refactoring.comの例がちょっと難しい.StackはVectorかと言われるとそうとは限らないので委譲の方…

リファクタリング入門 第11章

Replace Constructor with Factory Method コンストラクタをFactory Methodに置き換える.最初のFactory Method Patternを見たときはなぜわざわざFactory Methodを使うのかよくわからなかったのだが,こういう例だとわかりやすい.

リファクタリング入門 第12章

Duplicate Observed Data モデルとビューがごっちゃになっているのを分離する.当たり前と言えば当たり前な話.

リファクタリング入門 第10章

Replace Error Code with Exception 10章はエラーコードを例外にしようというもの.どこで例外を使うべきでどこでエラーコード(nullとかfalseとか)を使うべきかというのはやっぱり難しい.あと,何を例外にするかも重要.例外を細かく作ると原因が分かりやす…

リファクタリング第8,9章

Replace Type Code with Subclasses Replace Type Code with State/Strategy 7章と同じくタイプコードの置き換えについて.タイプコードをクラスにするよりかこちらの方がしっくりくる.サブクラスにするかState/Strategyパターンにするかはタイプコードが変…

リファクタリング入門 第7章

Replace Type Code with Class7章はタイプコードをクラスに置き換えるというリファクタリング.基本型を使ったタイプコードは 異常な値になるかもしれない 他のタイプコードと混同するかもしれない ので使うべきではないとしている.でも,あんまり異常な値…

GNUのパッケージはなぜorg.gnu.xxxでないのか

Why just the gnu package name?リファクタリング入門でちょっと話が出ていたのでリンク先を読んでみた.確かにjavaのパッケージ名は長い.jp.coとかでもそこはどうせ衝突してしまうので,組織名.カテゴリ名.xxxぐらいがちょうどいいんではないかと.

リファクタリング入門 第5,6章

第5章はメソッドの抽出.当たり前すぎるといえばそうなんだが.Extract Method第6章はクラスの抽出.これもまあ当たり前なんだがちょっと難しい.抽出するクラスがgetterやsetterしかもっていないと,その部分がまとまったという以上の利点がない.そのため…

リファクタリング入門 第3,4章

第3章はコメントに書くぐらいならassertionを使えというもの.assertion使ったことないなあ. Introduce Assertion 第4章はnullチェックが多くて読みにくかったり,抜け漏れがありそうだったらNullオブジェクトを使おうという物. http://www.refactoring.co…

リファクタリング入門 第2章

第2章はフラグの削除. 単にフラグを使わないのではなく,breakやcontinueやreturnでいけそうなところはそれを使おうということみたい. フラグ変数を使うのならflagなんてそのまんまでわかりにくい変数名をつけてはいけない. returnについてだけども,最後…

リファクタリング入門 第1章

第1章はマジックナンバーを定数に置き換えるというもの.定数を使ってコードを読みやすく変更しやすくする.あと,enumとかタイプコードとか.Javaのenumは型チェックをしっかりしてくれるので便利.Cだとint型が入ってしまう.タイプコードはマジックナンバ…

結城先生のリファクタリング本を買った

Java言語で学ぶリファクタリング入門作者: 結城浩出版社/メーカー: ソフトバンク クリエイティブ発売日: 2007/01/27メディア: 大型本購入: 12人 クリック: 189回この商品を含むブログ (109件) を見るちょっとずつ読んで行こうと思う.とりあえず,第0章は「…

最も長いJavaのメソッド名

IterativeDeepeningAlphaBetaSearchUsingKillerMoveOrderingAndTranpositionTableSimpleMaterialAndPositionalEvaluationChooseRandomlyBetweenBestMovesStrategy長っ.さすがJavaである.チェスのソフトのStrategyクラスのコンストラクタらしい.

Java と Closure

http://gafter.blogspot.com/2006/08/closures-for-java.htmlJDK 7 (Dolphin)からClosureを言語として実装するように提案しているようだ.いままでJavaでClosureを使いたい場合は無名のクラスを用いていたが,コードが冗長になるという点と外部の変数はfinal…