<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Air on Go言語用ポストイット</title><link>https://go.genzouw.com/category/air/</link><description>Recent content in Air on Go言語用ポストイット</description><generator>Hugo</generator><language>ja</language><lastBuildDate>Fri, 14 Apr 2023 21:33:59 +0900</lastBuildDate><atom:link href="https://go.genzouw.com/category/air/index.xml" rel="self" type="application/rss+xml"/><item><title>Airを使ってホットリロードを導入しGoプログラミング効率を上げる</title><link>https://go.genzouw.com/2023/04/14/post-366/</link><pubDate>Fri, 14 Apr 2023 08:30:02 +0900</pubDate><guid>https://go.genzouw.com/2023/04/14/post-366/</guid><description>&lt;h2 id="はじめに"&gt;はじめに&lt;/h2&gt;&#10;&lt;p&gt;PHP や Ruby といった LL 言語でのプログラミングでは大部分のコードの変更が即座に反映されます。&#10;いわゆるホットリロード機能があるため、コードを変更したあとにすぐに動作確認が可能です。&lt;/p&gt;&#10;&lt;p&gt;Go 言語はコンパイル言語であり、 &lt;code&gt;go run&lt;/code&gt; を使っていたとしても実質的にはコンパイルしています。&#10;そのため変更を反映するためには 「実行プロセスの停止」→「コンパイル」 の手順を踏む必要があります。&#10;開発中にコード変更のたびにこれを行うのは面倒なので、ホットリロードの仕組みを導入したいと思いました。&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="https://github.com/cosmtrek/air"&gt;Air&lt;/a&gt; というツールの情報をよく見るので導入してみました。&lt;/p&gt;&#10;&lt;h2 id="検証環境"&gt;検証環境&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;span class="lnt"&gt;2&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ go version&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;go version go1.20.2 darwin/arm64&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;h2 id="air-とは"&gt;Air とは？&lt;/h2&gt;&#10;&lt;p&gt;Github で公開されています。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://github.com/cosmtrek/air"&gt;GitHub - cosmtrek/air: ☁️ Live reload for Go apps&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Go アプリケーション向けにホットリロード ( Live reload ) の機能を提供するツールとのことです。&lt;/p&gt;&#10;&lt;p&gt;開発のきっかけについて作者が述べています。&#10;Gin フレームワークを使った Web サイトの開発を始めたとき Gin にライブリローディング機能がなく苦痛を感じたということです。&#10;&lt;a href="https://github.com/gravityblast/fresh"&gt;Fresh&lt;/a&gt; というツールを見つけたそうですが、柔軟性がなさそうと思い、より良いものを自作することにしたそうです。&lt;/p&gt;&#10;&lt;h2 id="特徴"&gt;特徴&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;ログをカラフルに出力してくれる&lt;/li&gt;&#10;&lt;li&gt;ビルドだけでなく、その他のコマンドも実行可能だ&lt;/li&gt;&#10;&lt;li&gt;特定のディレクトリを無視することができる&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Air&lt;/strong&gt; が起動したあとに追加されたディレクトリも自動的に監視してくれる&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="インストール方法"&gt;インストール方法&lt;/h2&gt;&#10;&lt;p&gt;&lt;strong&gt;Go 1.16&lt;/strong&gt; 以上を導入している場合は、いつものように &lt;code&gt;go install&lt;/code&gt; を使うのが良いでしょう。&lt;/p&gt;</description></item></channel></rss>