タグ

ブックマーク / zenn.dev/mattn (5)

  • Facebook の ent を使って簡単なウェブアプリケーションを作る

    はじめに この記事は Facebook が開発している ORM、ent を使ってどれだけ簡単にアプリケーションを作れるかをチュートリアル的に解説するものです。エンティティを操作する一通りの機能が揃っており、扱いやすいライブラリだと思います。 ent の特徴は以下の通り コードをスキーマとして扱う モデルをGoのオブジェクトとして扱います 簡単なグラフの横断 クエリの実行、集合、そしてグラフ構造を簡単に横断します 静的型で明確な API 100% 静的な型でコード生成を使った明確な API を提供します 複数のストレージドライバ MySQL, PostgreSQL, SQLite と Gremlin をサポートします 拡張性 Go のテンプレートを使って簡単に拡張できます この記事では ent を使って1行掲示板を作ってみたいと思います。 前準備 ent を使うには始めに CLI の ent

    Facebook の ent を使って簡単なウェブアプリケーションを作る
    y_yuki
    y_yuki 2021/11/08
  • Go の入力バリデーションパッケージ ozzo-validation を試した。

    はじめに Go のウェブアプリで使う入力バリデーションに関して、ozzo-validation を検討した。 これまでのバリデーション 普段、仕事では labstack/echo という Go のウェブフレームワークを使う事が多いのだけど、バリデーションに関しては labstack/echo のサンプルに合わせて go-playground/validator を使ってきた。 go-playground/validator は機能も豊富で(一応)痒い所に手は届くのだけど、struct にタグを付けて判定させないといけない。これが実に煩わしい。以前 labstack/echo を使ったサンプルを書いたので、それを見て欲しい。 // Comment is a struct to hold unit of request and response. type Comment struct { I

    Go の入力バリデーションパッケージ ozzo-validation を試した。
  • Go で SSH 超しに PostgreSQL に接続できる database/sql ドライバを作った。

    はじめに データベースを扱う際に、データベースサーバがローカルネットワーク内に存在すれば直接接続できるのですが、時にはデータベースサーバが遠隔にあり ssh を介してしか接続できないケースもあります。そういった場合、ポートフォワーディング等を使って接続するなどしないといけません。 しかしながら、その為には事前に ssh コマンドでトンネルを掘る必要があり、バッチ的に遠隔のデータベースを操作するのは幾分手間が掛かります。 SSH を超えてデータベースに接続する database/sql にはドライバを自分で作る機能があります。そしてデータベースに接続する際のコネクタを自作する事ができる様になっています。crypto/ssh でサーバにログインし、その先で Dial を実行する事で、あたかもローカルのデータベースに接続しているかの様なコネクションを PostgreSQL のコネクションとして渡

    Go で SSH 超しに PostgreSQL に接続できる database/sql ドライバを作った。
  • Go 言語でスライスから要素を消すには

    の様に直感的な操作ができるはずです。しかし Go 言語の場合、スライスの伸長にて発生するメモリアロケーションを append 関数と代入を使う事で透過的に行える仕組みを採用しています。例えばスライスの伸長は この様に行います。C言語をかじった事のある方や、プログラミング言語の内部データ構造をご存じの方であれば、リストといった物が伸長の度にメモリを再確保する様な事をやっていない事はご存じだと思います。Go 言語のスライスも同様で、スライスには長さとキャパシティを持っており、キャパシティを超えない範囲で長さだけが増えていき、キャパシティを超えるとメモリが再確保されるという作りになっています。ですので、上記のコードであれば、スライス(実際は SliceHeader)が内部で持っているポインタ、長さ、キャパシティを、代入してやる事で上書きしています。 スライスから要素を消す スライスの伸長と同様に

    Go 言語でスライスから要素を消すには
  • Go と prisma と lit-html と ky で作るモダンな TODO アプリ

    はじめに 以前から GoORM (Object Relational Mapping) 選定の為に、そこそこ時間を使っています。現状は gorp を使っていますが、満足している訳ではありません。 そんな中で見つけた prisma を試すべく、バックエンドに Go と prisma を使った TODO アプリを作ってみる事にしました。 prisma とは prisma (Next-generation ORM for Node.js and TypeScript)は簡単に言うと 自動生成された型付きのクライアントが付いている マイグレーションが出来る モデル定義から CRUD やインデックスを自動生成できる PostgreSQL, MySQL, SQLite3 等をサポート Prisma Studio という GUI が付いている というモダンな ORM です。Nuxt と TypeS

    Go と prisma と lit-html と ky で作るモダンな TODO アプリ
  • 1