ランサーズ Advent Calendar 2016 6日目の記事です。
エンジニアのmakoです。
入社して半年経ちランサーズの開発で使用している技術について書きたいと思います。
業界として最近では使われることも多い技術や手法ですが入社前まではほとんど経験がなかったもので、ランサーズの開発は私にとって初めて実践することばかりでした。
基本的なことばかりですが、ざっくりとまとめてみました。
git
ソースコードバージョン管理です。
ブランチを切ったりマージをしたり複数のリポジトリで開発を行うことができるのでsubversionに比べて学習コストは高いと思いますが、理解できれば開発はしやすいです。
- ローカルにリポジトリが持てる。
- オフラインでも開発が可能
- リモートにまとめてpushできる。
- 簡単にブランチが切れる。
- 複数人で同時に開発ができる
- 履歴や差分が見やすい
スクラム開発
アジャイル開発の手法の一つです。
協力して問題改善に取り組み柔軟な開発がしやすいです。
- エンジニアだけでなくプロダクトオーナーやスクラムマスターと連携し柔軟な開発ができる。
- ストーリーポイントを見積もり、ベロシティを図りながらスケジュールの精度を上げていく。
- 工数の見積もりの制度が上がる。
- 一定期間のスプリントごとに振り返りを行い、問題点を確認し改善を繰り返す。
コードレビュー
お互いのコードをレビューすることで以下のことが期待できます。
・品質及びスキルの向上
・コードの属人性排除及びナレッジの共有
レビューを依頼する側(レビューイ)
レビューを受けることで、新しい観点で開発を考えることができたりプロダクトの品質を向上することができます。
- ここでは何をしたいのかゴールを明確にする
- どこの何をレビューしてもらいたいか伝える
- レビュアーが見やすいようにコミットは細かく分ける
- どうしてそのコードにしたのか目的や意図、ビジョンを明確にする
レビューをする側(レビュアー)
レビューをするために他の人のコードを読むことで、技術的学びや仕様や作りを把握することができます。
- 仕様や目的に対して適した実装をしているか確認する
- 仕様や実装で疑問に思った点を聞く
- コーディング規約に沿っているか、全体的に他箇所との整合性があっているか確認する
- ロジックに漏れがないか確認する
まとめ
ざっくりまとめてみましたが、ここで書いたことだけではなく他にも開発に応じて様々な技術が使われています。
目的に応じて新しい技術や手法にも取り組んでいきたいと思います。