Tbpgr Blog

Employee Experience Engineer tbpgr(てぃーびー) のブログ

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

2013年 脱下請末端プログラマー おすすめ学習テーマ

下請末端プログラマーへのおすすめ学習テーマ 仕様を満たすソースコードは書けるが、そこから先がうまくいかないビギナーに おすすめの学習テーマをまとめます。自分のチームの開発者が以下を学んでいてくれると嬉しい、という視点で書いてあります。 下記の…

2012年のプログラミング生活を総括

[雑記]2012年のプログラミング生活を総括 2012年の業務 1-3月は運用障害対応が主。ひたすら問題切り分けとバグ対応。 この期間はのんびりしていたので勉強時間を多めに取ることが出来た。4月からデスマスタート。 基本設計、詳細設計、製造、結合バグ対応な…

ぼそっ

勉強したい・・・ 早く仕事が落ち着かないかな・・・

RubyでProxyパターン/Matzは松江から来るのに時間がかかるのでProxyRubyistを置く!(Forwardable版)

概要 RubyでProxyパターン/Matzは松江から来るのに時間がかかるのでProxyRubyistを置く! http://d.hatena.ne.jp/tbpg/20120306/1331048460 の内容をForwardableを利用して書き直しました。 http://www.ruby-lang.org/ja/old-man/html/Forwardable.html 登…

EnumerableのMix-Inのサンプル

概要 EnumerableのMix-Inのサンプル 詳細 EnumerableをMix-Inすることで、様々な繰り返し操作が可能です。 Enumerableモジュールは内部でeachを利用しているため、 eachを実装する必要があります。 サンプル仕様 複数の生徒を持つ先生クラスを想定 サンプル…

java.lang.reflect.Proxyによる自作AOPでトレースログ機能を実装

パンくず Java java.lang.reflect.Proxyによる自作AOPでトレースログ機能を実装 概要 java.lang.reflect.Proxyによる自作AOPでトレースログ機能を実装 内容 java.lang.reflect.Proxy を利用して、AOPによるTraceログ機能を実装します。※補足 AOP=アスペクト…

Rubyで流れるようなインターフェースをメタプログラミング

概要 流れるようなインターフェースをメタプログラミング 詳細 まつもとゆきひろさんの「コードの世界」でattr_accssorのソースコードを読んで 実装したくてしょうがなくなったので夜更かしして実装。 流れるようなインターフェースをメタプログラミングしま…

Rubyでカレント日付+任意の文字列形式の定形フォルダを作成し、その中にtxtファイルを作成

概要 カレント日付+任意の文字列形式の定形フォルダを作成し、その中にtxtファイルを作成 詳細 下記仕様のプログラムをRubyで作成する ・createTodayFolder.rbを実行すると入力ダイアログが開く ・ダイアログに任意の文字列を入力する。例として「ほげ」 ・…

Rubyで日付形式のファイル名をインクリメントして新規ファイルを作成

概要 日付形式のファイル名をインクリメントして新規ファイルを作成 詳細 任意のフォルダ内にある「YYYYMMDD_ファイル名.txt」という 命名ルールのファイルを最大の日付+1日で新規追加する。 サンプルコード # encoding: Windows-31J require "date" requir…

汎用Validator

パンくず Java JUnit 汎用Validator 概要 汎用Validator 内容 汎用的なValidatorを作成します。 要件は以下とします。・1つのValidatorの中に複数のエラー判定処理が存在する それぞれのエラー判定のどれか一つのエラーが成立した場合に Validator全体として…

sedでログの特定日時の行範囲を取得する(おまけでRubyによるサンプル日時データ生成)

概要 sedでログの特定日時の行範囲を取得する 内容 大容量のログファイルがあり、日時の昇順で内容が書き込まれていることが前提。 特定の日時範囲のログのみを取得する際にsedを利用する。 コマンド 「2012/11/12 00:27:48」が出力された行から最後の行まで…

define_methodでメソッドの生成

概要 メソッドの生成 詳細 Rubyのdefine_methodで動的にメソッドを生成することができます。 サンプル仕様 ヒアドキュメントの文字列をメソッドとして定義する。 サンプルコード # encoding: Windows-31J Hoge = Class.new do METHOD_NAMES =<

書籍 Effective Java | 戦略を表現するために関数オブジェクトを利用する

パンくず Effective Java 戦略を表現するために関数オブジェクトを利用する 概要 戦略を表現するために関数オブジェクトを利用する 詳細 関数オブジェクトを利用することで状況に合わせて実行する処理を切り替えることが可能です。 これは、デザインパターン…

書籍 Effective Java | Comparableの実装を検討する

パンくず Effective Java Comparableの実装を検討する 概要 Comparableの実装を検討する Comparableとは ComparableインターフェースのcompareToメソッドを実装することで Arrays.sort,Collections.sort,TreeMap等ソートに関わる処理に対応することができま…

JUnit | JUnit4のDataPointsによるテストと特定ケースの実行

パンくず Java JUnit JUnit4のDataPointsによるテストと特定ケースの実行 概要 JUnit4のDataPointsによるテストと特定ケースの実行 内容 JUnit4のDataPointsによって、テストをパラメータ化することができます。 パラメータ化されたケースはFixtureの配列と…

