プログラミングの「面倒くせー」を減らす試み

公開日: : 最終更新日:2014/01/26 Ruby

プライベートで書くコードや、ちょっとしたスクリプトなんかは Ruby で書くようにしていますが、どうも覚えが悪く。覚えが悪いから、いざスクリプトを書こうとする時に↓のような感じになってしまいがちです。

  1. 「コレってどう書くんだっけ?」と考える → 忘れてるから検索する
  2. 「そういうばアレもどう書くんだっけ?」と再び考える → 忘れてるから検索する
  3. 忘れちゃってる部分が多すぎて、しだいに検索すること自体が面倒になってくる
  4. ついには、スクリプトを書こう!という意欲すら面倒になってしまう
  5. なので、手作業で済まそうと思い始める → 手作業で済ませられるだけの気力が残っていれば手作業でやってしまう
  6. それすら面倒に感じるほど無気力になると放置

ちょっとしたことをさらりと済ませたいから Ruby で書きたい(スクリプトで書きたい)のに、さらりと済ませられない状況になってしまう。そして「うぅ。。。」とジレンマに陥ってしまいます。

それじゃイカンなぁと前々から思ってはいましたが、具体的にどうしたものかというところで止まっていました。

目指すはオレオレライブラリを作る

このスクリプトは、機能ごとに module に分割していて、例えば、次のような機能を module に分割しました。

  • ファイルを読み込んで、その内容を保持する
  • オブジェクトが保持している内容をファイルに書き出す
  • Redcarpet を使って Markdown をパースする

これら module を include して、メインとなるクラスがそれらを使う(利用する)という風にコーディングしました。メインとなるクラスは「自分自身が処理しなければいけないこと」だけに集中すればよく、ファイルに書き出すとかの機能は「別の人」にお任せできていい感じのコードになりました。

とても基本的なことなんだと思いますが、さらりと済ませたいスクリプトを書く時には「module に切り出して再利用する」という視点が欠けていました。今まで module ってよく分からなかったのですが、「もしかしたら、こういうことなのかもしれないなぁ」って自分の中で理解が深まった気がします。

で、これを意識していくと、再利用できそうな機能は module として残っていくので、「オレオレライブラリ」になっていくんだなぁと思い始めています。そうなってくると「面倒くせー」と思うことも減っていきそうな気がしています。

module は Gist に残す

これまでもちょくちょく Gist に残すようにしてきましたが、↑のような視点を意識して残していこうと思います。まずはここから。

Googleアドセンス用(PC)

  • このエントリーをはてなブックマークに追加
  • follow us in feedly

関連記事

no image

Redcarpet を使って Markdown をパースする

Ruby から Redcarpet を使って Markdown をパースしてみた。 せっかくなので

記事を読む

icatch_12845006573-resized

CentOSのバージョン6.5(64ビット)にamazon-ecsをインストールする

Amazon の Product Advertising API を使う作業があったので、Produ

記事を読む

no image

amazon-ecs を使って Amazon から商品情報を取得するサンプル

次の仕事で使うことになるかもしれないので、どんなことができるのか調査したときに作成したスクリプト。

記事を読む

icatch_100612765-resized

CentOSのバージョン6.5(64ビット)にRuby2.1.2をインストールする

2014/08/10 時点での最新安定版である Ruby 2.1.2 をインストールしてみたので、そ

記事を読む

no image

amazon-ecs を使って Amazon から関連商品情報を取得するサンプル

次のサンプルスクリプトを書いたが、これに続くもの。 amazon-ecs を使って Amazon

記事を読む

no image

VPS に Nokogiri をインストールしたときのトラブル

Bundler を使って Nokogiri をインストールしようとしたが、次のようにエラーメッセージ

記事を読む

icatch_4081722858-resized

CentOSにRubyのBundlerをインストールして使い始める人向けの簡単なまとめ

Bundler を使ってないと環境を移したときに面倒だってことが身に染みて分かったので Bundle

記事を読む

no image

ファイルを読み込んでその内容を保持する

Ruby で書いたスクリプトを module 化していく試みの一貫です。 ファイルを読み込んで、そ

記事を読む

no image

配列の内容をファイルに書き込む

Ruby で書いたスクリプトを module 化していく試みの一貫です。 Array に保持してい

記事を読む

icatch_474695210-resized

amazon-ecsを使った検索のエラー原因を確認する

Amazon が提供しているサービス Product Advertising API を手軽に扱える

記事を読む

Googleアドセンス用(PC)

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


× 六 = 48

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Googleアドセンス用(PC)

icatch-jersey_multi_pathparams
Jerseyの@PathParamはスラッシュの間に複数指定できる

http://hoge-api/user/{id}.{format}

icatch-vagrant_box_customize
VagrantのBoxファイルをカスタマイズして独自のBoxファイルを作成する

配布されている Vagrant の Box ファイルを使って検証環境を

icatch-2015-006-1
バリデーションチェックにJava8のOptionalを使ってスマートに書く(自分比)

Web アプリのバリデーションチェックにアノテーションを使うことが増え

icatch-2015-005-1
ユニットテストの偏りを防ぐ命名規則の付け方

ユニットテスト名に以下の命名規則を付けるようにして二ヶ月ぐらい経った。

icatch-2015-004-1
Vagrantで起動したCentOS上のOctopressをホストOSから確認する設定

タイトルの通りだが、Vagrant を使って起動した CentOS に

→もっと見る

PAGE TOP ↑