Checkstyleプラグイン設定 - 設定はこうすれば楽なんじゃねーの?その1 - setterメソッドにフィールドを隠してるの警告はいらないと思う。
2008.11.17 |Category …Eclipse
ignore ConstructorParameter をオン
ignore Setter をオン
そもそもそのクラスメンバに値を入れ込みたいのにあえて別変数を指定する必要はないよね。
むしろsetterに限っては値を編集しないで設定する場合に限りだが、パラメタ名はメンバ変数名と同一にするべきだと思う。
頭悪い人が使うと引数名に"p"をつけるとかやってEclipseの補完機能で意味のわからない変数名が出てきて実装者をイラっとさせるですよね。<実際、このCheckstyleのWarning回避の為に全ての引数の変数名にp、もしくはvをつける、という酷いルールを見たことがあります。
最低なのは全ての引数がarg1,arg2・・・・(バグだらけで大変そうでした。)
ignoreAbstractMethodsはどうなんだろ?私はオフでいいとおもいますが・・・
メンバ変数も同時にいじりたいメソッドを抽象メソッドで定義する必要があるかどうかは知らないしもしあったとしても値をセットする部分はfinalメソッドかなんかに書いてその中身で抽象メソッドを呼んであげた方が安全かも。
Checkstyleプラグイン
2008.11.17 |Category …Eclipse
さて、Javaで開発業務を行うにおいて事実上標準になっているのがオープンソースのJava総合開発環境Eclipse
ですな。SunやBolandもIDEを出してるようですが、私が仕事するにおいてはほぼ全部Eclipseで開発してました。
(WSADを使ってたときもありましたがまぁ、Eclipseファミリ(捉え方は逆かもしれんが)ということで・・・)
さて、Eclipseを使う上で便利なことのひとつにプラグインが豊富という事があると思います。
その中でも今の私にはずせないもののひとつにCheckstyleプラグインなるものがあります。
(本当はFindbugsの方が重要度が高いんですがたまたま今いじってたのがCheckstyleだった^^;)
CheckstyleはEclipseで動く単なるコーディングチェックツールです。
単なるコーディングチェックツールなんですが、何気にコーディングチェックってのは厳密に行うのは難しく、小規模のプロジェクトでさえ気がつくともう当人以外見られたものではないソースコードが山ほどできてしまうもので、それを回避する術はコードレビューをマメに行うぐらいしかないのかと思っています。(可読性について気にしない人は自己チェックができないので他人の目を介する必要があります。)
実装者がコードを書いているときにリアルタイムにコードチェックができるのはすばらしいですね。
経験上、可読性の低いコードがバグってるときは改修により更にバグを生む傾向があると思われ、できるのであれば初回製造時点でコーディングを型にはめるべきだと思います。
欲を言えば変数やメンバの名前の意味まで考えてくれるといいんですけどねー。
・プロジェクトのコーディングルールで「値チェックメソッドは「validate~」とする。
・変数名(クラス名、メソッド名含む)は英語とする。
・キャメルケースに従うこと
とか開発開始前に周知してるのにも関わらずコードレビューで堂々と「kokyaku_jouhou_check」メソッドを披露してくれるケースもある程度防げるのかと。(アンダースコアはCheckstyleで拾えるか。)
Windows再インストール
2008.11.17 |Category …未選択
試しにブログでもやってみようかと思ってブログスペースを借りてみたが作って1件書いてみたのが4月。
早速の半年にも及ぶ放置プレイ。われながらひどい。わはは。
その間、忙しかったのもあるがOSを再インストールしたのもあり、URLがすっ飛んでた上、ブログを作成したことすら忘れて今に至る。
今自宅ではラップトップのPCにWindowsXPを乗せていたのだが購入が3年前でその当時のプレインストールを未だに使っている上に仕事柄自宅でもいろいろなツールを入れては消して・・・を繰り返していたらもはやどのツールが必要化の精査もできなくなった(めんどくさくて)。
まぁ自宅のマシンにいろいろ入れすぎ、というだけなのだが。というわけで現在WindowsXPをまたインストールしました。ディスクもシステムディスクとデータディスクとで分けたので今後はOSの再インストールがしやすくなったと思っています。(購入時点ではディスク丸々Cドライブだった・・・データのバックアップもめんどくさくてシステムの入れ替えに躊躇していた最大の原因でもあります。ユーザ領域が確保できないようなディスクを積んでるわけでもないのだからある程度パーティション分けしたものを出荷してほしいものですな。>某メーカさん)
今回はWindowsXPのSP1(日本語版)をクリーンインストールし、SP3までアップグレードする事にしました。久々のクリーンPCということで快適に使っています。やっぱりたまにはきれいにしないといけないなぁ、と、仕事ではもはやきれいにしようもないファイルサーバ件開発サーバのことを考えると頭が痛い。
PostgreSQL 8.3をインストールしてみる
2008.04.13 |Category …PostgreSQL
その時はPostgreSQL8.1だった。確か。
PostgreSQLのサイトに行き、バージョンを確認してみる。
すると、8.3が出てるので最新版ゲット。
ZIPなので解凍する。内容は以下の通り。
2008/03/17 04:31 24,461,312 postgresql-8.3-int.msi
2008/03/17 04:31 160,768 postgresql-8.3.msi
2008/03/17 04:31 869 README.txt
2008/03/17 04:31 192 SETUP.bat
2008/03/17 04:31 1,164 UPGRADE.bat
2008/03/17 04:31 2,682,880 vcredist_x86.exe
SETUPとUPGRADEが別に用意されてるのね。違いは、と。
UPGRADEにはインストーラオプションにREINSTALLMODE=vamus REINSTALL=ALL /qr
がついている事、ですか。詳しい事は知らんのでコメントを転記。
REM Parameters described:
REM /i postgresql-8.3-int.msi - pick MSI file to install. All properties
REM will be read from existing installation.
REM REINSTALLMODE=vamus - reinstall all files, regardless of version.
REM This makes sure documentation and other
REM non-versioned files are updated.
REM REINSTALL=ALL - Reinstall all features that were previously
REM installed with the new version.
では、新規インストールなのでSETUPを起動する。
MSVC++2005ランタイムがインストールされたって。DOS窓がそう言ってる。
環境的に問題はないのか?あっても問題はないけど。どうせ個人端末さ。
しばらく経ってインストーラ本体が起動。
「インストーラの言語を選べ」->当然にぽんご。
すると日本語のダイアログが表示された。
インストールしたければ全部のウインドウズプログラムを閉じれ、といわれるがもちろん無視。
「次へ」で「どうぞ、インストールの手順を続ける前にインフォメーションを隅々まで完全に読んでください」
と言われるが当然無視。
「次へ」でインストールオプションが聞かれるのでとりあえずフルインストール(おい)
サービスユーザを聞かれる。
ユーザにお決まりのpostgres,パスワードは適当に決める。
そんなユーザいない、って言われたけどインストーラに作ってもらう。
パスワードが弱いって言われたけどそんなこと知った事じゃない。続行。
その後、DBの初期化が行われる。
全デフォルトで構成し、次へ。「クライアントエンコード」が追加されてるっぽいけど次へ。
手続き言語もデフォルト。
追加モジュールもデフォルト。
で、インストール実行!
続々とインストーラからファイルがコピーされていき、initdbをしてくれ、サービスをインストールし
ご丁寧にサービスを起動までしてくれて終了。
ここまではほぼ8.1と同じ。
その後、インストール完了画面で「スタックビルダを使って終了する」っていうオプション(デフォルト)
がついたみたいだ。前はなかった気がする。たぶん。
そのスタックビルダを起動してみる。
ローカルDBを選択し、次へ。
ドライバとかの拡張モジュールのインストールみたいですね。
いらないのでキャンセル。
で、これでインストールは完了、か。
psqlを立ち上げて接続確認。
C:\Program Files\PostgreSQL\8.3\bin>psql -U postgres -l
List of databases
Name | Owner | Encoding
-----------+----------+----------
postgres | postgres | UTF8
template0 | postgres | UTF8
template1 | postgres | UTF8
(3 rows)
普通にできます。postgresってデータベースが気になるが・・・