##COC(Convention over Configuration)
「設定より規約」
「設定がほとんどの場合で共通ならば、その設定をアプリケーションのデフォルトにすべきである」という考えに基づいている。
メリット
- 他言語のように多くの設定ファイルを書かなくて良い。
- 共通ルールに則ってエンジニア同士のコミュニケーションがスムーズになる。
####命名ルール
データベースのテーブル名はモデルのクラス名の複数形にする。
モデル / クラス | テーブル / スキーマ
Article | articles
LineItem | line_items
Deer | deers
####スキーマのルール
- 外部キー:カラムはテーブル名の
単数形_id
にする必要がある。
(例:item_id
、order_id
) - 主キー:デフォルトでは
id
という名前のinteger
カラムがテーブルの主キーに使われる(PostgreSQLやMySQLではbigint
、SQLiteではinteger
)
##DRY(Don't Repeat Yourself)
「同じことを繰り返さない」
メリット
- 変更があったときに何箇所もコード修正をしなくて済むのでメンテナンス性が高まる。
##REST(Representational State Transfer)
**「すべてのリソースに一意となる識別子(URI)がある。」
「URIを通してリソースを操作する手段を提供する」**という考え方を基盤とする。
概念 RESTfulなメソッドとURL
記事を投稿する POST /articles
記事(ID=1)にコメントを投稿する POST /articles/1/comments
記事(ID=1)を更新する PATCH /articles/1
記事(ID=1)のコメント(ID=1)を更新する PATCH /articles/1/comments/1
記事(ID=1)を削除する DELETE /articles/1
ユーザ(ID=1)のパスワードを更新する PATCH /users/1/password
####RESTの反対はRPC
?の後ろに問い合わせを&でつないで表現する方法。
例:http://example.com/index.php?action=prefecture_list&id=1
##参考