Tbpgr Blog

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

2013-06-01から1ヶ月間の記事一覧

IDE,エディタ,アプリケーションで繰り返し利用する操作を自動化する

臭い名 繰り返し行う特定アプリケーションの操作 臭い英名 duplicate operation in specific application 臭い状況 IDE,エディタ,アプリケーションなど特定の環境で特定の操作を 繰り返し手動で実行している。 臭いの兆候としてリズムの良いキー操作音が一定…

Gradle | 実行可能Jarを生成し、作成されたJarを実行するGradleタスクを作成する

概要 実行可能Jarを生成し、作成されたJarを実行するGradleタスクを作成する 仕様 ・実行可能jarを生成する ・jarの実行時にはシステムプロパティの設定が必要 ・Main-Classはorg.gradle.JarMainクラス ・システムプロパティは以下の2つ hage: hage-value hi…

マウス操作をキー操作に置き換える

臭い名 日々繰り返し行う操作をマウスで行なっている 臭い英名 duplicate operation with mouse. 臭い状況 日々の開発作業中に繰り替えし行う作業をマウスで操作している。 マウス操作はキー操作に比べて時間がかかります。 またキーボードよりも操作を誤る…

Ruby 2.0.0p195のソースコード内でタブインデントを使っているソースを抽出してみた

概要 Ruby 2.0.0p195のソースコード内でタブインデントを使っているソースを抽出してみた 詳細 Ruby 2.0.0p195のソースコード内でタブインデントを使っているソースを抽出してみた。 ※Windows環境で試行抽出は、Ruby2.0のインストールフォルダ配下を以下のコ…

Sublime Text2 | 行の結合

概要 行の結合について 内容 Ctrl+Jで選択範囲の行結合ができます。例えば 1 2 3 の全行を選択してCtrl+Jを押すと 1 2 3 になります 応用 Sublime Text2のトップページのデモのようなオペレーションをしてみます。・以下を入力 one two three・Ctrl+Alt+↑↑で…

ドキュメントのシーケンシャルデータからコードの断片を生成する

臭い名 ドキュメントに存在するシーケンシャルなデータからコードの断片を生成する 臭い英名 sequential data in document 臭い状況 仕様書や要件定義書や資料をもとにコードを記述する機会があります。 仕様書等に大量のシーケンシャルな値がある場合、目で…

RubyによるWord文書生成

概要 RubyによるWord文書生成 詳細 RubyによるWord文書生成を行う。 サンプルコード # coding: utf-8 require 'win32ole' begin word = WIN32OLE.new( 'Word.Application' ) doc = word.Documents.Add() para1 = doc.Content.Paragraphs.Add para1.Range.Tex…

Sublime Text2 | 選択範囲をソートする

概要 選択範囲をソートする 内容 F9で選択範囲をソートします。 検証用データ作成Rubyスクリプト # encoding: UTF-8 require "pp" 25.times {|cnt|puts sprintf("%03d", rand(100))} ソート前 ソート後

冗長なtryブロックのマージ

臭い名 冗長なtryブロック 臭い英名 redundancy try block リファクタリング名 tryブロックのマージ リファクタリング英名 merge try block 改善理由 ・tryブロックははパフォーマンスが悪いのでできるだけまとめる ・・処理の見通し改善。正常系と例外系を…

リファクタリングカタログ

概要 リファクタリングを ・原因となる臭い ・リファクタリング名 ・改善理由 ・対応 ・サンプルコード の形式でまとめます。 パターン名等は自分でつけているので既出の元とはずれていると思います。 詳細 項目 内容 不揃いな粒度の処理をComposedメソッド…

不揃いな粒度の処理をComposedメソッドで統一する

臭い名 不揃いな粒度の処理 臭い英名 Irregularity Granularity リファクタリング名 Composedメソッドパターンで処理の粒度を統一 リファクタリング英名 Apply Composed Method Pattern 改善理由 ・処理の粒度がばらばらだと可読性が下がる ・粒度を合わせて…

パターンカタログ 2014/01/23更新

概要 パターンを ・原因となる臭い ・パターン名 ・改善理由 ・対応 ・サンプルコード の形式でまとめます。ここで言うパターンはソースコードだけに限定せず日々の開発で直面する 様々な問題とそれに対する解決策を表します。 パターン名等は自分でつけてい…

テンプレートの抽出

臭い名 繰り返しタイピング 臭い英名 repetition typing 臭い状況 日々のコーディング、設定ファイル等テキストファイルの編集時に 繰り返し似たような構造のテキストをタイプしている。 パターン名 テンプレートの抽出 パターン英名 extract template 改善…

C#

C#

概要 C#について。 詳細 項目 内容 継承 http://d.hatena.ne.jp/tbpg/20130626/1372258563 全角半角大文字小文字無視で文字列比較を行う http://d.hatena.ne.jp/tbpg/20130701/1372684055

C# | 継承

C#

