この記事はいえらぶ Advent Calendar 2019 18日目の記事です。
はじめに
Qiita初めて投稿します!
簡単に自己紹介すると、主にCLOUDサービス内の一機能の開発、運用を担当しています。
開発以外にも利用率計測したり、要望をヒアリングしたり、思い出すと色々してきました。
使用言語:PHP、JS(ほぼjQuery)、MySQLとか。Node.Js勉強中。
IDE:PhpStorm
概要
入社するまでプログラミングなんてやったことありませんでした。
(ましてや、ファーストキャリアは営業だろうとなんとなく思ってました。)
そんな僕が、プログラミングを始めて、運用を担当することになり、2年ほどで感じたことを書いていきます!
当たり前だよ!って思ったら読み飛ばして下さい。少しでもためになることがあれば嬉しいです。
運用のいろは
分岐を少なくする
調査でソースコードを読んでいた時のこと
「ここで分岐してるのか、その中にもう一つ分岐があるな、またその中で関数使ってる、関数の中身はっと、、、、、また分岐してる!!!」
分岐が多い分だけ、読むのに時間がかかります。あと読む気をなくします。。
せめて関数にまとめましょう。まとめたうえで命名は適切に。
ドキュメントを残す
ER図、関数ごとの仕様書、テスト仕様書、機能のよくある質問、などなど目的に応じて整えていきましょう。
あとは「特殊仕様」。ないのが理想ですが、追加されたらドキュメントも更新を。
わりと最近、重要性に気付き始めました。ちゃんと書きます(自戒を込めて)
ちゃんとコードフォーマット
アジャイルの開発だと、数年前のソースコードとか当たり前に残ってます。
そうするとフォーマットのルールが違うなんてこともしばしば、、
ほんのちょっとのボーイスカウト精神が、後々誰かを笑顔にします。
コードレビューを「する」
コードレビュー「されて」受けた指摘を直すことで、もちろん身になります。
それ以上に、ソースコードをレビューしてみてください。
「そんな書き方があるのか!」とかとにかく気づきが多いです。めちゃくちゃ勉強になります。
要望の真の目的を理解する
何十件とあがってくる要望すべてに応えることはほぼ不可能です。
目的を把握したうえで、本当に必要な機能なのか検討する、実装しないなら別のやり方を提案していきましょう。
優先順位をつける
機能を担当してると、要望、質問、時にはバグの報告などが上がってきます。
内容によって、すぐやらないとダメ、明日までに調べる、今週中くらいでOKなど優先度は様々です。
どれをどの順番でこなすかを逐一判断して、途中で作業を移る時はどこまでやったかメモしておくと、戻る時役に立ちます。
人は忘れる生き物って誰かが言ってました。
終わりに
最初はとにかく分からないことだらけで大変でしたが、今ではすっかりエンジニア楽しんでます。
色々あげてたら、運用だけじゃなくて、仕事の進め方みたいなことも混ざってますね。
また、CLOUDサービスという特性上、読んでいただいた方によって当てはまらないこともあると思います。
少しでもためになることがあれば嬉しいです。
意見とか、異論反論、感想、などコメントいただけると嬉しいです。
最後までお読みいただきありがとうございました!
今はAPIの開発をしてるので、追々投稿しようと思います。