プログラミング

PHPerがJavaを学ぶ5つのメリット

投稿日:2019年8月27日 更新日:

PHPerである私が会社でJavaの研修担当となり、私自身も大学生以来のJavaを勉強しなおして感じたことを書いていきたいと思います。

対象読者

・PHP初心者
・なんとなくPHPで動くプログラムを書いてきた人
・オブジェクト指向は何となくしか理解していない人
・バグを作ったり、直したりを繰り返している人

1.オブジェクト指向がきちんとわかるようになる

何のオブジェクトにどんなプロパティとメソッドを持たせてあげなければいけないか?
ということを意識してコーディングしないといけないので、自然とクラス設計に対する意識が高まります。

今までオブジェクト指向に対して曖昧な理解しかなかったのに、わかっていると思っていたことを猛省しています。汗)

2.エラーに強くなる

Javaが面倒だと以前から思っていたのは、例外処理を記述する必要があったからです。
(PHPにもありますが、ノンフレームワークでプログラミングしているレベルでは使いもしませんでしたし、フレームワークを使い始めてからも、自分で例外処理を書くことなどありませんでした)

でも研修で教えなければと自分でも学び直すうちに、例外を意識することでエラーの発生原因をコーディング時点で分かっている状態になれると気づきました。(遅すぎ!)

これを意識できると自然とバグを減らすことができるようになると思います。
また、これが意識できない人と一緒に仕事するのは・・・という気持ちにもなりました。

私自身、もっとエラーに強いコードを書けるようになりたいですね。

3.型を明確に意識するようになる

Javaは静的型付け言語のため、必ず型を定義しないといけません。
最初はこれを面倒だと思っていましたが、何の型で変数名は何にするのかを意識することで、今まで変数の値しか意識していなかったことに気づきましたし、変数の型を意識してコーディングできるようになりました。

変数の型に対する意識の弱さを改善できたことは良かったと思っています。

※PHPでもStrictモードが使えることを最近知りました。
PHP: declare – Manual

4.変数スコープを意識できるようになる

Javaはループ内変数はループ外では参照できないので、最初はこれがものすごくキライでした。
今では慣れてきて、当たり前のようにスコープを意識しています。

そのおかげで、定義した変数がどこで使われるかということがしっかりと頭に入ってくるようになりました。

むしろ今までそれを意識できていなかったことが恥ずかしいくらいなので、これを機に直すことができてよかったです。

5.プログラムを書く際の厳格さが身につく

1~4の総まとめになりますが、なんとなく動く感覚がまずいと気づけるようになりました。

このクラスにこれを持たせて、ここでこう処理して、この時は例外処理して・・・
そういう感覚が身につくのがJavaです。

でもプログラミングってそういう仕事ですよね?
変数の使いまわしができると思っていた時の私はまさしく、「クソプログラマ」だったわけです。

最後に

私はJavaの学習を通じて、プログラマとして成長できました。
今までPHPしか触ってこなかった人で、オブジェクト指向をきちんと理解したい、プログラマとして突き出たいと思っている人は是非ともJavaを学んでみてほしいと思っています。

まとめ

・Javaを学ぶことでオブジェクト指向がわかるようになる。
・エラーに強いコーディングスタイルが身につく。
・変数の型とスコープを意識できるようになり、バグに強い体質になる。
・プログラマとしてのレベルを高められる。

-プログラミング
-, ,

執筆者:


comment

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

CAPTCHA


関連記事

【Java】オブジェクト指向の練習題材(成績オブジェクト)

前回記事、オブジェクト指向とは何なのかを簡単に説明してみるの練習題材です。 ここでは2つのオブジェクトを作成していきます。 成績オブジェクト:教科と点数などを保持 生徒オブジェクト:氏名と成績を保持 …

【SpringBootチュートリアル】#10~ 更新機能の実装

概要 既に登録済みの書籍情報を画面上で編集し、更新する処理を実装します。 更新した内容が反映されていることを確認するところまでを行います。   フロントエンド 更新情報のリクエスト edit.html …

【SpringBootチュートリアル】#6~ 登録機能の実装

概要 画面から送信されたデータをDBに登録する機能を実装します。 入力データはバリデーションによってチェックされることとします。 サーバサイドは以下のように各層で処理分けされます。 <Contorol …

Observerパターンってどう使うの?を考える(商品の予約)

目的 Observerパターンの使いどころとなる状況を具体例でもって理解する。   ゴール(実現すること) 商品の予約システムにおけるユーザ通知   実装する機能 ・商品を予約する …

no image

XSS対策の基本は入力値制限とサニタイジング(無害化)の2つ

XSS(クロスサイトスクリプティング)の基本的な対策は何をすればいいのかがぼんやりしている方向けの書いています。 対策方法はタイトルの通り、XSS(クロスサイトスクリプティング)対策の基本は入力値制限 …

記事を探す

SpringFramworkの良書

■おすすめ教材
Javaの基本を学んだ人が、次のステップとして読む本(中級者向け)

※SpringはJavaのFrameworkの1つです。
変更のしやすさ、保守性の高さが特徴です。