LoginSignup
3
3

More than 5 years have passed since last update.

個人的にプロジェクト作る時のディレクトリ構成とかURIとか関数名とか気を付けていること

Last updated at Posted at 2014-09-04

個人的にプロジェクト作る時のディレクトリ構成とかURIとか関数名とか気を付けていること

  • 基本的にトランザクションスクリプトが好き
  • 仕事でいいな、納得/共感出来るもの、反論出来ないものは積極的に取り入れる

基本

  • 引数は最大でも4つ
    • 4つになった時点で何かおかしいと思った方がいい
  • 一行の桁数は最大78
    • PBPまま
  • 変数/関数/クラス名はそれぞれ16文字程度をメドにする
    • 長くて伝わらないレベルなら短い方がマシ
    • たとえ長くなっても動詞-目的語-補語くらいを目安にする
  • 単一責任の法則を遵守する
    • たとえテストメソッド書かなくても、書くならどうするかを意識しておく
  • 関数の行数は別にこだわらないが、多くても50には収める
  • ファイルの行数は全くこだわらないが、2000とか超えたら何かおかしいと思う
    • 短ければいいわけではないが、長いのは何かおかしいと思うように心がける
  • ネストレベルは最大でも3
    • バグの温床

URI

  • 以下のactionが一つのファイルに収まるF/Wを選ぶべきと考えている
    • action:fileが1:1のF/Wは使わない

閲覧

  • /foo/list
  • /foo/bar/detail
  • /foo/search

新規作成

  • /foo/add
  • /foo/add/confirm
  • /foo/add/execute

編集

  • /foo/bar/edit
  • /foo/bar/edit/confirm
  • /foo/bar/etit/execute

削除

  • /foo/bar/remove
  • /foo/bar/remove/confirm
  • /foo/bar/remove/execute

ディレクトリ構成

  • 基本的にモダンPerl入門で書かれていたディレクトリ構成の影響を受けている
    • Controllerは長いのでActionにしたい
    • 用途/出力先によって、ディレクトリ構成は変える
    • 用途が限定されるVIEWなんかはそのディレクトリ配下に置く
    • Logic/ModelはSIいた時に*Logicが多かったのでそのせいかな?
    • Daoは分けたい
    • ORM使いたくないクラスタなので、SQLを分離したい
    • さすがにこの下にも色々とディレクトリ掘ります
.
├── Cli
│   └── Action
├── Dao
├── ext-lib
├── Logic
├── public
│   ├── img
│   └── css
└── Web
     ├── Action
     └── template
          ├── fp
          └── sp

関数名

Action

  • URIを繋ぐ感じで(言語によってキャメルケース/スネークケースは多い方に準拠)
    • ex. add, add_confirm, add_execute

Logic

  • retrieve_foo
    • 複数件SELECTメソッドのラッパー
    • fooには=条件、in条件など
  • find_foo
    • 一件SELECTメソッドのラッパー
    • fooには=条件、in条件など
  • create
    • INSERTメソッドのラッパー
  • store_foo
    • UPDATEメソッドのラッパー
  • remove_foo
    • DELETEメソッドのラッパー
    • これだけactionと同じ名前になってしまう。。
  • is_foo
    • 返り値が真偽値
  • calc
    • 引数から何らかの計算をする

DAO

  • select_foo
    • 複数取得
  • fetch_foo
    • 一件取得
  • insert
    • 条件なんてない
  • insert
    • 条件なんてない
  • bulk_insert
    • 条件なんてない
  • update_foo
  • bulk_update_foo

最後に

  • オレオレなので、アドバイス/感想/ご意見/批判頂けますと幸いです
3
3
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
3