綺麗なコードを体で覚える
韓国語アプリがぼちぼち完成したんで、実機に転送しながら、あれこれ直してるんですよ。
実際にスマホで触ってみないと分からないことって沢山ありますよね。
まあ実機うんぬん関係なくバグは多いんですが、それらを見つけては直す作業をしております。
個人的には、リリース前の細かい修正作業が好きなんですが、これ出来るようになったのって最近なんですよ。
前は「面倒くさくて」やってなかったのではなく、「サクサク直せるようなコードを書いてなかった」から、そんなに細かくやっておりませんでした。
なんて言えばいいのかな?非常に個人的な話なんですが、今の自分のコードの方が柔軟なんですよ。
前に書いてたものはガチガチで、リリース前に思いついたことも、受け入れが難しいことが多々あったんですが、今はそのへんを柔軟に受け入れられるようになりました。
最初からあれこれ見越して書いておけるようになったってことですね。
何とも抽象的な話なんですが、そんな感じになってきたんですよ。
===
んで思うんですが、自分のコードを直すのって難しいですよね。
エンジニアとしてバリバリに働いている人たちは、自分のコードはもちろん、他人のコードまで直しちゃってるんでしょうけど、僕は自分のコードを直すのも四苦八苦しておりました。
まあ今でも内容によっては四苦八苦しますよ。システムの根本を揺るがすようなバグがあると、何もかもが破綻しますw
ただ、さっきも書いた通り、前に比べるとだいぶ直しやすくなったんですよ。
理由は「コードが分かりやすくなったから」でしょうね。
前は自分の書いたコードでも、ちょっと時間を置いて見返すと、わけ分からなくなってたんですが、最近はそれなりに分かるようになりました。
綺麗に書くために、あれこれ工夫するようになったというよりは、度重なる失敗を経て、体で覚えたと言ったほうがいいかもしれませんw
一応「リーダブルコード」とかは買ったんですよ。コードを綺麗に書くための本ですね。

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)
- 作者: Dustin Boswell,Trevor Foucher,須藤功平,角征典
- 出版社/メーカー: オライリージャパン
- 発売日: 2012/06/23
- メディア: 単行本(ソフトカバー)
- 購入: 68人 クリック: 1,802回
- この商品を含むブログ (140件) を見る
ただ、実際には5分ほどパラパラめくるだけで終わってしまいました。
内容はめちゃくちゃにいいと思うんですが、これ実際に何かを作る本ではないじゃないですか。なので、すぐ眠くなっちゃったんですよね。
そんなわけで綺麗にコードを書くための本は持ってますが、自分の知識としては入ってない状態ですw
んで、どうやって自分のコードを分かりやすくしてきたのかって話なんですが、それは実際にアプリをアップデートする過程で覚えてきました。
アプリってリリースした後もアップデートをするじゃないですか。それはバグの修正であったり、新機能の追加であったりで。
んで、僕もそれらを数百回くらいやってきたんですけど、どうしても上手くいかないんですよね。
直したかったバグを直せたはいいものの、今度は違う場所にバグが出ちゃったり、新機能を追加したはいいものの、既存の機能が上手く動かなくなっちゃう、みたいなことが沢山あったんです。
今思えば、それもこれも自分のコードが汚かったせいだと思うんですよ。
汚いがゆえに手の付け所が分からないし、手を付けたら付けたで、変なところと絡まってたりして、不具合を連発させてたわけです。
つまり、実際にユーザーさんに迷惑をかけながら、洗練されてきたわけですよw
ただ、その過程で少しずつマシなコードになってきたと思います。
まあコードなんてもんは、数ヶ月で変わりますよね。数ヶ月前のコードを見ると「この人下手くそなのかしら?」なんて思いますし。
とにかく、自分のコード直すのは難しいし、今でも下手くそなんですが、それを体で覚えてきたって話でした。
P.S.
コード関係なく、これは自分て人間の注意力の問題なんですが、今日までで一番恥ずかしいバグは「いきなりエンディングスタート」ですね。
初期の頃に「泳げおっさん」っていうゲームを作ったんですよ。んで、これのアップデートをしたんですが、なぜだかアプリ起動とともにエンディングが始まる仕様になっておりました。
「よくぞ全クリ出来たな。あっぱれじゃ」とか言うんですよ。アプリ起動して2秒位しかたってないのに。
これはバグっていうかなんだろう?僕って人間のバグですね。
こういうどうしようもない過程を経て、少しずつマトモになってきたと思いますw