開発フローを守る小さな工夫——面倒なコードを「便利」に変える方法
ソフトウェアを開発していると、書くたびにイライラさせられるコードに出会うことがあります。見た目の醜いコードの断片や、どうしても書き方を思い出せず、コードベースの別の場所から例を探してコピー&ペーストすることになる行など。こうしたものは開発の流れ(フロー)を断ち切ってしまいます。だからこそ、それらに気づき、もっと使いやすくすることが大切なのです。
典型的な例:Railsでのカスタム設定の読み込み
たとえば、Railsアプリで独自の設定が必要になる場面はよくあります。アプリ固有の設定項目を追加したいときや、利用しているライブラリがconfig/ディレクトリ内の設定ファイルを読んでくれないときなどです。通常は、次のようなYAML・ERB・File.read・Rails.envを組み合わせた一連の処理を書くことになります。
YAML.load(ERB.new(File.read(Rails.root.join('config', 'google_analytics.yml'))).result)[Rails.env]
しかし、これはかなり無理のある書き方です。しかも、うっかりERBを忘れてしまうと、予期しないタイミングでエラーが発生し、デバッグに時間を取られてしまいます。
シンプルなSettingsクラスで解決
私たちのコードベースでは、この操作を簡単にするためのシンプルなSettingsクラスを用意しています。
require 'settings'
GoogleAnalyticsSettings = Settings.new(:google_analytics)
GoogleAnalyticsSettings.google_analytics_id # => "UA-XXXXXXX-1"
Settingsは、config/ディレクトリから対応する設定ファイルを自動的に見つけます。その後、YAMLとERBを通して内容を処理し、Rails.envを使って現在の環境に合った設定を取得します。最後に、全体をOpenStructでラップすることで、トップレベルの設定値へスマートにアクセスできるようにしています。基本的なSettings実装のサンプルは公開されているので、参考にしてみてください。
小さな便利さの積み重ねが大きな快適さに
実装はごくシンプルですが、その効果は絶大です。あの長いファイル読み込みの処理を毎回書いたり調べたりするより、Settings.newと書く方がはるかに覚えやすく、間違いも起きません。こうした小さな便利さの積み重ねこそが、コードベースでの日々の作業をずっと楽しく、快適なものにしてくれるのです。
あなたのコードの中にも、「毎回イライラする」「フローを断ち切られる」「書くたびに例を探さなければならない」ような箇所はないでしょうか?一度立ち止まって、それをもっと使いやすくする方法を考えてみてください。その小さな投資が、将来の自分とチームの生産性を大きく高めてくれるはずです。
-
Discordをもっと快適に!生産性アップにつながるおすすめ設定5選
ゲーム好きなら、「Discord」という名前を一度は耳にしたことがあるはず。Discordはゲーマーにとって最高のプラットフォームであり、音声・ビデオ・テキストを使って他のメンバーと自由にコミュニケーションを取ることができます。友人グループとつながり、ゲームはもちろん、音楽やアートなど共通の趣味について語り合えるのも魅力です。 かつては主にゲーマー向けのサービスでしたが、現在では企業や暗号資産投資家など、さまざまなコミュニティにも利用が広がっています。Skypeのようなチャットアプリとして、人やコミュニティとの距離を縮め、新しい世界との出会いをくれる存在です。さらに嬉しいのは、Faceboo
-
PCのプライバシー設定でプライバシー痕跡(トレース)を削除する2つの方法
インターネットを閲覧すると、ブラウザはCookie、キャッシュ、その他の一時ファイルとしてさまざまな情報をパソコンに保存します。これらの情報は、閲覧履歴に基づいた検索候補の表示や、データをサーバーではなくハードディスクから読み込むことでページ表示を高速化するために活用されています。しかし、こうした利点がある一方で、プライバシーに関する痕跡が悪意のある第三者に収集・悪用されるリスクも存在します。そのため、閲覧履歴やその他のプライバシー痕跡を定期的に削除することが重要です。本記事では、その方法を2つわかりやすく解説します。 パソコンのプライバシー設定からプライバシー痕跡を削除する手順 ブラウザごと