Staff Blog - ラポ☆スタ

Work easy. Life easy.

久しぶりにコードを書いて思ったこと

time 2023/10/16

久しぶりにコードを書いて思ったこと

はいどうもT山です!
今回はですね、久しぶりにガツ〜とサーバー側の開発する機会あったので
そこで思ったこと、感じたこと、気をつけよってなったことを書いていきたいと思います!

当然ですがシステムって基本的に動き続けるじゃないですか?
作ったエンジニアがいなくなっても使われる限り動き続けるさだめ
そしてその面倒を見るのは、その場その場でそこにいるエンジニア…ってのもさだめですよね
それはもうしょうがない。なんで、できる限り後任者にフレンドリーな作りにしたいと思った今日この頃です
いや〜歳取るに連れて後ろに続く人のこと気遣えるようになった気がしますw(^ω^)

Contents

ログ大事。ちょー大事

まずはこれ。ほんっとこれ。ログなきゃなんもわからんです
いやコード読んだり試したりはできますよ?
でも例えば本番で不具合起きたーとかってなると、再現性の確認から始めるわけで
だからって好き勝手に本番触っていいかっていうと当然NGなわけで
そこで推測の精度を高まるためにログが必要なわけですよう
ここまで動いてる!ここからおかしい!っていう解像度がグッと上がるだけで全然チガウ
サーバー側のコードだけでなく、ネットワーク、インフラ側とか容疑者は他にもいるのが大抵なので

そこが絞れるだけで本当に違う。労力の方向性が定まるって感じ!
ちょいちょいログ一切出してないようなコードみますが
正直めっちゃ心労どぎつい中でリリースしたんじゃないかってビビりますね…
何か起きてもわからない・追えない・推測できないはクリティカルなんで((((;゚Д゚)))))))

どういった使われ方を考慮しておくか

利用者っていろんな使い方しますよね
そこをどこまで考慮するかって基本だけどやっぱ大事です
ダブルタップ、ブラウザバック、リロード、URL直アクセス、複数ブラウザでの同時操作とか
このあたり非機能要件的なオーラありますが、わりにさくってみんなやってる感じ(⌒-⌒; )
日常的にPCやスマホ使う現代なんで、わざわざそこまで仕様書に明記されることって少ないイメージ

でも操作したらできてしまうって時点でそれってほぼ仕様と同義だよなーと思ったり
だってできちゃうんだもの
使い手如何で意図していない結果が出せるのは、それはちょっと色々厳しい…

なのであくまで自分(作った人)以外がどういう使い倒し方をするか考慮せねば
利用者のスキル感、業務の流れ、どんなマイルール的活用でウルトラCな結果出しているかとか
やっぱりベースはヒアリング&考慮ですよ。これはもう変わらんです

読みやすいコードを目指せ

基本かつ極地でもある昔からの鬼難題
読みやすいってもうほんっっっま人それぞれ!
なるべく短い変数で読みやすく!…意味わからん名前だと本末転倒
同じ処理は共通化したい!…共通化が目的になって逆に読む時の難易度上がる
if文とかにつける半角スペース・改行問題!…もうこれ永遠のテーマ(宗教)だよね
シンプルに書いてね!…それが一番難しい。シンプルの定義が人によるんだもの
とかとかほんとにもうまぁキリがない
まぁ個人的に
ポイントにしてる点としては、明日自分が見てもヨシヨシって思えるかな?って視点ですね
今日完璧と思っても明日は微妙って思うこと…正直けっこうざらにあります(⌒-⌒; )
だって人だものしょうがないさ!
なんで気づいたらすぐ直す。そして気づくためには一旦コードを寝かせる、ですね
1日でがーっと作れたとしても、明日もう1回すっきりした頭で
見直してみる
そうすると不思議と結構アラに気づくんです。死にゲーやってて詰まった時は寝ろってのと同じですねw

まぁスケジュール次第になっちゃうのは業界のお約束なのであしからず(⌒-⌒; )

レビュアーに寄り添うこと

コード書くことそのものからはちょっとずれるけど、これも大事ですよね
レビュアーの方って大抵忙しいです。上長とか全体把握してる方とか「レビューできる」人がやらないと、ですからね
なんでそういった方は大概多忙。数多ある仕事に追われてる印象すらあります((((;゚Д゚)))))))

だからレビュー依頼されたコードの背景とか思想とか、そのへん細かく把握できてないと思うんです
なんでそこのサポート・気遣いですね
レビュー依頼する時の概要共有、プログラム内のコメント、どんなことに気をつけて書いたかなど
そういったレビューの物差しになりそうなことをそっと添えてあげたり、なんなら直接説明してあげるとか
そういう間接的なコミュニケーションが大事!
俺たちはコードでだって会話できるだぜ(`・ω・´)っていうことですわ!

何をどこまで自動化しようとしてるのか常に意識する

コード書くってことは何かしらを自動化したり安全・便利にしたりって目的があるかと
今までは目視確認してた、人海戦術で何とかこなしてた、とかをね
そこには無意識下でいろんな判断があったりします
それこそ仕様にまで落とせなかったけど、この時はこんな確認してたとか
さらにその確認はケースバイケースだからちょーパターンあるので自動化は現実的でないとか
じゃあどうする?どこまで対応させる?って考える意識が超ポイントと思ってます
だって便利にしたぜ!って作ったもので事故起きちゃったらダメージでかいですもん
あれだけちゃんとログ出して、使われ方を考慮して、読みやすく、レビューもしっかりしてもらったやつ
事故ってデータぶっ壊れでもしたら泣きますもん…え、作らなきゃよかった(´;ω;`)?とか思いたくない…
月並みだけど、しっかり考えて掘り下げてパターン網羅にほんと努める
んでこの時だけ絶対確実に動くぜ!っていうホワイトリストな意識で作っていくべきかなって思う
最近、決済周りでとんでも品質なコード見ちゃったので反面教師としてほんと心に刻んでおります((((;゚Д゚)))))))

いろいろ言ってきましたが、まぁ要はバランスですよ
スケジュールに沿った上で
仕様や目的をばっちり満たせて
今後このコードを読むことになるだろう、まだ見ぬ誰かに思いを寄せ

作ってよかったなと満足感をも目指して手を進めていき
そして定時に上がる(`・ω・´)!
理想論?そりゃそうです。理想はバランスよい今(足場)があってこそですからね!

そんなこんなを思った今日この頃でした!ではでは〜

down

コメントする




8 − 5 =


株式会社ラポールスターの採用情報