タグ

関連タグで絞り込む (311)

タグの絞り込みを解除

golangに関するdelegateのブックマーク (366)

  • Ginを使ったGo API開発の初歩

    今日はGinを使って、簡単なGo APIを動かすところまでやってみたいと思います。初歩ということで、まずはインストールとQuick Startを実施します。 Ginとは Ginのインストール Ginを動かす Ginとは Ginとは、Golangで開発されたWebフレームワークで、パフォーマンスに優れたAPI機能を提供します。(GinのGitHubから引用しています。) Gin is a web framework written in Go (Golang). It features a martini-like API with performance that is up to 40 times faster thanks to httprouter. If you need performance and good productivity, you will love Gin. 引

    Ginを使ったGo API開発の初歩
  • Ginを使ったGo API開発の初歩(cookie編)

    以下の記事でGinをインストールしてGo APIの実装を始めました。今日はcookieを実装します。 Ginを使ったGo API開発の初歩 cookieとは cookieの実装 APIの確認 cookieとは cookieとは、ウェブブラウザに保存される情報のことを指します。 サイトにログイン後、再度同じサイトにアクセスするとログインした状態になっていることがあります。これはcookieとしてユーザー情報が保存されているからです。他にも閲覧したページに関連する広告を出したりと、様々な場面で利用されています。 記事では、Ginによるcookie操作を確認します。 cookieの実装 Ginによるcookieの設定と取得には以下のメソッドを利用します。それぞれのメソッドの引数・戻り値の型については、gin-GoDocに記載されています。 cookieの設定・・・gin.Context.Coo

  • 詳解Go言語Webアプリケーション開発学習メモ

    Ch1. Goのコーディングで意識しておきたいこと Goが誕生した背景 Googleで生じた様々な問題を解決するために誕生した。 ビルド時間が数十分、数時間に膨れ上がった 同じ内容でも表現方法がプログラマ間で異なり可読性が低い 自動化ツールの作成が困難 マルチプロセッサ、ネットワークシステム、大規模計算クラスタ等での開発での問題 動的型付け言語の持つプログラミングのしやすさと静的型付けコンパイル言語が持つ効率性と型安全性を両立 ネットワークプログラミングやマルチコアプログラミングを容易にする並列処理の書きやすさ 大規模システムや大規模開発システムにおける効率的なプログラミング ※Cloud Native Goに書かれていたように時代の変化に伴い上記の課題が出てきて、それを解決するためにGoが誕生したと考えるとコンテキスト含めて理解しやすそう。 迷ったらシンプルを選ぶ こうした背景を持つGo

    詳解Go言語Webアプリケーション開発学習メモ
  • PHP(Laravel) ランタイムのベンチマークをしました

    結論から述べると RoadRunner は いいぞ。 経緯 PHP は昨今様々なランタイムで動作させることが出来ます。 最も一般的なものは nginx + php-fpm かなと思いますが、 「最近聞こえるようになってきたアレとかコレとかと比べてどうなんだろう?」 という疑問を持ちました。検索しても私の疑問を解消してくれるだけの回答は見つかりませんでした。 だったら自分でやろうということでやりました。 ついでに、 各ランタイムごとにどんな Dockerfile/docker-compose.yml を書いたらいいかのテンプレート にもなったかなと思います。 前提 測定対象 Apache2.4 + mod_php nginx + php-fpm nginx unit RoadRunner(behind Laravel Octane) 環境 Ubuntu 20.04 on WSL2 on Wi

    PHP(Laravel) ランタイムのベンチマークをしました
  • GoでMySQLにアクセスしてみる - CLOVER🍀

    これは、なにをしたくて書いたもの? Goを使って、データベースにアクセスするコードを書いてみたいなぁと思いまして。 sqlパッケージ Goでデータベースにアクセスするには、sqlパッケージを使うようです。 sql - The Go Programming Language sqlパッケージは、SQL(ライクな)データベースにアクセスするための、汎用インターフェースを提供するパッケージだそうです。 Package sql provides a generic interface around SQL (or SQL-like) databases. 基的な使い方は、こちらを参照。 SQLInterface · golang/go Wiki · GitHub そして、sqlパッケージのインターフェースを実装したドライバーは、こちらの一覧で確認できます。 SQLDrivers · golang

    GoでMySQLにアクセスしてみる - CLOVER🍀
  • ゼロからはじめるGo言語 第17回 Go言語のWebフレームワークGinで簡単Webアプリ開発:マピオンニュース

    ゼロからはじめるGo言語 第17回 Go言語のWebフレームワークGinで簡単Webアプリ開発 2021年10月11日06時01分 / 提供:マイナビニュース 以前、連載ではGoの標準機能だけで掲示板を作る方法を紹介しました。しかし、専用のフレームワークを使うと、より簡単にさまざまな機能が利用できます。今回は、Go言語で最も人気があるWebフレームワークGinを使って簡単なWebアプリを作る方法を紹介します。 ○Webフレームワーク「Gin」について Webアプリケーションの開発では、何度も似たような処理を実装する場面があります。そこで、似たような処理をまとめて開発を簡易化するためのライブラリ一式を「Webフレームワーク」と呼びます。そもそもフレームワークとは「骨組み」という意味があります。つまり、Webアプリケーションの土台となる枠組みを提供するものです。 各プログラミング言語ごとに、

    ゼロからはじめるGo言語 第17回 Go言語のWebフレームワークGinで簡単Webアプリ開発:マピオンニュース
  • GORM で出力されるログの SQL と実行される SQL が違った話 - カミナシ エンジニアブログ

    7月に株式会社カミナシに入社したくらさわです! カミナシでは、現場DXプラットフォーム「カミナシ」の開発をしています! よろしくお願いします!!! きっかけ 検証バージョン 結論 コード書いて確認してみた ドキュメント読んでみた コード読んでみた go-sql-driver/mysql のコード GORM のコード まとめ きっかけ 現在、カミナシの開発では、サーバサイドの言語は Go 、ORマッパーとして 「GORM」 を使い、DB には Amazon Aurora MySQL を使っています。 ある日、開発中に GORM が吐いてくれるログで query を調べていると、アプリケーションの実行中は結果が取れていないのに、その query をコピーして、手動で MySQL に投げると結果が取得できるということがありました。 パッとわからなかったので、それについて調べたことを記事にしてみま

    GORM で出力されるログの SQL と実行される SQL が違った話 - カミナシ エンジニアブログ
  • golangで作るQUICプロトコル(Initial Packetの送信まで)

    はじめに つい最近HTTP3のRFC9114として正式に発行されました。 HTTP3はQUICプロトコル上で実装されているものです。 HTTP3はGoogleTOPページなど既に日常的に使われています。 業務でQUICやHTTP3でコードを書くことはまだあまりないと思いますが、まぁいずれそういう時代もくるでしょう。 そういう時が来たときにあたふたするわけにはいかないので、今回はQUICとHTTP3プロトコルスタックを実装して学んでみることにします。 今回のルールとゴールです。 udpパケットの送信と受信にnetパッケージを使用する TLSは自分で実装したものを使用、crypto/tlsは使わない RFC9000とRFC9001とWiresharkでパケット見ながら実装 quic-goは使わない quic-goのHTTP3サーバに対してGetリクエストを送り、サーバからメッセージを受信した

    golangで作るQUICプロトコル(Initial Packetの送信まで)
  • GoにおけるORMと、SQLBoiler入門マニュアル

    前置き この文章は技術書典9で頒布した「INSIDE MERY3」に寄稿した文章をベースに、一部修正を加えたものです。「INSIDE MERY3」が頒布終了したため、改めて(記事としては、少し長いですが)公開します。 はじめにGoにおける代表的なORMライブラリをいくつか紹介し、続いてその中からSQLBoilerの使い方を解説します。ORMに詳しくない読者も対象にしているため、詳しい方には不要な情報もあるかもしれません。その場合は適宜読み飛ばしていただければと思います。 Goで使われる代表的なORMライブラリ ORMとはどういう技術ORMとはObject-relational mappingの略語です。一般的にリレーショナルデータベース内のレコードをあつかう際には、データベースのための専用言語であるSQLを使います。しかしデータベースはデータを効率的に管理/検索することに特化した構造と

    GoにおけるORMと、SQLBoiler入門マニュアル
  • ORM を GORM から SQLBoiler に変えた理由 - OPTiM TECH BLOG

    こんにちは。AI サービス開発部の千坂です。 Go に generics が入るのを密かに楽しみにしています。 今回は、Go 言語で使う ORMGORM から SQLBoiler に変えた経緯を説明します。 個人で書く場合は ORM より生 SQL 派ですが、業務では開発効率重視で ORM を使います。 ORM とは O/R (Object-relational) マッピング(またはマッパー)の略で、プログラム上のオブジェクトと RDB のデータを対応付けること、およびそれを行うツールを表します。 GoORM では通常、構造体と RDB のデータを対応付けます。 記事では GORM と SQLBoiler の概要および長所・短所を紹介していますが、それらは数ある特徴のうちの一部です。 これらの2つ以外にも ORM はありますので、ORM を利用するかどうか、またどの ORM

    ORM を GORM から SQLBoiler に変えた理由 - OPTiM TECH BLOG
  • goのスケジュール処理についての云々。

    目下、ラジオを簡単に録音する方向で動いている。定期処理をしたい。 要件としては以下である。 goがいい 定期録音するからキャンセルできるといい 動作はラズパイ まぁ、ググるといい記事がありますね。 なるほど、確かにチャンネル使ってに平行処理が走ればgoのいいことが出るよね。 すいません、面倒くさがりなので影響が出なければそこそこ重くてもいいです。 そっから考えます。だけどラズパイだから全部goroutineするのは頂けないかなという訳でgocronあたりを、、、、 解析 中を見ると、途中キャンセルが出来なさそうだった。エラーで返すなよ! と頭を抱えていた。 英語だからところどころ読み飛ばすので上から見てみる。 ありがとうございます、勝ちゲーです。現在はここでメンテナンスされているようです。 サンプルの作成 package main import ( "fmt" "os" "os/signa

    goのスケジュール処理についての云々。
  • Golang でジョブのスケジューリング実行ができる JobRunner を試した - kakakakakku blog

    最近 Golang でジョブを非同期にスケジューリング実行するような仕組みを実装していて,要件に合っていた JobRunner を使った.特徴としては,様々なスケジューリングを定義できる点と,API を起動してプロセスを常駐させる点にある. github.com 基実装 最初に動く実装を載せておく.ザッと書いてみると,このようになる.5秒間隔で MyJob を実行していて,標準出力にログを吐いている.また Gin を起動してプロセスを常駐させている.さらに JobRunner のステータスを API から取得できるようにもしている. package main import ( "fmt" "net/http" "github.com/bamzi/jobrunner" "github.com/gin-gonic/gin" ) // MyJob ... type MyJob struct {

    Golang でジョブのスケジューリング実行ができる JobRunner を試した - kakakakakku blog
  • Go言語でWindows,Linuxの常駐システムを開発する - OPTiM TECH BLOG

    こんにちは。AI・IoTサービス開発部の青木です。 弊社サービスの OPTiM IoT の開発チームに所属しており、 連携デバイス/ソリューション の拡充を進めています。 基的にはLinuxが搭載されたデバイスをメインに開発を行っていますが、組み込みや他のOSの対応などはIoTをやっていく上で必須になってくるので そこで利用していた技術の一つであるWindows,Linuxの常駐システム化について執筆しようかと思います。 目次 目次 システム常駐化の方法 基となるアプリケーションを開発する 常駐システム化するライブラリを利用し、実装を行う main.go の変更 試しに実行 OS毎の挙動を見てみる Macの場合 Windowsの場合 Linux(Ubuntu)の場合 Alpine LinuxDocker)の場合 Appendix. OS毎の個別設定方法について まとめ 謝辞 システム常

    Go言語でWindows,Linuxの常駐システムを開発する - OPTiM TECH BLOG
  • golangではスタックとヒープを気にする必要が無い

    調べようと思ったきっかけは、golang では以下のように ローカル変数のアドレスを戻り値としても問題ないということ。 package main import ( "fmt" ) type Animal struct { Name string Age int } func main() { animal := allocAnimal() fmt.Printf("allocate animal structure %p", animal) } func allocAnimal() *Animal { return &Animal{} } C/C++ ではローカル変数のポインタを戻り値とした場合、 スタック領域のポインタを関数外に渡してしまうため、コンパイル時点で警告が表示されます (なぜエラーにしない) 実行時には最悪、セグメンテーションフォールトで落ちます そのため、malloc や n

    golangではスタックとヒープを気にする必要が無い
  • Go Slice Tricks Cheat Sheet

    Web site created using create-react-app

    Go Slice Tricks Cheat Sheet
  • Go言語のジェネリクス入門

    Go1.18は2022年3月にリリースされました。このリリースはGo言語へのジェネリクスの実装を含んでいます。 この記事ではできるだけ最新の仕様と用語法にもとづいてジェネリクスの言語仕様について解説していきます。 更新履歴 2024/01/03: Go1.21(2023-08-08)でcmpパッケージが標準ライブラリに追加されたことに対応しました。 2023/02/23: Go1.20(2023-02-01)のcomparableの仕様変更に対応しました。 次の関連資料があります: The Go Blog - All your comparable types Griesemer氏によるGo公式ブログです。 Go言語のBasic Interfaceはcomparableを満たすようになる(でも実装するようにはならない) 上記の内容に対する筆者の解説記事です。Go1.20リリース前に書いたの

    Go言語のジェネリクス入門
  • Goから学ぶI/O

    GoにはI/Oに関わるパッケージが数多く存在します。io, os, bufio, fmtなどなど……。これらの立ち位置や、I/O実行の裏で何が起こっているのか当に理解していますか?このでは、この問への答えをまとめました。

    Goから学ぶI/O
  • Goメモ-157 (bytes.Bufferはとても便利) - いろいろ備忘録日記

    概要 サンプル ゼロ値で利用 文字列からbytes.Bufferを生成 バイト列からbytes.Bufferを生成 io.Readerとして利用 io.Writerとして利用 参考資料 概要 bytes.Buffer 使ってますか? Goではバイト列を扱うことが多いので、この型はとても便利です。 Goを始めたときは、使いにくいと感じていたのですが、慣れてくると、この子を一番使っている気がします。 文字列からバイト列にしたい バイト列から文字列にしたい io.Readerとして使いたい io.Writerとして使いたい などなどの時に利用できます。 io.Readerとしてもio.Writerとしても利用できるので、なにかの入力元にもなれるし出力先にもなれるということですね。 前にアップした devlights.hatenablog.com でも、頻繁に使っていますので参照ください。 サンプ

    Goメモ-157 (bytes.Bufferはとても便利) - いろいろ備忘録日記
  • Interface 型の使いどころ【Go】

    golangのコンストラクタでinterface型を返すようにする理由」とそこからリンクされている という記事を見て,なかなか面白いけど「理由」としてはイマイチな気がするので,この記事でも少し考えてみる。 ”Accept Interfaces, Return Structs” Go の設計指針として有名な言葉に ”Accept Interfaces, Return Structs” と言うのがある。つまり返り値としては具体的な型を返すけど,格納するインスタンスや関数の引数などは interface 型で受け入れる,というもの。 たとえば 指定したファイルをオープンする オープンしたファイルの内容を全て読み込む という関数をそれぞれ作る場合 func OpenFile(path string) (*os.File, error) { return os.Open(path) } func

    Interface 型の使いどころ【Go】
  • Goの初心者が見ると幸せになれる場所 #golang - Qiita

    公式サイト A Tour of Go Web上で実行しながら学ぶことができる公式のチュートリアルです。 チュートリアル 公式のチュートリアルです。初学者向けからジェネリクスのチュートリアルなども用意されています。 A Tour of Goが終わった後に取り組むと良いでしょう。 Go Wiki Go Code Review Commentsなどが掲載されているGitHub上のWikiです。 パッケージドキュメント 標準パッケージやサードパーティ製のパッケージのドキュメントが見れるサイトです。検索もできます。 入門 プログラミング言語Go完全入門 筆者が作っている巨大なGoの入門資料です。なぜGoが作られたのか、から最新のジェネリクスの情報、静的解析まで扱っています。 Gopher道場 Goを体系的に学べる場です。10時間くらいある動画教材(自習室から入手可)もあります。 Go の最初の手順

    Goの初心者が見ると幸せになれる場所 #golang - Qiita