概要 継承 詳細 class Child : Parent { public void Hoge() { } }

Xaml

概要 Xamlについて 詳細 項目 内容 Xamlとは http://d.hatena.ne.jp/tbpg/20130626/1372260122

Xamlとは

概要 Xamlとは 内容 XAML (Extensible Application Markup Language) は宣言型言語の一種 UI記述用。中身はxmlファイル。 WPF (Windows Presentation Foundation) アプリケーション や Silverlightで利用される。hoge.xamlに対してhoge.xaml.csが対になって…

Visual Studio

概要 MS製IDE Visual Studioについて。 詳細 項目 内容 テーマの適用で黒ベースのエディタカラーに変更 http://d.hatena.ne.jp/tbpg/20130626/1372259441 ショートカット一覧 http://d.hatena.ne.jp/tbpg/20130626/1372259812

Visual Studio | ショートカット一覧

概要 ショートカット一覧 内容 キー 内容 Ctrl+- エディタの次履歴へ Ctrl+Shift+- エディタの前履歴へ F12 宣言を開く Ctrl+カンマ ファイル検索+エディタオープン Ctrl+Tab タブ移動 Ctrl+F4 タブを閉じる F9 ブレイクポイントの設定/解除

Visual Studio | テーマの適用で黒ベースのエディタカラーに変更

概要 テーマの適用で黒ベースのエディタカラーに変更 内容 ・下記サイトから好きなテーマをダウンロードする http://studiostyl.es/ ・ツール=>設定のインポートとエクスポートでダウンロードした設定を適用

Ruby | Excelのシート名を一括取得し、標準出力する

概要 Excelのシート名を一括取得し、標準出力する 内容 Excelのシート名を一括取得し、標準出力します 用途としては大量のシートが存在する場合の手作業の削減。 開発作業の都合上、シート名を別のプレーンテキストに利用したい場合、など。 仕様 ・引数は1…

Ruby | YahooファイナンスをWebスクレイピングしてUSD/JPYのレートを取得

概要 YahooファイナンスをWebスクレイピングしてUSD/JPYのレートを取得 内容 YahooファイナンスをWebスクレイピングしてUSD/JPYのレートを取得します。 また、取得結果と標準入力に指定した数値を掛け合わせてドル価格から円価格への変換をします。 仕様 ・…

Ruby | 標準入出力処理時のValidationをクラスマクロで共通化

概要 標準入出力処理時のValidationをクラスマクロで共通化 内容 標準入出力処理時のValidationをクラスマクロで共通化します。 仕様 ・standard_ioモジュールをインポートすることで標準入力に対するValidationが利用可能になる ・[validate_args_counts n]…

Python | クラスメソッドの宣言

概要 クラスメソッドの宣言 内容 @classmethodアノテーションを利用してクラスメソッドを宣言します サンプルコード # -*- coding: utf-8 -*- class Hoge: @classmethod def hoge(cls, value): print "hoge" + value Hoge.hoge("hige") 出力 hogehige

Sublime Text2 | 文字列をスネークケースに変換するプラグインを作成

概要 文字列をスネークケースに変換するプラグインを作成 内容 仕様 ・変換結果をすべて大文字にするかどうか設定で選べるようにする。 ※全大文字はRubyの定数での利用想定 ・すべて大文字にするかどうか設定を省略した場合は小文字をデフォルトにする ・区…

Sublime Text2 | 文字列をキャメルケースに変換するプラグインを作成

概要 文字列をキャメルケースに変換するプラグインを作成 内容 仕様 ・頭文字をcapitalizeするかどうか設定で選べるようにする。 ・capitalize設定を省略した場合はcapitalizeなしをデフォルトにする ・区切り文字はアンダースコア,半角スペースになっている…

Python | 文字列をスネークケースに変換

概要 文字列をスネークケースに変換 サンプルコード StringUtils.py # -*- coding: utf-8 -*- import re class StringUtils: @classmethod def to_snake(cls, value, upper): if (value == None): return None if (value == ""): return "" ret = re.sub(r'(…

Python | 文字列をキャメルケースに変換

概要 文字列をキャメルケースに変換 サンプルコード StringUtils.py # -*- coding: utf-8 -*- import re class StringUtils: @classmethod def to_camel(cls, value, capitalize): if (value == None): return None ret = value.lower() words = re.split("[…

Python | map関数でシーケンスを操作

概要 map関数でシーケンスを操作 内容 シーケンスのそれぞれの要素に対して一定の操作をする場合に map関数を利用します。 サンプルコード # -*- coding: utf-8 -*- words = "1,2,3,4".split(",") words = map(lambda x: x + "times", words) print words 出…

Python | lambda

概要 lambda 内容 関数自体をオブジェクトとして扱いたい場合や、その場限りの関数を利用したい場合に lambdaを使います。 サンプルコード # -*- coding: utf-8 -*- words = "1,2,3,4".split(",") words = map(lambda x: x + "times", words) print words 出…