😸
Rubyコーディング時に検討すること
フォーマット
コーディング時に以下のフォーマットを使用すると、どこから手をつけるか考えやすい。
## 意識すること
- 目標時間を決め、タイマーをかける
- ゴールと方針を日本語で書いてからコードに手をつける
- 時間内に終わらなかったら、もう一度やりたいことを書き出してみる&オーバーした理由を書く
## 書く前に考えること
### 仕様を分解する
1. 追加の仕様が必要となる背景を把握
- どういう立場のユーザーが
- いつ、どんな頻度でその機能を使い
- その機能を使ってどんなことをするのか
2. 現状を把握する(既存のコードがあれば)
3. 追加仕様を把握する
1. 追加仕様
2. 追加仕様を機能に分割化
3. 現状の機能との差分を確認
4. 機能をタスク化して優先順位を決める
1. タスク一覧
2. タスクの作業時間を見積もる
3. タスクリストをレビューしてもらう
### コードの構成を考える
1. 入力と出力を考える
2. データ構造を考える
3. テスト構成を考える(正常系、異常系、セキュリティ)
4. ライブラリ探す
### ベタに書く
Fake It(ロジックらしいロジックがない固定の値を返すような仮実装のこと(メソッドとテストコードがリンクしているかの疎通確認))を意識する。
1. テストコードを書く
2. メインコードを書く
- 15分ハマってChatGPTに聞いてもダメなら、他の人に聞く
- 正常系完成したらレビューしてもらう
### クラスに分ける
### 清書する
## 書くとき
### Rubyおまじない
#!/usr/bin/env ruby
# frozen_string_literal: true
## push前にチェックすること
- [ ] rubocopパスしているか?
- [ ] 組み込み・標準添付ライブラリの単語を使っているか?
- [ ] クラスは名詞、メソッドは動詞か?
- [ ] 頻出名詞をクラスに抜き出す
- [ ] ハッシュテーブルによる分岐数削減
- [ ] push先とpushするbranchは正しいか?
- [ ] PR先は正しいか?
- [ ] 引数のないメソッドは可読性のためインスタンス変数っぽく名詞の名前をつけているか?
- [ ] 1メソッドは五行以内に収めるているか?
- [ ] DRY原則("Don't repeat yourself")に従っているか?
Discussion