[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

タグ

goに関するokinakaのブックマーク (18)

  • フィーチャーフラグを管理するためのOpenFeature | フューチャー技術ブログ

    はじめにTIG DXユニット真野です。 CNCF連載の2目はクラウドネイティブなフィーチャーフラグの標準とAPI、SDKを提供するOpenFeatureについてです。 フィーチャーフラグとはフィーチャーフラグとはコードを変更せずに、フラグを使って機能を有効/無効化する開発/デプロイ手法のことです。一般的なユースケースとしては、特定のユーザーに対して再起動とか再デプロイをせずに、新機能を有効化したいといった場合に役立ちます。信頼度が高くなったらより段階的に広範囲に対象を広げていくと安心ですね。この使い方だけであれば、カナリアリリースを想像しますが、他にも次のようなユースケースが考えられます。 初期から契約している特別な顧客(あるいはプレミアムプランに契約している顧客)に向けて開発した機能を提供する バグが見つかったので、該当機能を無効化してアプリの振る舞いをロールバックする 繁忙期にシステ

    フィーチャーフラグを管理するためのOpenFeature | フューチャー技術ブログ
    okinaka
    okinaka 2023/06/22
  • Better gRPC な Connect に乗り換える - Go言語編

    デジタル認知行動療法アプリ Awarefy は、2022年4月からバックエンドシステムを Go + gRPC / Protocol Buffers を用いて開発・運用しています。現在進行中の Web アプリ開発のために、connect-go への切り替えが事実上必要になったため、grpc-go から connect-go へのマイグレーションを実行しました。 Connect とはそもそも Connect とはなにかですが、Better gRPC と理解するのがよいでしょう。 Getting started | ConnectConnect is a slim library for building browser- and gRPC-compatible HTTP APIs.ConnectConnect is a slim library for building browser- an

    Better gRPC な Connect に乗り換える - Go言語編
  • tRPCを導入したら爆速でWebサービスをリリースできた話

    この記事は 「個人開発Advent Calendar 2022」 8日目の記事です。 はじめに 先日リリースされた、SplarateというWebサービスの開発をお手伝いしています。そこで導入したtRPCが驚くほど便利だったので、実際の体験を交えてその使いやすさを紹介します。 tRPCとは? tRPC allows you to easily build & consume fully typesafe APIs without schemas or code generation. https://trpc.io/docs/ tRPCは、スキーマやコード生成なしで型安全なAPIを簡単に構築し、呼び出すことのできるライブラリです。 tRPC is for full-stack TypeScript developers. と謳われているように、TypeScriptに特化して作られており、Ty

    tRPCを導入したら爆速でWebサービスをリリースできた話
  • AWS Lambda の arm64 アーキテクチャで Go を実行するためのカスタムランタイムを使った SAMテンプレートの紹介 | DevelopersIO

    やってみた arm64 対応で必要だったポイントを説明します。 重要なのは Lambda の設定を記述したtemplate.yamlと、ビルドの設定を記述したMakefileの2箇所だけです。 ディレクトリ構成 . ├── README.md ├── hello-world │   ├── Makefile │   ├── go.mod │   ├── go.sum │   ├── main.go │   └── main_test.go ├── samconfig.toml └── template.yaml Go のランタイムを使うわけではないので Lambda の設定には一切 Go の文字はないです。 Runtime で Amazon Linux 2 のイメージを指定 Architectures でリスト形式で arm64 を指定 Metadata の BuildMethod で後述

    AWS Lambda の arm64 アーキテクチャで Go を実行するためのカスタムランタイムを使った SAMテンプレートの紹介 | DevelopersIO
  • Go言語で実装するプラグイン機構

    ソフトウェアに拡張性を持たせる時にプラグイン機構を持たせる事は一般的ですが、それを実現する方法は結構バラバラなのかなと思います。例えば、 C 言語等の.so/.dll を読み込む方法 Nodejs のような言語での単なる import TCP や Unix ソケットを利用して RPC 通信を行う方法 などが有るのかなと思います。1 番目・2 番目は、関数の呼び出し速度等のオーバーヘッドが少なく高速ですが、言語等の制約が大きくなる・メモリを共有することによるセキュリティリスクが発生します。そこで、提供するインターフェースを制約出来る場合は、3 番目の手法が多く使われるようです。 Go 言語で開発されている、hashicorp/terraform cloudfoundry/cli は共に 3 番目の RPC 通信でプラグイン機構を実装しています。その中でも terraform で使用されている

    Go言語で実装するプラグイン機構
  • Goではじめてみたブラウザの自動操作 - Qiita

    はじめに 面倒なWEBブラウザの定型作業を自動化したくて。 WEBブラウザの自動操作には定番のSeleniumを利用する。 Seleniumは主にウェブブラウザのテストに利用されているが、テスト用途以外でも利用はできる。 なおウェブスクレイピングが目的であれば、scrapeとかgoqueryなどを利用するほうが簡単。 それでもSeleniumを利用するのは、 実際のブラウザが利用できるという点であり、以下のような利点があると思っている。 IEなど特定のブラウザのみをサポートしているサイトの自動操作 ごりごりのJavascriptやFlashを利用されているサイトの自動操作 証跡として画面のスクリーンショットを取得できる 前提知識 WebDriverを介することで、スクリプトとしてJava,C#,Pythonなど多くの言語から利用できる ブラウザごとにWebDriverが用意されており、1つ

    Goではじめてみたブラウザの自動操作 - Qiita
  • Making the move from Scala to Go, and why we're not going back

    24 Jan 2017 · 15 min read · Mariano Gappa Making The Move From Scala To Go, And Why We’re Not Going Back UPDATE: This blogpost has received a lot of attention since it's been published, including on Hacker News, Golang Weekly and Scala Times; thank you! Unfortunately, some readers have considered it strictly an attack on the Scala community and/or a biased episode of language war. This was not the

    Making the move from Scala to Go, and why we're not going back
    okinaka
    okinaka 2017/01/25
    やっぱ scala は辛い。2011年ごろに 挫折した。Go はいいね!
  • Goでプロビジョニングツールを作った - オープンソースこねこね

    GitHub - kohkimakimoto/cofu: Minimum configuration management tool written in Go.github.com CofuというサーバプロビジョニングツールをGoで実装しました。Itamaeを参考に作りました。実装言語の違い(ItamaeはRubyによる実装)はありますが、外部仕様、内部実装、共にかなり似せて作ってあるので、ItamaeまたはItamaeが参考にしているchefを使ったことがあると、理解は簡単かと思います。特徴をざっくり説明すると、 ローカルでのプロビジョニングのみ対応。SSHなどでのリモートサーバのプロビジョニングはサポートしない Goなので実行ファイル一個で動く。導入が簡単 レシピはLuaのDSLで記述する 今のところ動作プラットフォームはRedHat(CentOS)のみをサポート あたりでしょうか。

    Goでプロビジョニングツールを作った - オープンソースこねこね
  • Go言語の並行処理デザインパターン by Rob Pike 前編 - Qiita

    package main import ( "fmt" "math/rand" "time" "runtime" ) func main() { runtime.GOMAXPROCS(runtime.NumCPU()) rand.Seed(time.Now().UnixNano()) c := boring("boring!") // Function returning a channel. for i := 0; i < 5; i++ { fmt.Printf("You say: %q\n", <-c) } fmt.Println("You're boring: I'm leaving.") } func boring(msg string) <-chan string { c := make(chan string) go func() { // We launch the goro

    Go言語の並行処理デザインパターン by Rob Pike 前編 - Qiita
  • Golang vs PHP7(追記あり) - GMOインターネットグループ グループ研究開発本部

    Golangが一番パフォーマンスが良いかと予想していましたが、全く逆の結果になってしまいました。 Golangが遅い理由 遅い原因をいくつか考えて改善できないか試してみました。詳細は省きますが、以下の点については問題なさそうでした。 goroutineはリクエスト単位で起動している コネクションプールは有効になっている BeegoORM特有の処理は主原因ではない(標準ライブラリのsql関数と大差なし) DB側のCPU使用率は100%になっているが、CPU使用率とメモリ使用量はPHP環境と同程度の負荷になっている ここまで確認して、プロファイラを使った方が良さそうに思えたので、いったんプロファイラで状況を確認するために、標準で提供されていて手軽に使えそうなpprofを使ってみました。topで確認すると次のような結果がでました。 (pprof) top 20 -cum 920ms of 15

    Golang vs PHP7(追記あり) - GMOインターネットグループ グループ研究開発本部
  • Go言語で API サーバーを開発する | カメリオ開発者ブログ

    こんにちは!白ヤギの開発者、森です。 白ヤギではいま API サーバーを Go 言語で開発しています。 皆さんも Go の話題をよく見聞きするようになっていると思います。今回は白ヤギの業務でどんな風に Go を使って開発しているかの一端を紹介します。 余談ですが、先日、大学の先生とお話ししたときにこんな話を伺いました。その先生は学生にプログラミングを教えているそうですが、何割かの学生は及第点に届かないそうです。しかし、そういった学生がプログラミングの素養がないかというとそういう訳ではなく、プログラミングを学ぶ上でその学生にとって何が理解を促すのかが違うだけなのだと仰っていました。教える側として全ての学生が習得できるプログラミング教育というのを見つけられていないのが悔しいといった話をされていました。 何かを学ぶというのを一般論では語るのは難しいということかもしれません。そのため、私はこうい

    Go言語で API サーバーを開発する | カメリオ開発者ブログ
    okinaka
    okinaka 2015/05/25
  • 「最速」フルスタックWebフレームワーク「revel」の紹介 - Qiita

    #速さは正義! やはり「最速」という言葉は胸を熱くするものがあります。 使うWebフレームワークのレスポンスが速ければ速いほど、ユーザービリティはよくなる上に、必要なサーバー台数も減らせるなど、いいことづくめです。 ただ、レスポンスの速さだけを追い求めて機能を削ったものは、開発の速度を遅くします。 Web開発に通常必要な機能は全て用意した上で、なお速い、そんな都合のいいフレームワークが求められます。 そこで、最近知った「revel」という「最速」にして「フルスタック」のWebフレームワークについて、調べたことを記載していきます。 今回は、 速さの計測方法解説 revelの概要 Go言語の概要 revelのインストール・実行までの手順 などについて記載します。 ※ ここで言っている「最速」とは、一秒間に何レスポンス返せるか、というような、ベンチマーク的な意味です。 ※ ここで言っている「フル

    「最速」フルスタックWebフレームワーク「revel」の紹介 - Qiita
    okinaka
    okinaka 2015/01/28
    あとで試す
  • DotenvではなくDirenvを使う

    DotenvではなくDirenvを使う Dotenvは,.envファイルから環境変数を読み込むためのツール.他人には共有したくないパスワードやキーなどを.envに環境変数として記述しておき,実行時にそれを読み込むといった使い方をする.例えば自分は,vagrantからDigitalOceanを使う際に,CLIENT_IDやAPI_KEYを.envに記述してVagrantfileでそれを読み込むという使い方をしていた. ただ,Dotenvは汎用性が低い.Dotenvを有効にするには,プログラム内から明示的にDotenv.loadを呼ぶ必要がある,もしくは,dotenvでプログラムを起動する必要がある.例えば,test-kitchenのdigitaloceanドライバーを使う際には,vagrantの場合と同様にCLIENT_IDやAPI_KEYが必要になる.しかし,test-kitchenでユー

  • build-web-application-with-golang/ja/ebook/preface.md at master · astaxie/build-web-application-with-golang · GitHub

    1.Goの環境設定 1.1. Goのインストール 1.2. GOPATHとワーキングディレクトリ 1.3. Goのコマンド 1.4. Goの開発ツール 1.5. 概要 2.Go言語の基礎 2.1. こんにちは、Go 2.2. Goの基礎 2.3. フローと関数 2.4. struct型 2.5. オブジェクト指向 2.6. interface 2.7. マルチスレッド 2.8. 概要 3.Webの基礎 3.1 webでの作業方法 3.2 Goで簡単なwebサーバを立てる 3.3 Goはどのようにしてweb作業を行うか 3.4 Goのhttpパッケージ詳細 3.5 概要 4.フォーム 4.1 フォームの入力を処理する 4.2 フォームに入力された内容の検証 4.3 クロスサイトスクリプティングの予防 4.4 フォームの複数回送信の防止 4.5 ファイルのアップロード処理 4.6 概要 5.デ

    okinaka
    okinaka 2014/02/03
  • Go の Test に対する考え方 - Qiita

    Go の Test に対する考え方 この記事は Go Advent Calendar 2013 の 9 日目の投稿です。 今回は、 Go の testing というパッケージの使い方を解説しようと思ったのですが、 それだとつまらなすぎるので、合わせて Go が test というか assert についてどういうスタンスをとっているかを書いてみます。 Go でテスト さて、「テストのないコードはレガシーコード」などと言われて久しく、様々な言語が test (主に Unittest) について言語レベルでサポートしたり、デファクトなライブラリが確立したりといった状況が、今日では至って普通のこととなっています。 そんな言語や環境で、息をするようにテストを書いてきたみなさんが、はじめて Go でコードを書く時に見るべきは testing パッケージです。 http://golang.org/pkg

    Go の Test に対する考え方 - Qiita
  • Goでドメイン特化言語も作成可能?(1/3)- @IT

    第6回 Goでドメイン特化言語も作成可能!? 赤坂 けい チームWordProgress 2010/4/19 Cよりはるかにお気軽なGo。クロージャーや無名関数、インターフェイスによる動的結合を使いこなせば内部DSL作成にも使えるかもしれない。 GoでDSL(ドメイン特化言語)? 昨年秋の登場から、Goのメーリングリスト(リンク)では活発な議論が続けられている(2010年3月時点で、累積投稿数は10,000件を超え、メンバー数も3000人超)。近時の投稿を見ると、Genericの導入やオブジェクト指向など言語仕様の議論に加えて、C言語との連携手法、モバイルサポートなど、実際の活用を意識した質問も多く寄せられている。 そうした議論の中で、『GoはDSL(ドメイン特化言語)の構築に適しているのか(Is Go suitable for building DSL?)』という問いかけ(リンク)に始ま

    okinaka
    okinaka 2010/04/20
  • Google's Go Guide - プログラミング言語Goの情報サイト

    随時更新して行きます。イベントサイト公開後に中止、延期、オンラインまたはオフライン化するケースがありますので、必ずリンク先の情報をご確認ください。 11/1(金) 19:00-20:00 [宮城県仙台市] 第31回Sendai.go Gopher's Gatheringへのネタ出し会 (オフライン)11/4(月) 10:00-12:00 [オンライン] Women Who Go Tokyo Web API設計実践入門#511/5(火) 19:00-21:00 [オンライン] 【英語登壇】GoLab セッションレビュー会11/5(火) 19:00-21:00 [オンライン] Goオンラインもくもく会 #2811/8(金) 19:15-21:00 [東京都台東区] Asakusa.go #411/10(日) 10:00-11:00 [オンライン] Women Who Go Tokyo Web

    okinaka
    okinaka 2010/01/11
  • プログラミング言語 Go ドキュメント — プログラミング言語 Go ドキュメント v0.1 documentation

    翻訳プロジェクトについて¶ この翻訳は Sphinx を使って以下のサイトで共同で行っています。翻訳に参加ご希望の方は、 yoshiki at shibu.jp までご連絡ください。 http://bitbucket.org/shibu/golang-docjp/ 翻訳ルール¶ まずはBitbucketのアカウントを作ってご連絡ください。書き込み権限を設定します。 翻訳したいものがある方は上記のBitbucketのサイト上でチケットを発行してください。Issueタブです。大項目単位です。 翻訳は読みやすさを考えて「です・ます」調で統一します。 Sphinxディレクティブを使った相互リンクは暇なときに設定します。もしくは書き込み権限のある方は設定してもらっても構いません。 Mercurialでcloneして翻訳してからcommit、pushしてください。commit前にpull&update

    okinaka
    okinaka 2010/01/11
  • 1