最近はエンジニアの方が在宅で副業することは珍しくありません。 しかし副業を始めるにも、エンジニア向けの案件にはどんなものがあるのか、どこで仕事を探せるのかよく分かりません。 クラウドソーシングについても漠然と知ってはいる […]
Javaエンジニアのキホンのキ 3つ
Javaを扱う、webエンジニアとして知っといてアタリマエのこと3つ
【見出し①】
現在、自分は大手のweb予約管理システムで働いています。
このシステムはJavaで動いており、毎日多くの人々に使用されています。
自分はこのシステムの新規機能開発を設計からリリースまで担当させてもらっています。
【見出し②】
開発環境はあまりモダンとはいえず、少し古いバージョンのJavaを使っています。
(サーバーの構成などは古くもなく、新しくもなくといった感じです。)
ですが、Javaをwebサービスで扱う上で重要になってくる部分は共通で使えると思っています。
今回は3つ紹介します。
【見出し③】
1.Javaのフレームワークの特徴を捉える。
現在、Javaのwebフレームワークで主流となっているのが、Springだと思います。
Springはフレームワークの一種ですが、どのフレームワークを使っているに関わらず、
「このフレームワークはこのような特徴があり、こんな風に使う」というのをまず認識することが大事です。
Javaのフレームワークはとても便利なもので、本来、人間(コーダー)が考えなければならなかったものを勝手に処理してくれます。
webフレームワークである、Springを例に出すと、
@Component、@Service、@Repository、@Controllerなどといったアノテーションを正しくクラスやメソッドに付与させておくと、
URLやデータのマッピングなどを自動でやってくれたりします。
本来、コーダーが書かなければならない膨大なコードを簡略化、手助けしてくれる。
それがフレームワークの役割です。
以前、不特定多数があつまる飲み会があり、僕(そのとき新卒)が参加したとき、
Javaのwebエンジニア(3年位やってると言っていた)が一人いたのですが、
僕「Javaのフレームワーク何使ってるんですか?」
その人「ちょっとあんまり詳しくないのでわからないです。」
僕「(えぇ…3年やってんでしょ…)」
となりうんざりしました。
Javaエンジニアを語る上でフレームワークは外せないと思いますので、
自分の使っているフレームワークくらいは知っておきましょう。
(フレームワークは使ってないよ!といえるだけでも、「あ、そうなんだ」となりますので!)
2.ライブラリについて
続いて、ライブラリについて。
たくさんありますよね。ライブラリ。
Javaの有名どころのライブラリだと、MockitoとかGuavaとかでしょうか。
ライブラリもフレームワークと同列に考えてもいいくらい重要です。
フレームワークの説明で、「コーダーが書かなければならない膨大なコードを簡略化、手助けしてくれる」と書きましたが。
ライブラリも同じ、むしろイメージしやすいんじゃないでしょうか。
ライブラリは便利メソッドの集合体だと思って良いです。
「これ、毎回書くのめんどくさいな…こんなメソッドあったら便利なのにな…」
となったときはライブラリをググって調べて導入を考えてみましょう。
Guavaとかで検索すると「こんなことできるんだ!」ってイメージし易いですよ。
もちろん、プロジェクト内での同意が必要なのでそこはお忘れなきよう!
コードを書いているみなさんが「めんどくさい」と思っていることを補助してくれるライブラリがあり、
きちんと公式でサポート、メンテナンスがされているライブラリであれば導入する価値アリです。
ライブラリの導入経験は結構ドヤ顔できます。
なんて言っても、周りの人に「助かるわー」と評価されますし、社外でも「あ、そんな経験あるんだ。ちゃんとしてますね。」って評価されます。
まぁ、そんな大量に導入されても困るのですが…経験としては美味しいですよ。ライブラリ。
フレームワークは、基本変わるものではないのでw
3.オブジェクト指向について
Javaを調べれば大体出てきますよね。オブジェクト指向という単語。
オブジェクト指向というのは、すごく簡単に言うと「役割によってメソッドやクラスをちゃんと分けましよう。でも、まとめられるところはまとめましょう。」っていう話です。
これJavaに関わらずとも言える話なのですが、書いたコードっていうのはもちろん周りの人も見ます。(僕はソロでしか開発しないんだ!これでいいんだ!って人を除いて。)
そのとき、如何に読みやすいか、改修が入れやすいかってところに直に効いてくるのがこのオブジェクト指向。
例えば、コードに関わらず、文章で、
朝起きて歯を磨いて顔を洗ってご飯は目玉焼きを食べて家でた
って一文で書いているよりも、
朝起きる。
歯を磨く。
顔を洗う。
朝ごはんは目玉焼きを食べる。
家を出る。
って書いてあるほうがパッと見わかりやすいじゃないですか。
コードも同じで、機能や役割によってクラスやメソッドはしっかり切り分ける。
目安として、
・インデントが深い
・1行がやたら長い
・何回も同じコードを書いている
などがあったら、部分的にメソッドを切り離すなどを考慮したほうが良いです。
あとは、前述した、フレームワークやライブラリに任せられるとこをは任せる、というのを徹底していれば大丈夫。
もっちょい深く知りたい方はJavaの「デザインパターン」などを調べれば、Javaを書く上でわかりやすいクラスの作り方などがわかりますよ。
以上、Javaエンジニアのキホンのキでした