読者です 読者をやめる 読者になる 読者になる

kiyo_hikoのブログ

メモ+日記?

仕事について最近考えてること

なんとなくメモる


アイディアの断片自分用メモ


ぶっちゃけいろいろとめんどくさい。
お仕事はPerlでスクリプトを書くのが5割、Excel方眼紙で書類を作るのが5割。

Perlを書いた感想

だるい。
エディターはNotepad++でこれに色々とプラグインを入れて、設定をあれこれ追加して使ってる。
最近自分のプロジェクト(メンバー1人 = 自分)のクラスが50個超えて主にコードのジャンプが辛くなってきた。アウトライン機能を模索中だし、なければ自分でなにか作りたい。

今使っているプラグインははSource Cookifierというが、これがクラスやメソッドごとの一覧化はできるものの、

クラス-メソッド
   |メソッド
   |-ラベル
   |-ラベル
   |メソッド

クラス-メソッド
   |メソッド

といった階層表示ができなくて悶絶。たぶん、

package
sub\s*{

あたりをひろって、階層表示するようなDLL(nppのプラグインはDLL)を作ればよさそう?


あと、インテリセンスやEclipseのような便利機能がなくて悶絶していたが、これは、Notepad++のホームフォルダー配下のPlugins/APIsに入ってる言語ごとの補完ファイルをいじればそれなりに便利な入力補助を使えることがわかった。

たとえばこんな感じで書く。

<?xml version="1.0" encoding="utf-8" ?>
<NotepadPlus>
	<AutoComplete>
		<Environment ignoreCase="no" startFunc="(" stopFunc=")" paramSeparator="," terminal=";" />
		<KeyWord name="take" func="yes">
			<Overload retVal="List" descr="Returns a list which consists of first n elements from a list.">
				<Param name="int n, List xs"/>
			</Overload>
		</KeyWord>
	</AutoComplete>
</NotepadPlus>

で、設定→環境設定→自動保存/入力補完から、入力時の関数のパラメーターヒントを有効にしとくと、実際にNotepad++使う時はこんな感じになる。

f:id:kiyo_hiko:20131103043936j:plain

ということで、Perl用補完定義ファイルを作る予定。気が向いたらブログにも上げる。

仕様変更について

仕様変更をもらうと機能追加は継承であたってなんとかしてしまうこともあるけど、動作自体が変わるとかなり厄介な手順で対応してる。これを例えば、

sub someFunction {
    before:
        # なにか先行する処理
    body:
        # なにか本体
    after:
        # finally的な処理
}

とかにして、あとExcelから読ませて書類とか自動で作るようになりたいなと。
変更が入ってもそれぞれの内容を書き換えれば書類も勝手に追従的なことやりたい。
あと、前処理・後処理が対になる処理をうまくやらせる方式を考えたい。
openAとcloseAが対応、openBとcloseBが対応するとき、

my @todo;
openA() ? push(@todo, closeA) : raise(errorA);
openB() ? push(@todo, closeB) : raise(errorB);
rescue: {
    $_->do for reverse @todo;
}

↑の擬似コードみたいな動きをやればいろんな処理を、責任持たせながら小粒化できて便利そうな気がする。更に宣言的に書けるとなおよさそう

Excel使った感想

つらい。
行の追加とか、地味だけどマクロ書いてショートカットキー設定したほうが楽そう。