Java | 流れるようなデータクラス生成ツール

パンくず Java 流れるようなデータクラス生成ツール 概要 流れるようなデータクラス生成ツールについて 要件 定義用クラスに以下の内容を指定 ・データクラス名 ・データクラスJavaDoc ・データクラスJavaDoc用author ・フィールドコメントのリスト ・フィー…

JUnit | JUnit4のDataPointsによるテストとFixtureと流れるようなインターフェース

パンくず Java JUnit JUnit4のDataPointsによるテストとFixtureと流れるようなインターフェース 概要 JUnit4のDataPointsによるテストとFixtureと流れるようなインターフェース 内容 JUnit4のDataPointsによって、テストをパラメータ化することができます。 …

書籍 Ruby Cookbook | ブロックの呼び出しと作成

パンくず Ruby Cookbook ブロックの呼び出しと作成 概要 ブロックの呼び出しと作成 内容 ラムダ構文によりブロックを変数として扱うことが可能。 また、その変数をメソッドの引数にしたり 戻り値にすることも可能です。 サンプルコード # encoding: Windows-…

JUnit | JUnit4のDataPointsによるテストとパラメータ化の基準

パンくず Java JUnit JUnit4のDataPointsによるテストとパラメータ化の基準 概要 JUnit4のDataPointsによるテストとパラメータ化の基準 内容 JUnit4のDataPointsによって、テストをパラメータ化することができます。 詳細はTheoryとDataPointsとFixitureによ…

書籍 Effective Java | cloneを注意してオーバーライドする

パンくず Effective Java cloneを注意してオーバーライドする 概要 cloneを注意してオーバーライドする cloneとは cloneメソッドをオーバーライドすることで、 クラスの複製が可能になります。 ※ただし、シャローコピー(浅いコピー)です。 サンプルコード …

フィールドを利用してコンストラクタを生成

概要 「フィールドを利用してコンストラクタを生成」の利用方法について 利用状況 ・フィールドをコンストラクタから設定したい場合 利用手順 ・フィールドをコーディングする ・Alt+Shift+Sでソースメニューを呼び出す ・Oで「フィールドを利用してコンスト…

書籍 Effective Java | equalsをオーバーライドする時は一般契約に従う

パンくず Effective Java equalsをオーバーライドする時は一般契約に従う 概要 equalsをオーバーライドする時は一般契約に従う equalsメソッドをオーバーライドするケース 論理的等価性を求められるケース。 例えば、Personクラスのname,birthdayが同じなら…

書籍 Effective Java | 数多くのコンストラクタパラメータに直面した時にはビルダーを検討する

パンくず Effective Java 数多くのコンストラクタパラメータに直面した時にはビルダーを検討する 概要 数多くのコンストラクタパラメータに直面した時にはビルダーを検討する 想定されるケース 必須項目、オプション項目を含む多数の項目を扱うクラスを作成…

書籍 Effective Java

概要 書籍 Effective Javaに関するメモ。 全てをカバーせず、自分の中で新たに学ぶことやまとめ直しておきたいことのみを抜粋します。 また、例示するサンプルも写経せずに出来るだけ自分で考えたサンプルにします。 各章 1章 はじめに 略 書籍全般に関する…

書籍 Ruby Cookbook | バージョン番号付き履歴ファイルの作成

パンくず Ruby Cookbook バージョン番号付き履歴ファイルの作成 概要 バージョン番号付き履歴ファイルの作成 内容 バージョン番号付き履歴ファイルの作成。 書籍では履歴番号だけ追加してましたが、応用してシステム日付を追加しました。 本日の日付+0詰め3…

量産型職業プログラマー対応

概要 量産型職業プログラマー=生きていくためだけにプログラマーをしている向上心のない開発者。 基本プログラムに興味はなく、仕事以外では絶対にコードを書かない。 長いので以降、量産PGとします。 そのような開発者を多数抱えた技術系リーダー、サブリ…

フォーラム

パンくず Redmine フォーラム フォーラムについて スレッド形式の掲示板により、プロジェクトで議論が必要な対象について Redmine上でやり取りが出来る。 利点 メールや口頭のやり取りと違い、議論の内容が残る。 また、個別の議論を全体に共有可能。 構成要…

プログラマーのためのサバイバルマニュアル

概要 技術面、ヒューマンスキル、組織についてなど多角的に プログラマーとしてのノウハウの仕事を書いた書籍。 内容 1部:プロフェッショナルのプログラミング 2部:人としてのスキル 3部:企業の世界 4部:未来に向かって で構成される。それぞれ過去の名…

書籍 パーフェクトJava | アノテーション

パンくず 書籍 パーフェクトJava アノテーション 概要 Javaのアノテーションについて。 アノテーションはプログラムの構成要素に付与するメタ情報。 アノテーションを修飾子として適用することを「アノテーションの適用」と呼ぶ。 アノテーションの記述 publ…

書籍 パーフェクトJava | リフレクション | オブジェクトの生成と操作

パンくず 書籍 パーフェクトJava リフレクション オブジェクトの生成と操作 概要 Javaのリフレクションのオブジェクトの生成と操作について。 オブジェクトの生成 以下の2つの方法でインスタンスの生成が可能です。 ClassクラスのnewInstanceメソッド Constr…