intellij ideaでgo modulesを使おうとしたら認識しなくてハマった
intellij ideaで久しぶりにgolangを書こうと思ったらgo modulesがうまく認識されなくて手間取ってのでメモ
状況
適当にディレクトリを作成しgo mod init xxxx
して、そのディレクトリをintellijで開いた
環境に$GOPATH
が定義されているのでそっちが優先されて?go.modを認識してくれず、go.modに書かれている依存が解決できない
解決方法
go modulesの機能を有効にする
最近はデフォルトで有効になっているらしいが一応確認。ちゃんと有効になっていた。
$GOPATHを使わないようにする
設定されている$GOPATH
を使うのチェックを外す必要があった(この辺自動で認識して切り替えてくれるもんだと思ってた)
ここのチェックを外すとgo.modに書かれている依存を認識してくれるようになった
astroを実践投入してみた
所属企業のHPのホスティングサービスを引っ越ししようとしたら、最新LTSのnodejsでビルドできなくなっていて会社に相談した所手を入れる時間を確保できたのでライブラリのアップデートなど色々手を入れてみた。
tl;dr
astro簡単に導入できたし、アイランドアーキテクチャとして色々なコンポーネントを使えるの面白い*1
ただしgoogle analyticsだけは動いてるけどまだ完全には解決していない。
そもそもの運用
元々は入社する前にwordpressで作られていたものだったが、以下の理由でwordpressの使用をやめた
- 社内にwordpress知見を持っている人がおらずバージョンアップが躊躇われた
- バージョンアップして壊れた時に対応できる時間があるとは限らない
- そのせいで対応が遅れてしまう
- ページ数も5ページほどしかなくwordpressはオーバースペック
そのためsassで書かれたcssなどをwebpackでbundleして、それをwordpressが生成したhtmlから読み込んで運用していた。
改善部分
生のhtml運用だったのでhead
タグ内などを書き換えたい時にページ数分書き換える必要があるので共通部分は共通化したかった。SSIなども考えたが、サーバー用意するのが面倒なのでSSG一択。
そこで話題になってたastro触って見ようと思ってたらいつの間にか2.0が出てしまっていたので、触ってみていい感じだったのでそのまま導入した。
astroの面白かった所
入門的な記事はいっぱい出てくるだろうから面白いと感じた所を抜粋
astroのフォーマット
説明のためにastroファイルの書式はこんな感じ
Components 🚀 Astro Documentation
--- // componentなどのimport文等 import Layout from './layout.astro' --- <!-- domを普通に記述 --> <Layout> <h1>Index Page</h1> </Layout> <style> h1 { color: red; } </style>
アイランドアーキテクチャ
astroの中にはreactやsvelteなどを同時に扱う事ができる
--- import Foo from './Foo.tsx' import Bar from './Bar.svelte' ---
これによって過去の資産使いまわせたり、一部をsvelteで書いてみるなどというお試し導入が簡単にできるのが良い
ssg
本題のssgに関してastroは基本的には静的なものの生成を目指す。例えばreactで書かれたコンポーネントを配置しビルドした時には、jsはビルド時のみ実行されレンダリング結果がビルド結果としてアウトプットされる
コンポーネントをクライアントで実行したい場合はclient:only
をつける必要がある*2
<SvelteComponent client:only />
Template Directives Reference 🚀 Astroドキュメント
scriptタグ
frontmatter的な部分はサーバーサイドで実行されるが<script>
タグで囲んだものはastroによって自動的にbundleされる
スクリプトとイベントハンドリング 🚀 Astroドキュメント
この当たり考えなくてもastroが裏で勝手にやってくれて賢い
astroの困った所
google analytics
全く気づかなかったがgoogle analytics見たらうまく動いて無さそうだった。 そこで調べてるとastroのメンテナーさんの記事が出てきてPartytown経由で実行すると良いらしい
これで一応取れていたので一旦様子を見ている
今後
全ページのcssを1つのcssとしてビルドし読み込んでいるので、これを分解していきたいとは思ってはいる。
ただページ数が少ないのもあって全ページのcssをバンドルしてると言っても、そこまで大きなサイズになっていないので特に困っていない。
astroのプロジェクトを試しに作成したりしてみたのも含めて、大枠の移行を1日で完了できたくらいには簡単に移行することができたのは良かった。
振り返って
wp剥がすことを決めた当時に話していた「ちゃんとwpアップデートの面倒を見てくれる人員を確保できている時のみ自社でwpを運用すべきなのでは」という会話を思い出した。
定期的に見直すものでもないので自分たちでアップデートできないなら制作会社だったりが管理してくれるならお金払ってやってもらったほうが良さそうだよね*3
もしも会社のHPを改変されたらというのを考えてみたが、自分は住所入力のための会社概要しか見ないので気づける気がしないな
サードパーティ製のipad用のペンシル買ってみたのでレビューする
数年使ってるipad mini 5だとpdfの資料が見づらい時があったので、ちょっと前にipad airを購入した。
— ゆず🍦 (@yuzu_441) 2023年1月4日
イラスト描かないし第二世代ペンシルいらないと思ってたがリモートで絵を書いて伝えるときにairでやりたい時が出てきて、公式のペン買うほどではないので筆圧検知が無い変わりに価格が約1/10だったのでサードパーティ製のものを買ってみた。
比較レビュー
第一世代 + ipad mini5と上記のペン + ipad airの比較なのでどこまでに当てになるのかわからないけど
若干線画が遅い気がする
試しにiosのノートアプリで適当に文字を書いてみた。不自由することは無いがちょっと線画が遅い気がする
電源のオン・オフを上部タップで行う
apple pencilの第二世代はどうなのかわからないけど、第一世代は任意のタイミングでオフにできなくていざ使おうと思うと充電切れの時がちょこちょこあった。これで充電切れ起こしにくくなるなら結構良いのかもしれない。amazonのレビューではオン・オフしづらいとあったが個人的には特に気にならなかった。
第二世代のapple pencilのようにipadにマグネット?でくっつけれる
買ったばかりでどこまでメリットかわからないけど、くっつけておけば置き場所に困ることはないので便利そう
usb-cで充電できる
usb-aだけかと思ったらusb-a to usb-cのアダプタもついていたのでusb-cからも充電できる。 公式ペンシル2だとマグネットで充電できる?のでケーブルとか持ち歩く必要性がないのはいいなと思うけど、それのためにお金出すかといわれるとうーん…
2023/03/21 追記
現在のバッテリー状態がわからない
今どのくらいバッテリー残量あるのかがわからないので全然充電してない。でもなんか使えてるのでよくわからない。
まとめ
自分と同じようにイラストを書くわけではなく四角とか丸とか線を引いて、たまに文字書くくらいの用途だと全然これで良さそう。あとはすぐ壊れたみたいなレビューがあったのでどうかな〜