設計ノウハウ/ベストプラクティス
- 不具合修正に対する向き合い方
- ソフトウェアの静的品質と動的品質
- プログラム内のコメントの書き方 (Javadoc ドキュメンテーションコメントの書き方)
- アプリ内の名前空間(Java のパッケージ階層)に迷った時のヒント
- ゴッドクラス (God Class) とは
- スケジューリングや見積りの段階では要求と設計要素のマトリクスで考える
- 可変オブジェクトのメンバ参照を返さない
- プロジェクト内での null の扱い方をルール化する
- 時制や単数形・複数形を考慮して命名する
- 肯定形で表現する
- 単位を明確にする
- 設定値の伝搬タイミングを意識する
- 型変換用メソッドは受け取り側クラスに作る
- 静的チェックのレベルはプロジェクト初期に厳しくする
- リソースは finally ブロックで閉じる
- コメント内で使える特殊キーワード(XXX、TODO など)を理解する
- よいツールの条件
- 無駄な汎用性ではなくシンプルな設計を (YAGNI)
テスト
Jenkins
- Jenkins CLI を使ってコマンドラインから Jenkins を操作する
- Groovy スクリプトで Jenkins サーバを制御する
- Groovy スクリプトで Jenkins 上のすべての Job を制御する
- Groovy スクリプトで Jenkins 上のすべてのスレーブを制御する
- Jenkins ジョブの設定 (
config.xml
) を確認する - お試しインスタンスとして Jenkins サーバを起動する (
jenkins.war
) - Jenkins サーバの設定ファイルの場所
- Amazon EC2 に Jenkins をインストールする
ツール
- make を使いこなすためのメモ
- CPD でコードクローンを発見する
- TFTP の使い方(TFTP によるファイル転送)
- Windows (MinGW) で GLUT を使用する
- Tera Term のマクロで特定の文字列を検出して処理を実行する
- faceswap/ffmpeg で動画の顔を好きな顔に置き換える
ドキュメント用ツール
ネットワーク/暗号/セキュリティ
- IP によるインターネットワーキングの基礎(昔々2000年くらいに書いた記事)
- GENA と SSDP プロトコルを理解する
- 共通鍵暗号化方式と公開鍵暗号化方式
- ダイナミック・ルーティング・プロトコルのメモ (RIP, OSPF, BGP-4)
- ルーティングテーブルの管理
- NAT の種類のメモ(SNAT、DNAT、NAPT、IP マスカレード)
- VMware のネットワーク設定