信頼はずっと、挑戦はもっと。

お問い合わせ
TEL:03-3496-3888

BLOG コアテックの社員ブログ (毎週月曜~金曜更新中)

2019

22

11月

新人プログラマーが仕事を振られた時にやった方がいいと思うこと =後(プログラム改修編)=

テクログ

こんにちわ。パグと申します。

前編はこちら→

https://core-tech.jp/blog/article469/


今回は新人プログラマーが「WEBサイトの改修」を命じられた場合の、具体的な作業工程を書きます。

もしもあなたが1〜2年目の新人、新卒で、作業をまとめて大量にふられたときに、

何からしたら良いのか、わからなくなってしまったら、「情報を整理すること」から始めてください。


1.調査をする


メモ書きなのか、きちんとした仕様書で来るのかは不明ですが、仕様の確認フェーズでは、

・修正をする範囲を洗い出す作業

・QAを洗い出す作業

の2点を行います。


例えば、このページにバナーを追加してください、といった作業の場合・・・

・PC/SPなど両UAに入れるのか?

・類似画面がないかを確認します。画面名指定のない場合は同じような画面がないか、など

QAとしてリーダーやお客様に確認します。


例えば、このページのこの情報を削除してください、といった作業の場合・・・

・その情報はTBLから出力されているのか、ベタで書いてあるのか

・TBLから情報を出している場合は、使用しているカラムや文言で、プロジェクトファイル全体をGrepし、

影響範囲をメモなどにまとめておきましょう。そして、その内容に誤りがないか、

QAとしてリーダーやお客様に確認します。


紐づく情報でGrepしたり・・・、類似Contollerを探したり・・・

それらをまとめてQAで出し、自分が実際作業に入る前に聞きたいことをまとめておきます。

ここまでが調査のフェーズです。


2.詳細設計をする


通常、詳細設計の前に基本設計や方式設計などをすると思いますが、今回はPG向けに

記載しているため、事前にそれらが完了していることを前提に書いています。

設計工数を取ってくれるチームの場合は、設計書のテンプレートがあると思いますので、

それに従って行いましょう。設計工数をくれないような小さな作業の場合は、

修正対応するContollerやClassに、コメントで作業をかいていきます。


//XXXModelを呼び出す
//Dataを加工する
//Viewに渡す


などのコメントを記載したら、もっと細分化します。

//XXXModelを呼び出す
//Model内のメソッドの In(変数はXXID)//Outはどんな形か
 //Notfoundの場合はどうするか
//Dataを加工する
//1の場合はXXという文字列にする
//2の場合はXXという文字列にする・・・
//Viewに渡す
//渡す変数が未使用か調べる
//どのような形で渡すか・・文字列なのか、配列なのか、オブジェクトなのか・・・


まとめて考えて混乱する場合は、とにかく細分化していきます。

特に良く見るのが、AJAXの機能を書こうとして混乱している人です。

AJAXの場合、JS、PHP(などのサーバーサイド言語)、HTMLと分かれているので混乱するかと思いますが・・・

こんな風に分割します。


HTML
・どんなタグがトリガーになるか、Classなのか、Idで呼ぶのか、どんなイベントか
・どこに値を戻すのか、Divなのか、Spanなのか、それとも何かの子Nodeなのか
JS
・イベントをかく、ボタンクリックなのか、値変更なのか
・イベント詳細を書く、Inは何かOutはどうしたいか、GetなのかPostなのか、どのURLに渡すのか
・想定する文字列が戻ってきたら、どこのタグに出力するのか
PHP(サーバーサイド言語)
・PostまたはGetでなにを受け取るのか、それとも受け取らないのか
・受け取った値をどうするのか(例えばModelなどを呼び出し値を取得するとか)
・Outするときに加工するか(RestContollerなどの場合はResponse戻しやEchoしないと出ない場合などに気をつける)


上記を順番に書いていき、自分が理解のできる「最小の処理」まで分解します。

基本的に「代入とIF文と繰り返し」が書ければほとんどの処理がかけます。どんなに大きな案件も、

代入とIFと繰り返しで成っています。(これはあくまで自論です。)

なので、新しく触った言語で一番最初に覚えることは、代入方法、分岐の書き方、ループの書き方です。


3.細分化された単位にPGをあてていく


細分化すると、何度も書いているような処理は、関数にしたほうがいいな、とか

細かいところが見えてきます。

あとは、書いたコメントと同じ処理をPGで1行1行書いていくと、作業が完了します。

このときに絶対に焦ってはいけません。焦って色々な方向に気を散らすと完成しないので、

自分が最小化させた単位でかける部分だけをどんどん書いていきます。

うまく書けない部分は飛ばしても良いのです。


4.細分化した単位でテスト仕様書を作成する

単体テストっていうのは、PG単位でのテストです。

手動でやってませ〜んとか言わない。そいうことじゃない!!

プラスで、修正していない範囲のテストができていれば完璧です。

テスト仕様書を書きながら、うまくできなかった部分や、考慮が足りない部分を修正して、CD完了です。


最後に

詳細設計の工数をくれない案件も少なくはないですが、

いきなりプログラムを書き始めるよりも、コメントでも良いので、詳細設計をしたほうが、

結果的に戻りが少なく、矛盾が少なく、工数的には短く済むので、案件をもらうととりあえず

パニックになる人は、調査と詳細設計をぜひやってみていただきたいと思います。


次回は新規作成編を書きます。


ではまた・・・。

この記事を書いた人

マスオさん

パグ

所 属:
WEBインテグレーション事業部
出身地:
田舎
仕事内容:
システム開発