2年位Railsでコールセンターアプリ的なものを作っていました。
大したことは書けませんが、この2年間で思ったことなんかを徒然と書いてみます。
その前に
どんなチームか?
電話する人たち:数十名
その人達のリーダー:5-10名程度
開発者:1-3人
デザイナがいないならWrapbootstrap
https://wrapbootstrap.com/
デザイナはいないので自分たちでどうにかする必要がありました。
のでwrapbootstrap。
18ドル払うだけで多機能で色んな画面用のテンプレが揃ってるって素晴らしいですね。
- 複数人で作っても同じようなデザインに落ち着くこと
- 使う人達もデザインが良いと喜んでくれること(別部署に羨ましいって言われた)
- 大体社内ツールで使うようなデザインがそろってるので開発が早く進められること
当時はAce Adminを使うことにしました。
カラフルで明るい印象の管理画面を作れます。
今なら無料のAdmin LTEでもいいけど、機能の豊富さが半端ないinspiniaおすすめ。
結構バグってたりしますが、頻繁にアップデートしてるので報告すると1日位でレスがきて、次回直ったりします。
rubocop先生は正義
ruby初めてだったのでコーディング規約とかどうしようかとこの辺を参考にしてました。
http://shugo.net/ruby-codeconv/codeconv.html
https://github.com/miyamae/rails-style-guide
https://github.com/cookpad/styleguide/blob/master/ruby.ja.md
ruby初心者の2人で開発していたので悩むところが多かったです。かっこの省略とかどこまでOKなんだよ? とか。
結果としては初心者があれこれ悩むくらいならRubocop先生に従おうで落ち着きました。
やってるうちにrubocop先生厳しすぎだろってところも出てくるかもしれませんが、設定変えればいいだけですし。
itamae先生素敵
chef難しい。むりぽ。
だった自分にitamae先生は手を差し伸べてくれました。
- 覚えることすくねぇ。30分くらいググればわかる
- rubyだし分岐とか自然に見えるし
守っていきたくなるプロダクト
「テストというものは、カバレッジが高ければ良いというわけではない」とか言われますが、でもやっぱり高いほうが良いと思います。
- 通ってるのだから流石にやべーtypoとかしてないだろうし
- 通ってるのだから到達可能だろうし
- 何より安心感あるし
95%くらいカバーできてたコードが一時期80%台中頃まで落ちる時期があって、
その時、開発チーム内で「これやばいよね。テストしっかり書かないと」感が醸造されたのがとても良かったと思っています。
アップデートは定期的に
gem updateしてますか?rake rails:updateしてますか?
暇を見つけて、ではなく定期的にやっておきましょう。
数ヶ月放置して「アップデートしたら動かなくなったけど何が原因かわからない」なんてザマになりかけたので。
hipchat通知でチームを盛り上げろ
他のチームがやってたので真似したのですが、チームのKPIに関連するイベントが発生した時(売上上がったぞー的な)に「xxさん担当のooが売上上がりましたー」的な通知を流すと結構盛り上がります。
嬉しい時に嬉しいって言い合える空気を作れるっていいですよね
デプロイコストは小さく保て
最初の頃デプロイボタン押してから完了までに10分くらいかかってました。
しかもたまに失敗する。
だからめちゃくちゃ怖い。もしバグってたらどうしようとか。
実際バグってたら「ごめんなさい。10分くらいで元に戻します」とか言ってたわけです。
で10分手が止まってしまう。ヘタすると戻すときに失敗して30分とか止まる。どうしても空気が悪くなる。デプロイしたくなくなる。
こんな状態が嫌だったので30秒くらいでデプロイできるようにしました。
そしたら怖さもグッと減りました。
早いからすぐ戻せる、だから怖くない、怖くないから小規模改修をカジュアルにどんどん入れられる。
高速なデプロイが好循環を作ってくれました。
その他
- N+1はrails-footnotes入れて常に意識しとけ
- 論理削除gemはincludesした時に結構ハマる
- rails guidesは神だな
- global gretel meta-tags i18n辺りをきっちり使うとdryで見通しの良いコードに
終わり
書いてみたらRailsの話殆どありませんでした。
なんだかんだでミスっても許してくれたり、自動化だ高速化だ品質アップだで時間を取ることができたのは開発者以外も含めたチームの理解があったからだよね。
といい話な感じで今年を締めたいと思います。
年末はFallout4三昧の予定です。良いお年を!