見出し画像

PHPエンジニアの僕が、1ヶ月でそこそこのRubyエンジニアになった話

こんにちは。グラムでエンジニアをしている渡邉です。

今回は、PHPエンジニアだった僕が、グラムの主な開発言語であるRubyを意のままに操れるようになるまでの、紆余曲折をご紹介します。


PHPとRubyの特徴(私見)

PHPとRuby、どちらもWebアプリケーションの開発に使われている開発言語です。

もちろんJavaなども広く用いられていますが、PHPとRubyは、比較的低コストで、初心者でも入りやすい言語という点で共通しているイメージです。

実際、僕も社会人数年目のころ、実務どころかマジで未経験なところからPHPエンジニアになりましたし、今はRubyのフレームワークであるRuby on Railsにも元気に向き合っています。

正直なところ、はじめてWebアプリケーション開発に取り組むなら、どちらから入ってもいいと思います。


PHP, Rubyの記述方法の違い

「PHPエンジニアがRubyで書くときに、どうするの?」という視点で、それぞれの記述方法の違いを挙げていきます。

一部、Ruby on Rails限定なところもありますが、グラムにジョインしたときには必要になる知識なので、まぁいっかと思って書いちゃいます。


行末にセミコロンいらない

■PHP

echo string;

Ruby

p string

両方つかっていると、間違えてつけたり、つけ忘れたりします。


出力

一番使う、出力。何はなくとも、出力。

PHP

echo string;
print_r(array);
var_dump(string);

Ruby

p string
p array
p string

pで、文字列も配列もハッシュもいける。ラクチン。ちなみに、ppとすると、配列やハッシュを改行して出力してくれる。便利。


条件分岐 「でない場合」という概念

Rubyでは、`unless`という条件文があります。意味は、「でない場合」。`if`の逆ですね。

たとえば、変数の値が1以外の場合に実行する処理の場合。

PHP

if($i !== 1)
{
    // hogehoge
}

Ruby

unless i === 1
    // hogehoge
end

使いどころを間違えると、逆にわかりづらくなりそうですが、複数条件以外のみの処理なんかは、スッキリと書けそう。


ループの記述

ループの記述も、PHPとRubyでは異なります。

ここではPHPのforeachを例に挙げますが、for文の記述や、mapなど、ループ周りはRailsのほうが柔軟性に飛んでいる印象がありました。ちなみに、jsに慣れていれば、そんなに違和感なく使えそうです。

PHP

$list = [
    'a' => 1,
    'b' => 2,
];

foreach($list as $key => $value)
{
    echo "{$key}: {$value}";
}

Ruby

list = {
    a: 1,
    b: 2,
}

list.each do |key, value|
    p "#{key}: #{value}"
end


テンプレートエンジン slim の存在

Ruby on Rails には、slimというテンプレートエンジンが存在します。
PHPにもSmartyやTwigといったテンプレートエンジンがありますが、それのRuby on Rails版ですね。

HTMLタグの親子はインデントで表現

HTMLのタグの親子関係は、slimではインデントで表現されます。

<div id="sample1" class="sample2 sample3"><span>hoge</span></div>

これを、slimで記述すると、以下になります。

div#sample1.sample2.sample3
    span
        'hoge'

最初は違和感ありますが、慣れるととても楽ですし、何よりも見た目がわかりやすい!

閉じタグ不要

前述のサンプルからも分かる通り、閉じタグが不要です。「divの閉じタグ忘れた!」みたいなことも解消されますね。ありがたい。


おわりに

PHPからRubyに転向するにあたって、序盤のハードルになりそうなことの一部を挙げてみました。

PHPに限らず、すでにプログラミング言語を活用されている方であれば、さほど違和感なくRubyに馴染むことができるはずです。実際に僕も、グラムにジョインするまではプログラミング言語はほとんどPHPしか触れていませんでしたが、一ヶ月もしないうちに(多分)使いこなすことができました。

グラムでは、多言語経験のみでRuby経験なしのエンジニアも歓迎していますので、「RubyやRuby on Railsに興味はあるけど、実務経験ないし...…」というエンジニアの方は、ぜひ応募してみてください!




この記事が気に入ったらサポートをしてみませんか?