skillup

技術ブログ

ドキュメント作成 プログラミング全般 未分類

新しいプロジェクトに入った時にやること

投稿日:

新しいプロジェクトに入った時に最初にすべきことややっておくことなど

仕様理解編

基本ですが、見落としがないように紙の資料は必ず印刷して考えること。文房具として消すことのできる色ペンがあるとさらに便利。

ユーザーの行動遷移の理解

図を使ってアニメ絵で以下の情報のメモ。実務に近い人がベター。

  • 行動とそれに伴う時間軸
  • 総プレイヤー(処理に関わる人、モノ、サービス)の洗い出し
  • データ(必ず生きたデータ、具体的なデータを使う)のフロー
  • 作業時の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:10pxmt10 や flex_fs_c justify-content:center,align-items:center )
  • JS頻出ライブラリ(例:ページャー、モーダルなど。また初見のものがないか調べておくべし)
  • 配列加工(ライブラリを使うのが吉。sugar.jsやlodashがおすすめ)
  • 文字列系(特に金額を扱う画面の場合は、数値をカンマ文字列、カンマ文字列を数値にする、などや半角全角汎用処理)

初見処理の洗い出し

  • JSのライブラリやミドルウェア、他新規サービスなどでハマりポイントになりそうな部分の確認

他作業系

主によくある処理の時間の短縮化です。

  • エディタの一気に入れるプラグインや設定
  • テストデータ入力装置(バックエンドではコマンド、フロントではJSONから一気に入力できるメソッドの開発など)
  • 主にデータ入力などで使えそうなWEBサービスのリスト化(CSVからインサート文の作成マクロなど)
  • 画面を通さない(あるいは省略化できる)テストデータの入力経路の確保
  • 大量データの変換処理(例:プルダウン項目が100近くあるもののyaml化処理など。プログラムを作るプログラム)
  • 他繰り返しそうな処理の工数短縮できないかの工夫(Excelマクロやフリーツールなど)

-ドキュメント作成, プログラミング全般, 未分類
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

コード静的解析ツールを使った際の気づきなど

最近のプロジェクトでコード静的解析ツール(phpcs,phpmd)を使った際の気づきなど コードを書きながら常時エディタがチェックするタイプのものでないとまず無理(保存するたびでも無理だし、コミット時 …

no image

ExcelVBAに関して(主にプロシージャ)

いつも半年ごとぐらいに触っていてあまり知識が蓄積しないので(汗)これを機につまづいたところをちょっとメモ。 Contents1 基本2 メモ3 参考リンク 基本 基本的な変数の代入や条件分岐、ループな …

no image

ドメイン決定&業務フローとの対応確認

Contents1 ドメイン決定2 業務フローとの対応2.1 実際の業務とエンティティ、画面の遷移2.2 ドメインのCRUD分析 ドメイン決定 業務フローを抽出し、エンティティを抽出した段階で次にドメ …

no image

オブジェクト指向設計 柔軟なインターフェイス

オブジェクト指向シリーズ。今回はインターフェイスについて。 インターフェイスといっても、implementsを使った実装だけではなく、要はあるクラスが外部の窓口となるときに使うメソッドってことだと思う …

no image

アプリケーションアーキテクチャについて 〜ドメインモデルに関して〜

前回のトランザクションスクリプトパターンの反省から 今回はいわゆるドメインモデルの具体例に関して。 ドメイン駆動型設計には以下のような特徴があります。 大きく、アプリケーションの構成を以下のように分け …