All Category

初心者向け本格的なrubyバッチの書き方

2017-10-03



概要

みんなー、雑にバッチ書いて遊んでるー!? (ゝω・)v
ところでそういったバッチやスクリプトはみんなの好意によって公開してもらっているけど、その大半は走り書きで実際に業務で書くような書き方ではないよね。当然だけど。

だから今日は簡単なバッチを、少し丁寧に書いてみたい。業務レベルではない趣味エンジニアの参考になれば嬉しい。みんなが知っているもっと良い書き方をコメントで教えてくれるともっと嬉しい!

バッチの内容

今回書くのは本当にとっても簡単なバッチだ。 毎朝ネコの画像を見たくない? 見たいよね!
そこで猫の画像urlをAPIで取得してslackの特定チャンネルへ投稿する。これ...

スニペットの実行結果を投稿するSlackBot

2017-10-03



はじめに



みんなー、雑にプログラミング問題を解いて遊んでるー!? (ゝω・)v
今日は私用チームに作ったSlackボットについて解説させてくれ。

その名もRubyEvalBot、名前の通りSlackへrubyのスニペットが投稿された際にそれを(ほぼ)安全に評価して標準出力を答えてくれる便利な奴だ。

ちょっとしたコードに言及したい時や仲間が投げつけて来たプログラミング問題へ解答を叩き付けたい時に、コードを投稿したらそれがどういう結果になるのかを出してくれれば便利だよね? それをやってくれるんだ。

はい、GitHubはこっちだよー。
https://github.com/owlw...

Chapter.03 変数

2017-10-02



ルビィの奇妙な変数

早速だがこんなコードを実行してみよう。どんな結果になるかな?

cat = 'にゃーん'
animal = cat
animal.slice!(1..-1) # Strig#slice!は文字列の指定位置を削除する
puts cat
# => "に"



んん? これはどういうことだろう。変数animalは変数catをコピーして新しく作ったのに、animalの中身が変更されるとcatまで変わってしまった!

説明しよう。よく変数はデータを入れる箱だとか説明される。聞いたことがあるよね。それはわかりやすくした例えた、少し不正確だし概念だけの話だ。

ここで...

Chapter.02 メソッドを継ぐ

2017-10-02



クラスの継承

前回はクラスとインスタンスの話をした。覚えているかな? クラスがメソッドという振る舞いの情報を持ち、インスタンスが状態の情報を持つというのが要点だ。

今回の話題は「継承」について。オブジェクト指向プログラミングでは非常に重要な概念となる。何故なら継承がコードの再利用をしやすくするからだ。

では、継承とは一体なんなのか。よく言われる説明では既存のクラスを元にして構造や振る舞いを共有した別のクラスを作るということだ。

ここでは、ちょっと違う表現もしてみよう。継承とは、あるクラスが持つ振る舞いの情報を別のクラスから参照することだとも言える。
(ややこしくなるから詳しい話は...

Chapter.01 Hello, ruby.

2017-10-02



クラスとインスタンス

最初に取り上げる話題は、そうクラスだ。一体こいつらは何なんだ?よく用いられるのが、クラスは設計図でありインスタンスは設計図を元に作られた実体だという説明だ。聞いたことがあるだろう。

実のところ、言語によってクラスの定義は様々だ。名著「コーディングを支える技術」によればクラスという言葉が使われ始めた初期においてはその単語の通り「分類(classes)」のことだった。しかしAlan KayによりSmalltalkやオブジェクト指向が生み出されて以降はクラスと言えば一般には以下のような役割を持つものだ。


変数とメソッドのまとまりを作る
実行可能な処理を定義する
コ...