kyuuuuuuuuuuriのブログ

うぇぶエンジニアになりたくてなりたくて震えるもろきゅうの日記です

コードを書く際に大切なこと+α

インジェクションとは

SAStrutsで、
@Resourceをつけて、自動的にインスタンス生成してくれる機能のこと。

StringBuilderで、Stringの値を結合しよう!

String aaa = "a";
String bbb = "b"
String ccc = aaa + bbb;

はNGである。
なぜなら、この書き方は、メモリを使うから。
参照:http://www.javadrive.jp/start/stringbuilder/index1.html

こう書く

StringBuilder sb = new StringBuilder();
sb.append("abc");
sb.append("def");
sb.append("ghi");

Strint str = new String(sb);  // "abcdefghi"

コードの整形 in Eclipse

Ctrl + shift + f コード形式の整形
Ctrl + shift + o 使用していないimport文の削除
これによって、SVNの変化を少なくすることができる。

jspで、マジックナンバーは極力使わない。

というか使わない。javaの方で、定義して、jspで、呼び出す形にする。マジックナンバーの使用は、将来仕様が変わったときに、変更箇所を増やすことになるので、保守上とてもよくない。

jspのpartsの切り分け

jspをpartsごとに切り分けて、ページに埋め込む。jspのページが見にくくなることを防ぐ

アンダースコアのついた変数はフィールド変数を表す記号

String _hogehoge;
は、フィールド変数を表す記号で、昔の人が習慣的に使っていたらしい。
しかし、シーザーと相性が悪いので、SAStrutsを使うときはあまり使わないかも!

try-catch

tryで例外が発生したときに、catchを実行する
そのとき、e.printStackTrace();は、catalina.outに例外が出力されるので、使わないようにする。

ロガーの使い方

プレースホルダーを使って、変数を結合して出力する
LOGGER.debug("staffName={}", staffList.get(0).getStaffName());
ここでも、+ は使わない。
このプレースホルダーは、すべての変数に対応しているので、型を気にしなくても大丈夫!便利!
なお、プレースホルダーが使えるのは、slf4jだけなので、javaではこの書き方はできない。残念!

javascriptの定義

<script type="text/javascript" src="/js/shopDetail.js"></script>
<script type="text/javascript" src="/js/shopDetail.js?d=@FILE_TIMESTAMP@"></script>

javascriptを定義するときは、後者の方を書きましょう。
後者と前者で違うのは、d=@FILE_TIMESTAMP@の部分ですね( ´∀`)
これはなんのためにあるのかというと
将来、本番で動かしたとして、ユーザのブラウザはそのページを読み込むことになります。ブラウザにはキャッシュという機能があって、一度読み込んだjavascriptファイルをキャッシュしてしまいます。そして、2度目にそのjavascriptファイルを読む必要があるときは、このキャッシュが、読み込んだjavascriptをそのまま適用してくれます。
これは、動作がはやくなるということで、とても便利ですが、ひとつ厄介なのが
htmlでインポートしているjavascriptのファイル名と同じファイル名がキャッシュされていたら、キャッシュの方を使うということです。
これ、どこがだめなのかというと、開発側で、javascriptに変更を加えたとき、ユーザの方に反映されなくなっちゃいます!
そこで、@FILE_TIMESTAMP@←こいつが、プロジェクトをbuildする瞬間に、日付時間に応じて変わってくれます。これによって、インポートするファイル名が違ってくるので、変更を加えたjavascriptで対応してくれるということになりまふ(・∀・)

guavaを使用する

googleが提供しているjavaライブラリ
public List < Hoge > hogeList = new ArrayList < Hoge >();

public List < Hoge > hogeList = Lists.newArrayList();
できたりしちゃう(・∀・)
利点としては、保守がしやすい。書きやすい。
ほかにもいろいろ便利!らしい!

とりあえずこれだけでふ