# リファクタのポイント ## 変数の命名(名前の付け方) * スネークケースで記述する ○:target_date ×:target-date ×:targetDate * 何が代入される変数なのか明確にする ○:部署名 → department_name ×:部署名 → department ×:部署名 → name * 複数の要素を取得する場合は複数形で記述する ○:複数の部署名 → department_names ○:1つの部署名 → department_name ## 関数の命名 * キャメルケースで命名する ○:getTargetDate ×:GetTargetDate ×:get_target_date * 何に対して、何を実行する関数なのか明確にする ○:getColdDrink △:getDrink ×:get ×:getItem * 複数の要素を操作する場合は複数形で記述する ○:複数の部署名を取得 → getDepartmentNames ○:複数の部署名を設定 → setDepartmentNames ## マジックナンバー * 数字自体が意味を持つもの以外は、変数に置き換える ```javascript ex. const from_month = -2 const to_month = 2 for (var i = from_month - 1; i < to_month;i++) { var text1 = new Date(); var value = text1.getFullYear()+'/'+(text1.getMonth()-i)+'/'+'01'; var text = text1.getFullYear()+'年'+(text1.getMonth()-i)+'月'; this.target_month_ons.push({text,value}); } ``` ## 不要なものは削除する * console.logやddはすべて削除する。コメントに関しては、不要なものは削除する。使用していない変数や関数も削除する。 ## インデント、スペース・改行をそろえる ### インデント | ファイルタイプ | インデント数 | | -------- | -------- | | .vue、.js、.blade.php | スペース2個 | | .php | スペース4個 | ### 改行 * HTMLのTagが長くなる場合は、適宜改行してください ```htmlmixed= <select-box v-bind:options="position_option" v-bind:selected="corporate.corporate_position" v-on:select-change="corporate.corporate_position = $event" > <option value="" disabled>法人区分位置</option> </select-box> ``` ### スペース #### .phpファイル ※詳細はPHPコーディング規約を参照してください。ここに記載していて、間違っている内容がある場合は教えてください。 参考URL:https://qiita.com/katsukii/items/e68183f14407722de9cc * 制御構文の後には1スペース ```php= if () { } elseif { } for () { } ``` * 関数は、関数名の後に改行する ```php= public function functionName() ← 改行してください { function body; } ``` #### .jsファイル、.vueファイル * 制御構文()の後に1スペース空けて"{"を書き、開業する ```javascript= if () { } else if { } for () { } ``` * 関数は、関数名()の後に1スペース空けて"{"を書き、改行する ```javascript= function functionName () { function_body; } ``` * ごめんなさい!!!行末にセミコロン";"つけてください!!!!!!!! ## リファクタする内容ごとにブランチを切ってください developブランチからブランチを切って作業してください。 ブランチ名は以下のように設定し、末尾に"_eguchi"といったように自分の名前を付けてください。 ブランチを切る例を書いておきます。 ```shell= $ git fetch $ git checkout -b develop origin/develop $ git branch admin_client_eguchi ``` これでブランチからブランチが切れます。 - [x] admin_client - [x] admin_user - [x] client_uploadfile - [x] client_uploadotherfile - [x] client_agency - [x] client_user - [ ] agency_download - [ ] agency_user * AUTHORITY TABLEのIDにユニークキー制約をつける # リファクタ一覧 ## 全般 * CreateAgencyModalを参考にして、textbox等でactiveクラスを付与している箇所を書きなおしてください。 * DBに正しく保存されていることを確認してください。 * 新規作成時には、created_user_idとupdated_user_idにログイン中のユーザーのidが保存されるようにしてください ## admin_client ### Admin.vue - [x] Searchコンポーネントの名前を変更してください。何を検索するのか分るように命名してください。 - [x] <collapsible-box></collapsible-box>を別のコンポーネントへ移動してください。(コードに統一感を持たせるため) - [ ] modalの呼び出し箇所を統一してください(これはできたらでいいです) ### Search.vue - [x] ファイル名を変えてください - [ ] ### ClientUserModal.vue - [ ] ほかのUserModalと共有できる関数を共有化してください。(新しく.jsファイルを作成し、そのファイルをimportすればできます) - [ ] created_user_idとupdated_user_idが適切に代入されるようにしてください ### CompanyModal.vue - [ ] 処理ごとに関数化してください(新規作成、編集といった粒度でOKです) - [x] clientsテーブルのcorporate_name_fullカラムに値が入力されるようにしてください ### OfficeModal.vue ### CreateClient.vue - [x] このファイルってそもそも必要ですか? --必要ではないです。私のpull requestで削除しました。 ### web.php - [ ] 顧客は顧客ごとに、事業所は事業所ごとにといった感じで、CRUD処理のルートを一か所にまとめておいてください ### controller - [ ] 各Modelに処理を記述してください。一度pull requestを受けた後にコードは見ますが、修正できるか所は修正しておいてください。 ### model - [ ] 処理単位で関数化して、再利用できる箇所は再利用させてください。 - [ ] where句では、'='の記述は削除してください