will and way

ただの自分用メモを人に伝える形式で書くことでわかりやすくまとめてるはずのブログ

2014-01-01から1年間の記事一覧

レガシーコード改善ガイド21章〜24章

21.同じコードをいたるところで変更しています。 目的:共通化へのノウハウを学ぶ (安心して重複を取り除く為にはテストが必要。今回もテストがある前提で進めている) 結論:同じコードが書いてあるところは親クラスに抽出、同じメソッドが並んでいるとこ…

レガシーコード改善ガイド16章〜20章

16 章変更できるほど十分に私はコードを理解していません。 目的:コードを理解する。 結論:スケッチやメモなどのローテクを使う。それかコードをいじるメモを取る・スケッチを描く 丸や線でクラスの関連性や影響などを書き出すとよい。案外精神状態をよく…

マルチスレッドプログラミングの基本

最近、並行処理ではまった所をメモ CountDownLatchの使い方が曖昧だったのでそこも兼ねて書いた AbstractCounter package jp.co.matsuokah.counter; import java.util.concurrent.atomic.AtomicInteger; /** * */ public abstract class AbstractCounter imp…

cocosで方向を取るときのtips

2点間の方向を取るときはこんな感じ※math.hを読み込む必要があります。 /* * 現在地と目的地からDirectionを求めます。 */ int HogeView::calcDirection(cocos2d::Point from, cocos2d::Point dist) { auto x = dist.x - from.x; auto y = dist.y - from.y; …

レガシーコード改善ガイド11章〜15章

11.変更をする必要がありますがどのメソッドをテストすればよいでしょうか。 目的:変更の際に影響範囲を調べるテクニックを学ぶ影響スケッチ →変更する変数と変更に影響が出るメソッドを楕円でつないだもの。 →エンドポイントをテストすれば良い。とりあえ…

レガシーコード改善ガイド6章〜10章

今回からケーススタディ6. 時間がないのに変更しなければなりません 冒頭: テストを書かずとも変更を加えるにはどうすべきか。 既存の振る舞いを変えずに変更するTipsを紹介する。スプラウトメソッド: 既存のコードに新たな仕様が追加 →必要箇所へ、ロジッ…

レガシーコード改善ガイド1〜5

1、ソフトウェアの変更 変更は4種類 機能追加 バグ改修 設計改善 リソース利用の最適化機能追加と改善は紙一重だが現場では分けなければならないケースが多い。この議論は現場で様々 ソフトウェアで一番重要なのは振る舞い。 コードの変更で振る舞いが変わ…

chefのテスト環境を作る。

knife-soloが使えるホストを用意。OSX 10.8vagrant1.3.5Virtual boxは4.2.xイメージ作成vagrant box add name image-linkイメージはここから。http://www.vagrantbox.esサンドボックスプラグインをインストール。トランザクション的な感じ。なお、複数のスナ…

Postfixメモ

メールを同時に20件以上送った時に 遅延したので調べました。送信遅延の確認方法(ログのみかた) Feb 13 19:48:45 localhost postfix/smtp[23636]: 12888230B4: to=<fuga@hoge.com>, relay=172.20.99.144[172.20.99.144]:25, delay=0.23, delays=0.06/0.03/0.14/0.01, dsn=2.</fuga@hoge.com>…

アプリが遅くなったと感じた時の監視ポイント

1. 以前は早かったのに、遅くなった。 以前は早かったがポイント。 大抵の場合はデータ量の増加が原因。 2. データ量増加によるSlow query mysqlではquery-long-timeというパラメータがあり、その設定時間以上かかったクエリの場合は slow queryとして認識さ…

Tomcat周りのログとslf4jのログの設定

Tomcatで出力されるログ リストがここにあった。そこで自分が開発してるアプリで使ってるのが ・catalina.out → Tomcatの起動・停止等のログが流れる。 ・localhost.[date] → JavaでのNullPointerExceptionやJSPのエラーなどがここに吐出される。 の2つ。 To…

slf4jの設定

1. pom.xmlに依存関係追加 <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.5</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>jcl-over-slf4j</artifactId> <version>1.7.5</version> <scope>runtime</scope> </dependency> <dependency> <groupId>…</groupid></dependency>

gitで追跡したくないファイルを設定する。

DBなどの設定ファイルなど、コミットしたくない場合の設定remoteの変更を受け入れる場合 #設定 git update-index --assume-unchanged hoge 受け入れない場合 git update-index --skip-worktree hoge

githubのコミットフックでredmineのリポジトリ更新

(pluginインストール済みの設定) hoge : gitリポジトリがある干すとネーム hogeorg : gitリポジトリの組織名 or ユーザー名 hogerepo : hogeorgによって管理されているリポジトリ 1. githubのdeploy keyを設定 sshkeyの作成 ssh-keygen -t rsa -N "" -f hoge…

Propertyファイルを複数選択する

複数読み込み <context:property-placeholder order="1" location="classpath:properties/hogehoge.properties" /> <context:property-placeholder order="2" location="classpath:properties/hugahuga.properties" /> 以上のようにして、複数ファイルを定義することが出来る。 hogehoge, hugahuga内に重複があるとSpringでは起動時にエラーになる。 肝はorder 環境…</context:property-placeholder></context:property-placeholder>