最近寒くなり、ますますインドアが加速している福岡在中のSEです
2月から新規プロジェクトが始まるのですが、今回はオンラインの新規画面数が多いため
一足先に要件確認と、基本設計を少しずつ手を付け始めてます。
JavaGoldを去年取得しましたが、製造でしかまだ実践できていなかったので
今回は、システム設計でどこまで活かせたかを話したいと思っています。
設計で役に立ったこと
1 セキュリティコーディング
2 共通部品の検討
3 製造工数の算出
1
セキュリティ対策
「現場で活きる!Java Gold」でもお話しましたが、製造の経験が浅かったとき、十分にセキュリティ面を考慮したコーディングすることが出来ていませんでした...
それはJavaアプリケーションにおけるセキュアコーディングについて具体的に何を気を付けたらよいのか、それはどこから学べばいいのか分からなかったからです。
JavaGoldを学ぶことで実務に活かせた知識
①整数オーバーフロー攻撃への対応
② 機密情報の扱い
③DoS攻撃対策
新規画面を製造するにあたって、今までにない機能を追加する箇所がありました。
つまり、新規機能に対するセキュリティの検討が必要でした。
もともとシステム側で講じているセキュリティを理解した上でどのタイミングでどのような対策を取るべきなのかを設計の時点で記載しておけば、より仕様の意図を理解した製造をチーム全員が同じ認識で行えると思いました。
具体的なJava側でのセキュリティ対策ってどんなものがあるのか興味を持った方は、
ぜひ上記①~③を調べてみてください!
2
共通部品の検討
今回追加する画面のロジックでは、新規画面共通する処理がいくつかありました。
(例えば、取得したコードが何のデータの主キーかを判別する等)
それをそれぞれの製造担当者がコーディングするよりも、JavaがもつストリームAPIを使った共通部品を作れば、より可読性と保守性が上がるのでは、と考えれるようになりました。
これはJavaGoldの資格範囲である「ストリームAPI」という存在を知っていたからだと思います。
IF文やFor文を使うよりも速く正確な機能であるため、処理を共通化できる手段があることは
プロジェクト全体の工数削減にもつながると実感しました!
3
製造工数の算出
今回オンライン画面と機能がメインとなるプロジェクトだったので、新規で増員すべき人員をどれほど確保すべきか検討する必要があったきに役立ちました。私の一画面製造工数を参考に人員の確保をして頂いたからです。
資格を取得することで、客観的に以下のことが分かるため、
工数の算出に合わせたとそれに合わせた人員の確保がスムーズにできました。
「Java Silver」取得者 = 言語の理解は十分 つまり、コーディングでのバグ発生数が少なくなる
「Java Gold」取得者 = 仕様の意図を理解して実装・提案できる
つまり、コーディング以外のプラスアルファを求めることが可能(即戦力)
今回はプロジェクト期間も短い中、かなり厳しい状況ですが、
やはり資格をもっているということで、客観的に自身の能力を証明することができるため、タスク分けや、事前の工数の算出にも不要な時間を削減することにつながったと思います。
それに正確な工数が分かれば、稼働の調整ができるため、期日前に高稼働にならずに済みそうです...!!
最後に
プログラミング言語についての深い理解は、設計の際の思考の幅を広げることにつながり、
今まででは指示を受けて消化するだけだった作業に対して、よりよくなるような提案ができるようになりました!
新たなステップに到達することが出来たと思います。(脱!指示待ち人間)
まだタスクを振られて消化するだけではなく、そのタスク自体がもたらすシステムへの影響を
踏まえた検討・提案ができたら最高ですね...!
ここまで読んで頂きありがとうございました!
これを読んでくれた方の勉強の励みになれたら嬉しいです!
ではまた!!