migimatsu 2012-08-15 08:58:00

[Java] ウンコーディング規約 このエントリーをはてなブックマークに追加

投稿者からのアピールポイント

どこぞの会社のウンコなコーディング規約

「コレクションクラスを使う場合には初期容量を指定しなければならない」 orz
そういう「研究されたデフォルト値」を無視して、規約でコードのウンコ化を進めるとは何事か

// 書いてはいけない書き方
Vector<String> s = new Vectorr<String>();

// 正しい書き方
Vector<String> t = new Vectorr<String>(200); 

コメント(9)

#3 InternalServerE 2012-08-15 12:57:10  

貴方が書いたあらゆるコードに対して、「研究されたデフォルト値」は常に最適解を与えてくれる、とか思い込んでいませんかね。 考えすぎかもしれないけど、そこだけちょっと心配。

初期値を与えないコレクション型が、ちょっとした弾みでどれだけ非効率なメモリの食い方をするかは常日頃から意識しておきたいところ。 まぁ、「常に初期値を与えよ」ってのも確かに極論過ぎの感はありますがね。。

#4 math_neko 2012-08-15 14:50:46  

別に規約で初期容量を指定しろ、っていうのは構わないと思うが何でそれをソースコードに埋め込んだのか理解に苦しむ

コーディング規約のドキュメント作れば済む話やん… orz

#5 InternalServerE 2012-08-15 22:39:43  

推測だけど、投稿者のコードはソースに埋めてあったんじゃなく、規約ドキュメントから抜粋したのではないかと。

#6 customX_156 2012-08-16 19:07:28  

「研究されたデフォルト値」なんて考えのPGがいるような現場でなら極めて正当性の高いコーディング規約だと思います。

#7 migimatsu 2012-08-17 05:43:45  

あら、解説がいりそうね...
実際問題「よほど特殊な使い方でなければ一般アプリでは十分実用的な値」にデフォルトはなっているわけで。
もし、そうでない使い方をしたいなら、サブクラスを導出して「ビッグデータクラスw」を明示するか、万一やるにしても特段の定義済み定数にて初期子を記述すべきです。
こんな規約は「スーパー馬鹿プログラマを単なる馬鹿プログラマに持ち上げる」効果はあっても、「普通のプログラマ」に「可読性とメンテナンス性の低下」を強制するだけのものと考えます。

#8 math_neko 2012-08-17 05:50:34  

メモリを効率よく使うことが必ずしも最適解ではないしね。ご家庭の非力なマシンで動くアプリケーションを開発するのならまだしも、企業が使う高スペックマシンの上で動くようなプログラムを開発するんなら、せっかくの「研究されたデフォルト容量」を邪険にするようなコーディング規約を推し進めるのは確かにいかがなものかと思います。

#9 KeithYokoma 2012-08-17 16:21:08  

この規約、やるならやるでCheckStyleとかで自動チェックしたい。


このウンコードに臭った人は、こちらのウンコードにも臭ってます

[Java] フルHD推奨。

このエントリーをはてなブックマークに追加

画面の左側がわりと無駄な気がします。

public int hoge(){
    int result = 0;
...

鑑賞する »

[その他] HOW TO ABC..

このエントリーをはてなブックマークに追加

実際にあった某システムの超重要なマスター...

create table item_master (
 A varchar(2...

鑑賞する »

[Java] スベテカンスウ

このエントリーをはてなブックマークに追加

何でもやってくれる関数って、便利ですよね...

class Processor
{
	public bool process...

鑑賞する »