- 前提: 配属の前は一人でスクラッチから書くことがほとんど。チームでコードを書くという経験はあまりない
はてなのシステムはコードが大変大きくなっているため、チーム配属後、コードの読み書きをいかに正確に早くできるかが自分の直近の課題だと思っています。「こういう風にすればうまくいきそう」というのを試行錯誤していることをまとめてみました。もっといいやり方があれば、是非コメントで教えて欲しいです。主にサーバーエンドでPerlが対象です。
- PerlのWebシステムによくあるディレクトリ構成を知る
- 今やるタスクはMVCでいうところのどこを修正すべきタスクなのか、どのディレクトリがどの役割を担っているのか
- プロジェクトのルートディレクトリから
ls
でてきとーに探してless
でてきとーに見る、というのでは(当然)当たりは付かないgit grep
などを使い、効率よく探す
- テストコードを動かす
- Perlのコードは型がないので「こうだろうか...」と疑心暗鬼に使い方を調べることが多かった
- テストコードは実際に動いて動作がある程度保証されているものなので、動かしてみたり修正することで使い方が早く分かる
- 似たような関数やクラスがあり、どれを使えばいいか分からない
- 10年単位でメンテナンスされているプロダクトなので、仕方ない部分も大きい...
git log
で調べれば、どちらが最近メンテされているかが分かるため、判断材料が増える
- システムの構成を知る
- こういう処理はmysql、こういう処理はelasticsearch、などなどデータベースでも役割が異なっているので、システムの構成を知ることで当たりが付きやすくなるかもしれない
- こういう内容が研修であって、頭の整理が付いてよかった
- 2016年度はてな新人エンジニア研修を行いました - Hatena Developer Blog
- 人に聞く
- 上記のことを考えても結局分からなかったり、判断が付けられない問題ももちろんある
- そういうときは周りのエンジニアに遠慮なく聞いたほうがトータルのコストは下がる(はず)
エンジニアとしてまだまだ感しかないので、精進していきたい...。
- 作者: Andrew Hunt,David Thomas,村上雅章
- 出版社/メーカー: オーム社
- 発売日: 2016/10/20
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (2件) を見る