Skip to content

Posts

VS Codeでブラウザ表示したい

VS Codeとブラウザを行き来するのが面倒なので、VS Code内でブラウザ表示できれば良いのでは?と思い方法を探してみた。

デバッグ作業が快適に!VS Codeにブラウザのプレビュー機能を加える機能拡張 -Browser Preview for VS Code | コリス

これでいけるじゃん、ってインストールしようとしたら、Deprecated と書かれていて、代わりにLive Preview - Visual Studio Marketplaceを使うよう誘導されていた。

Read more

Go言語のエラーラッピング

エラーのラッピングをすると何がうれしいのかという問いへの解答が見えた気がする。

ラッピングしない場合、元のエラーの文字列以外の情報が失われてしまうが、ラッピングするとエラー情報をアンラップして取り出すことができる。

失われてしまう情報が呼び出し元で必要な場合は、エラーをそのままreturnして返すか、必要な情報も含めてErrorfに書かないといけない。

Read more

良いコード/悪いコードで学ぶ設計入門

良いコード/悪いコードで学ぶ設計入門―保守しやすい 成長し続けるコードの書き方 | 仙塲 大也 | コンピュータ・IT | Kindleストア | Amazon

読み終えた。

最後のほうは、前に出てきたことの応用とかでせっかくKindleなんだからリンクしておいて参照できれば良いのに、と思った。

書いてある内容にはおおむね同意。ちゃんと言語化できるってすごい。

OpenAPI Generator go-server

Documentation for the go-server Generatorで、routerはmuxchiが選べると書いてあって、省略時はmuxとのこと。

chiの指定方法がわからなかったので調べた。

$ wget https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/3_0/petstore.yaml
$ docker run --rm \
  -v ${PWD}:/local openapitools/openapi-generator-cli generate \
  -i /local/petstore.yaml \
  -g go-server \
  --additional-properties=router=chi \
  -o /local/out

と、--additional-propertiesにつけるらしい。、 他のパラメータ、たとえばsererPortも指定したい場合はカンマ区切りで--additional-properties=router=chi,sererPort=18080こう。

Read more

sqlc

別の調べものをしていて見つけたsqlc.dev | Compile SQL to type-safe Goを試してみた。

schema.sqlは、今までMySQLの起動時に読み込ませていたSQLファイルがそのまま使えた。

query.sqlもgoのmodelパッケージ内に書いていたSQLをコピペで作れた。

結構良いかも。

Prisma

Prismaを使ってDB設計ってできるのかな、と思い調べてみた。

Prisma自体は、ORMということだけれど、スキーマファイルをもとにDBに対してマイグレーションで定義を反映できる。 モデル間の関連もスキーマファイルで表現できる。

でも、API側をOpenAPIやGraphQLで定義するとすると、似たようなものを管理しなくてはいけないのがちょっと。

GraphQLと組み合わせて使うこともできるようだけど、まだGraphQLへの苦手意識があるので試すまで至らない。

Read more

GraphQL

API設計するのに、GraphQLの可能性はどうなのかと思ってちょっとググってみた。

個人的にはAmplifyを試していたときに良くわからなくて挫折した思い出がある。

なんとなく、参照系はGraphQLで柔軟性を持たせつつ、更新系は従来のリソース志向のAPIで使い分けるのはどうかなと思った。

Goでのサーバー実装は、99designs/gqlgen: go generate based graphql server libraryがよく使われている感じ。

Read more