Helperクラスとは?

Helperというクラス。
Railsにも出てくるよね。
このHelperさんを、最近、よく見かけるんです。

Helperというディレクトリがあって、
画面の制御、ビジネスロジックの制御、ビジネスロジックそのもの、ユティリティ、データアクセスまで、
そこには、なんでも入ってるんです。

自由すぎて、逆に、困ります。

僕の認識が正しいかわからないけど、Helperクラスは、あくまで、プレゼンテーションレイヤに属していて、
描画処理を助けるものではないでしょうか。

例えば、画面に金額を表示する場合、「3000」ではなくて、「¥3,000」と表示したいとして。
そのとき、「3000」 => 「¥3,000」の変換処理が、Helperさんの役割かなと。

お金を扱うアプリケーションの場合は、金額は、いろんな箇所に表示されますので、
共通部品になっていた方がよいですね。

また、この変換処理は、ビジネスレイヤやデータアクセスレイヤでは使用しません。
使用するのはプレゼンテーションレイヤだけです。

他のレイヤで変換をしてしまうと、ある箇所では、3,000円などにフォーマットを変えたかったり、
国際化対応時に、やっかいなことになりますね。

そこで、プレゼンテーションの助っ人して、Helperさんが登場するのではないでしょうか。

ところで、J2EEでは、View Helperと呼ばれるものがあります。
そこには以下のように定義されていました。

「ビュー」を使って整形コードをカプセル化し、「ヘルパー」を使ってビュー処理ロジックをカプセル化します。
ビューは、POJO、カスタムタグ、または、タグファイルとして実装されるそのヘルパークラスに、処理を移譲します。
ヘルパーは、ビューとモデルの間のアダプタとして機能し、HTMLターブルの生成など、整形ロジックに関する処理を実行します。

単にヘルパーと言った場合も、これのことを指すのでは?

プログラミングで役に立つツール(ウェブサービス)

ふと自分のブックマークを見てて、たくさんあるなぁー、
どれくらい使ってんだろぉ?と思って始めてみました。

FREEFORMATTER.COM

JSONXMLSQLなどを人が読みやすいようにフォーマットしてくれます。
Base64やURLエンコード/デコードする際にも利用しています。一番使ってるかも。

www.freeformatter.com

YOMIKATA

プログラミングは、デフォルト英語ですから、英語の名前がバンバンでてきますよね。
例えば、ライブラリの名前とか読み方わからないと、話しずらかったり、人によって違ったりします。

そういうとき、ここで、検索してみます。(でも、おふざけが多...)

余談ですが、ソフトウェア開発で、名前は、とても重要です。

例えば、設計なんか、極論してしまえば、ほぼ名前をつける作業です。
テーブル名、カラム名、クラス名、メソッド名、機能名、画面名、ソフトウェアの名前、サーバの名前...ひたすら名前をつける作業です。
ネーミングセンスが問われます。

また、DDDでも、名前が大事だと提唱しています。

信者ではありませんが、旧約聖書にも、GODが世界をつくるときに、はじめに名前がありきと言ってます。
バベルの塔の話とか聞くと、統一された言葉の力によって、神に近づくほどの大事業を行ったことが読み取れます。
真理ですね。

yomikata.org

UI Color

iOSアプリの開発で、色を指定する際に、ここでよく調べてます。

uicolor.xyz

回線速度(転送速度、通信速度)の単位変換

単位変換は、なんというか
これだけじゃなくて、サイズのMB、KBとか、バイナリの2進数、8進数、10進数、asciiとか、
あぁ、なんか、この世界めんどくさい。

回線速度(転送速度、通信速度)の単位「bps」「B/s」変換

UNIXタイムスタンプ計算ツール

そうそう、UNIXタイムスタンプね。1970年1月1日0時0分0秒からの経過時間です。
1970年1月1日0時0分0秒からにしたのはなぜかな。

その日からずっと数えてるってことですかね?熱心ですね。

UNIXタイムスタンプ変換ツール

時差計算

あとタイムゾーンもね。日本は+9時間です。だから、私は、未来人です、たぶん。

www.jisakeisan.info

ライブラリの検索サイト

Javaだったら、MavenのThe Central Repositoryですが、
各言語、それぞれ同じようなのがある。

Rubyだったら、RubyGem.org、Objective-C/Swiftだったら、CocoaPods.orgとか。

The Central Repository Search Engine

RubyGems.org | your community gem host

cocoapods.org

JSFiddle

HTML/CSS/Javascriptのコードの断片を試したいときによく使う。

jsfiddle.net

Regex Tester

ちょっと、正規表現を組むときに、重宝している。

www.regexpal.com

commit-m

GitHubから、コミットメッセージの例文を検索してくれます。
英語が難しいと思ったとき、ここで、検索して出てくれば、今日は吉。

commit-m.minamijoyo.com

gitignore.io

gitの無視リストのテンプレを検索できます。

gitの管理下にあるけど、管理下から除外したいファイルがあったら、.gitignoreというファイルに記述しておきます。
そういうのって、言語やIDEによってぜんぜん違いますが、同じ言語、IDEだったら、アプリケーションが異なっても、あまり差異がありません。
テンプレ化可能です。

www.gitignore.io



ちょっと、やばい

いっぱいありすぎて、

きりがなくなってきた。

もう...無理

ここで、やめます。googleが最強。