新しいプロジェクトに入った時に最初にすべきことややっておくことなど
Contents
仕様理解編
基本ですが、見落としがないように紙の資料は必ず印刷して考えること。文房具として消すことのできる色ペンがあるとさらに便利。
ユーザーの行動遷移の理解
図を使ってアニメ絵で以下の情報のメモ。実務に近い人がベター。
- 行動とそれに伴う時間軸
- 総プレイヤー(処理に関わる人、モノ、サービス)の洗い出し
- データ(必ず生きたデータ、具体的なデータを使う)のフロー
- 作業時のTPO(時間、場所、状況)
- 作業発生時のイライラ(修正ポイントや仕様変更ポイントになりやすい。)
キー系のデータの理解
キーになるデータ(主にコード系)はデータや行動遷移の鍵になる場合が多いので別色で確認。
特に商品に複数のコードがある場合、コード数=関連するプレイヤー数になることが多い。
データグルーピング
上記行動フローに伴う中での物理的なデータ(テーブル図)の関連の理解、また近いデータの組み合わせや連動するデータのグルーピング。
サンプルパターンの洗い出し
TDDに近いのかもしれませんが、実データでどんなパターンがありえるかの洗い出し。単体テスト仕様書などがあればベスト。
技術編
プロジェクトの全容がわからなくてもできることなどに関してメモします。
共通・汎用系処理の確認
全プロジェクトでよく出る共通処理の確認。なければ作っておきましょう。(だいたいどのプロジェクトでも似たようなものが出てくるので自分なりの頻出パターンをGitHubなどでまとめておくと良いです。)
バックエンド
- バリデーションの処理パターンの抽象化
- 親クラスで頻出処理(主にDBの頻出処理とテーブルの変数化、マスターのkey-value系の出力)
- SQLヘルパー(特に検索系。イコールや、from,toパターンを1行でかけるように)
- DBのリレーションパターンの記法(FW独自の書き方がある場合。1:N、N:1、N:Nのパターンでどのように書くか)
- CSV、メール系、PDFなどの専用クラスの作成
- 例外クラスの作成
- 配列加工系(今だとCollectionでFWに搭載されているのでよく出る記法を調べておくと良いかも)
- 日付(よく出るパターンをチートシート化しておくと良いかも・・・)
- 文字列加工
フロントエンド
- select,radio,checkなどのHTMLヘルパー(選択肢を渡して、1、2行で記述できるように。)
- css 頻出パターンの省略記法
( margin-top:10px→mt10 や flex_fs_c → justify-content:center,align-items:center ) - JS頻出ライブラリ(例:ページャー、モーダルなど。また初見のものがないか調べておくべし)
- 配列加工(ライブラリを使うのが吉。sugar.jsやlodashがおすすめ)
- 文字列系(特に金額を扱う画面の場合は、数値をカンマ文字列、カンマ文字列を数値にする、などや半角全角汎用処理)
初見処理の洗い出し
- JSのライブラリやミドルウェア、他新規サービスなどでハマりポイントになりそうな部分の確認
他作業系
主によくある処理の時間の短縮化です。
- エディタの一気に入れるプラグインや設定
- テストデータ入力装置(バックエンドではコマンド、フロントではJSONから一気に入力できるメソッドの開発など)
- 主にデータ入力などで使えそうなWEBサービスのリスト化(CSVからインサート文の作成マクロなど)
- 画面を通さない(あるいは省略化できる)テストデータの入力経路の確保
- 大量データの変換処理(例:プルダウン項目が100近くあるもののyaml化処理など。プログラムを作るプログラム)
- 他繰り返しそうな処理の工数短縮できないかの工夫(Excelマクロやフリーツールなど)