Railsの基本はもう理解した。それなのに、なぜこんなに開発が遅く感じるのか?
Railsの根幹にある考え方はもう理解できている。動くコードを書くことにも自信があるし、コードの質、リファクタリング、優れたテストの書き方、オブジェクト指向設計についても学び始めているところだ。
このあたりまで来ると、「自分はちゃんと理解できている」「エキスパートへの道を着実に進んでいる」と感じられるようになるはずだ。振り返れば、ここまで来た道のりの長さが見え、自分の成長ぶりに満足できるだろう。
それなのに、なぜこんなに「遅い」と感じるのか? テストや保守性、設計を意識するようになった途端、何かを出荷するのに以前よりずっと時間がかかるように思えてしまう。
そもそも、高品質なコードを素早く出荷することは可能なのだろうか?
それは成長過程の証
この感覚は、何を学んでいるときでも誰もが経験するものだ。
初心者ではなくなった今、あなたのコードが取りうるさまざまな形が見えるようになっている。 1行コードを書くたびに、検討すべき選択肢が増えた。以前は気づかなかったエッジケースもテストしなければならない。
役立つスキルをたくさん身につけた。しかし現時点では、それらを使うのにまだ多くの思考が必要だ。学んだことに基づいて「正しい判断」をしていると確信するために、すべての決断を一つひとつ吟味しなければならない。
とはいえ、必ず速くなる。身につけたスキルはやがて自動化され、直感が育ち、より良い判断をより速く下せるようになるからだ。
そうは言っても、それは今すぐには役立たない話だ。では、物事を早く終わらせるために、今できることは何だろう?
段階を踏んで書く
キーボードに指を置くたびに、完璧で高品質で保守性の高いコードを書こうと執着していたら、永遠に何も完成しない。
私が行き詰まったときは、記事を書くときと同じやり方でコードを書く。 まずラフな下書きから始める。テストやコード、コメントのスケッチかもしれないし、紙にアイデアを書き出すだけの場合もある。この段階では構造のことは気にしない。頭の中にある漠然としたアイデアを整理するために、コードを使っているだけだ。
次に、そのアイデアを単純明快な実装に落とし込む。 いわゆる「動く可能性のある最もシンプルなもの」だ。完璧ではないし、ほど遠い。でも気にしなくていい。コードが動くようになったら、整える工程に入ればいいからだ。TDDでエッジケースを追加したり、明らかに悪いコードをリファクタリングしたり、名前を分かりやすくしたりする。
こうした「推敲済みの草稿」は、たいてい出荷できるレベルに達している。ただし私の場合、さらに何度か推敲を重ねることもある。とはいえやりすぎは禁物だ。すぐに収穫逓減が始まり、コードのクリーンアップにかける時間が見合わなくなる。
そして、本当に可能な限りクリーンなコードにしたいなら、しばらく寝かせておこう。数週間〜数ヶ月後に戻ってきて、もう一度推敲する。 その頃にはシステムについての理解も深まり、優れた保守性の高いコードの書き方も上達しているはずだ。だから、さらに良い仕上がりになる。
文章を書くのと同じで、そのプロセスは次のような流れになる:
- ラフなアウトライン、下書き、プロトタイプを描き出す。
- シンプルで未編集のストレートな実装を書く(多くの場合TDDに沿って、テストと一緒に)。
- その実装を少し整え、リファクタリングし、クリーンアップする。
- しばらく寝かせる。
- 戻ってきて、もう一度推敲する。
聞こえだけだと、ずっと手間がかかるように思えるかもしれない。しかし、このように段階を踏めば、自分の判断にいちいち迷うことなく、むしろ速く進められるようになる。 同じくらい良い選択肢の間で決断を延々と悩み続けることもなくなるだろう。
この記事は、アドバイスページに寄せられたTopherさんの質問に触発されて書かれました。RubyやRailsに関する疑問に行き詰まったら、ぜひそこで質問してみてください!
-
Ruby on Railsとは?初心者にもわかる仕組み・魅力・学び方を徹底解説
Ruby on Railsとは? Ruby on Rails(略称:RoR)は、世界で最も人気のあるオープンソースのWebアプリケーションフレームワークです。プログラミング言語「Ruby」をベースに構築されており、シンプルなサイトから大規模で複雑なサービスまで、幅広いWebアプリケーションの開発を支援します。 そもそもフレームワークとは? フレームワークとは、ソフトウェア開発の際に土台となる構造を提供してくれるコードやツール、ユーティリティの集合体です。あらかじめ用意された構造に沿ってコードを書くことで、プログラムが整理され、保守性も高まります。正しく使いこなせるようになれば、開発作業は格段に
-
Opera VPNを使うべきではない理由|知っておくべきリスクと最適な代替案
商用インターネットの黎明期から存在するOperaは、デスクトップPCやモバイルデバイスで数百万人に利用されている老舗ブラウザです。より安全でプライバシー保護に優れた選択肢は確かに存在しますが、競合との差別化要因となっているのが内蔵のVPN(仮想プライベートネットワーク)機能です。理論上、VPNは暗号化された接続を確立し、ユーザーのデータを覆い隠すことで、セキュリティとプライバシーを高めるものです。 Opera VPNにはどのような問題があるのか Operaの公式サイトでは、Opera VPNは「最高の無料VPN」として宣伝されており、「アクティビティを記録せず、情報も収集しない」無料ツールと