1
1

More than 1 year has passed since last update.

RubyからJavaに移行する時の考え方

Posted at

主な違い

今までrubyを学習してきて、仕事でjavaを使うことになりました。
rubyと違うところがあったので、自分なりにまとめてみたいと思います。

Javaコンパイラによってコンパイルされる静的型付け言語
Rubyインタプリタによって解釈されるスクリプト言語で、動的型付け言語

上記が一般的に説明されている説明となります。

自分の言葉で説明すると、
Javaは型を宣言するのでコードが長くなるが、大規模開発などたくさんの人が関わる開発に向いている。習得の難易度はRubyよりも高め。Rubyは、型を宣言する必要がなく短くて直感的にコードを書ける。アジャイル開発に向いている。習得の難易度が低いことや、日本語のドキュメントが充実しているので、プログラム初心者に向いている。

システムの違い

サーバーやデータベースの違いについて、表を作りました。(下記)

JavaとRailsの比較最終-1.png

Ruby Java
Railsサーバー Tomcat
Controller Controller, Service(ビジネスロジック)
Model DAO,DTO
ERB Thymeleaf

**ServiceやDTO,DAOに関しては勉強中のため、認識に誤りがありましたらご指摘くださいませ。

二つの言語に違いがありますが、大まかな
「ユーザーから受けたリクエストをHTTPメソッドでサーバーに送ってデータベースと情報をやりとりしてレスポンスを返す」
という流れは同じでした。
大きく違いを感じたところとしては

  • Rubyではクエリの発行はActiveRecordで自動的にやってくれていたが(Post.allと書くだけでできるみたいな感じ)、JavaではSQLを自分で書かないといけない
  • HTMLを書いているときに、eclipseで書いていたのですが、毎回ビルドしないとブラウザに反映されない。
  • Javaはとにかく記述量が多い!

具体的な書き方の違い

Javaは事前に型宣言が不要

ruby
number = 1000
name = "Qiita"
java
int number = 1000;
String name = "Qiita";

変数展開

ruby
"私の名前は#{name}です"
java
"私の名前は" + name + "です"

if文

ruby
 if A > B
   #処理A
  elsif B == c
   #処理B
 else
   #処理C
 end
java
if (A > B){
//処理A
} else if (B == C){
//処理B
} else {
//処理C
}

配列

ruby
nums = [1, 2, 3]
nums[0]
java
int nums[] = {1, 2, 3};
nums[0];

メソッド

ruby
def sum(a, b)
  return a + b
end

num = sum(1, 2)
java
public static int sum(int a, int b){
  return a + b;
}
int num = sum(1, 2);

クラス

ruby
class Car
  #処理
end

police_car = Car.new
java
class Menu{
//処理
}

Car police_car = new Car();

まとめ

RubyからJavaに切り替えて本当に思ったのは、

「Rubyってめっちゃ簡単なんだな!」ということ。

Rubyで考えていなかったこと(考えなくても良かったこと)をJavaではすごく考えないといけないので、

処理の流れだったり、型がどうなっているのか意識するようになりました。

これからはJavaで学んだこと、気づき、大変だったことなど投稿していこうと思います。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1