3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

駆け出しエンジニアに与えられがちなタスク

Posted at

##メーカーの社内SEになって、早一年

 こんにちは、ひかるです。私はとあるメーカーに、社内SEとして新卒入社しました。大学時代はプログラミングなんてやったことがなく、入社後の研修で知識を詰め込んだのですが、まあ現場ではなかなか通用しないこと……
 今回は私がそのとき、現場で先輩からもらったタスクの一部を紹介します。こういった「初心者がもらえる仕事」というのは、どこの職場でも似たようなものだと思ったので、何かしら参考になればと思います。なお、私の職場は、言語はJava、テンプレートエンジンにStruts、ビルドツールにAnt、バージョン管理はCVSと、レガシーな環境ですので、その点を踏まえていただけると幸いです……

##①画面に入力項目を増やして、DBに登録してくれ

先輩「ユーザーから、製品の在庫区分を追加できるようにしてくれって要望が来たから、実装してね」
一年目私「はい(白目)」

 ありがちなタスクですね。画面に入力項目を増やして、それをDBに登録するという実装です。このタスクでは以下の知識が求められます。

  • htmlとテンプレートエンジンの連携における仕組み
  • DBに値を永続化するO/Rマッパーの使い方

初心者にはテンプレートエンジンとかO/Rマッパーなんて言葉は聞きなれないですよね。平たく言うと、テンプレートエンジンは、画面に入力した値を次の画面に持っていくための仕組みで、O/Rマッパーはデータベースと入力した値を結びつける仕組みです。

 この二つがないと、せっかくユーザーがせっせと入力した内容も、次の画面に移ったら綺麗さっぱり消えてしまうし、登録ボタンを押してもその内容がデータベースに反映されなくなってしまう。

 つまり典型的なCRUD処理の基本を押さえ、理解しておけばいいのです。そのためには、簡単なアプリケーションを自作してみることをお勧めします。今はQiitaやUdemyでいくらでもやり方を学ぶことができますし、ひとまずはコードを写経してみて、動く喜びを味わってみてはいかがでしょうか。学習のコツはプログラムが動いてから、理解するです。これが逆だとアウトプットが遅くなって実戦的な力が身に付きません。モチベーションの維持も大変です。

 駆け出しエンジニアの方は、そういった「画面上の値を保持する仕組み」に焦点を当てて学ぶと良いと思います。大丈夫、私も最初はさっぱりわかりませんでしたが、今はなんとか仕組みを覚えてやっていますから。

##②ユーザーが間違えて入力しないよう、バリデーションを設けてくれ

先輩「誤った値をユーザーが入力してしまうケースが多発している。そんなことがないように、次画面に遷移する前にチェック機能を設けてくれ」
一年目私「はい(白目)」

 このチェック機能はとても大切です。ユーザーは人間ですから、画面上の入力を常に正しく行うとは限りません。例えば製品名を**「HOGEHOGE2012」と入力すべきところを「OGEHOGE2012」**と先頭のHを抜かして入力してしまうかもしれません。

 では、どうやったらそれを防げるでしょうか?

 私は「HOGEHOGE2012」と入力すべきところを、と言いました。つまり入力には正解があったはずです。ということは、その正解をあらかじめシステム上で登録しておき、時と場合によって、その正解と入力を照合すれば良いのです。

 バリデーションを設けることはシステム開発において基本中のことですが、大事なのはいかに正解の基準をアプリケーションに定義しておくかです。先ほどの製品名で言えば、マスタ(≒ひな形)にあらかじめ正解の製品名**「HOGEHOGE2012」を登録しておき、入力するときにその正解と内容を照らし合わせる。で、少しでも間違っていたら「OGEHOGE2012」なんてねえよ!**とエラーを表示させる。そこでユーザーは間違いに気が付くわけです。

 具体的には、製品名でデータベースを検索し、ヒットしなかったらエラー。ヒットしても、その画面で入力すべきデータでなかったら、やはりエラーを出す。例えばこの工程では**「HOGEHOGE2012」が正解であって、「FUGAFUGA2019」**は間違いですよ、と。その判断をするためには工程と製品をあらかじめ結びつけておく必要があります。

 ただ、そこまでやるくらいだったら、データベースから必要な値(製品名)を引っ張ってきて、プルダウン形式で選ばせる方が間違いはありません。今回はあくまでバリデーションという点に注目して説明しましたので、その方法は無視しています……

 初心者の方は、If文の使い方や、型の特性等を理解することも大事ですが、どこから正解を引っ張ってくるかというこにも注目してみてくださいね。

##終わりに

 初心者はわからないことだらけでしんどいと思います。私は今でもそうです(笑) ただね、少しずつわかってくると、視野が広がっていって、「ああ、こういうことだったんだ」と納得できます。そのときまでどうかあきらめないでくださいね! 

3
4
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
3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?