UPDATE: You can watch a video of me giving this talk at Gophercon 2019:
UPDATE: You can watch a video of me giving this talk at Gophercon 2019:
I've recently moved the site you're reading right now from a Sinatra/Ruby application to an (almost) static site served by Go. So while it's fresh in my head, here's an explanation of principles behind creating and serving static sites with Go. Let's begin with a simple but real-world example: serving vanilla HTML and CSS files from a particular location on disk. Start by creating a directory to h
概要 自社サービスの開発中、必要にかられてGOで簡単なリバースプロキシツールを作った話を書いてみます。 前提 自社サービスの開発を、次のような構成で進めています。 フロントエンドとバックエンド(APIなど)をパスで振り分け /の下はフロントエンド /api/の下はAPI その他にも色々・・・ フロントエンドとバックエンドは、担当者もリポジトリも、動いているサーバも別 それぞれサーバが開発環境、本番環境とテスト環境、のように複数の環境をもっている やりたいこと 前提の環境をもって、いざ開発をしようとローカル環境を構築するとなれば、 ローカルにnginxでリバースプロキシを立てて管理するのは面倒くさい ちょっとした環境の変更があると共有がいちいち面倒くさい フロントエンド担当者がわざわざバックエンドをcloneだのpullだの面倒くさい 環境間でテストするためにわざわざnginxの設定書き換え
少し前にStarletにGraceful Restartが時たま上手く動かない問題を修正するpullreqを投げました。 原因は割り込みハンドラ内でexitを呼んでいたからでした。 「割り込みハンドラ内ではフラグを建てるだけ」 「メインのプログラム内でそのフラグを見て分岐する」という原則があるのですが、それを守るのは難しいということですね。 (しかし新たな問題を産んでしまいrevertされてしまいましたが・・・ まあ修正後のコードも考え方は一緒です。割り込みホント難しい・・・) このpullreqを取り込んでもらうときに再現実験をやってみたのですが、 Goでもちゃんと動くのかな?と気になったので Go言語でGraceful Restartをするで紹介した プログラムに同じテストをやってみました。 2017-01-22追記: Go1.8以降でGraceful Shutdownがbuild-i
キャリアを充実させる『カギ』に!PR TIMES CTO金子達哉から学ぶアウトプット術 / output_method
簡単なチャットプログラムは、ネットワークプログラミング用のフレームワークでは定番のサンプルプログラムです。 echo サーバーが Hello World とするなら、チャットは FizzBuzz といったところでしょう。 とりあえず動くだけのチャットならだれでもすぐに作れるようになりますが、まじめにチャットを作ることで、 ネットワークプログラミングで考えないといけない点やエラー処理の重要な基礎を学ぶことができます。 ということで、 Go でシンプルなチャットを実装してみました。 (ソースコード) 以降、何を考えてどういう設計を採用したのかを解説していきます。 考慮すべきポイント 特定のクライアントへの送信に長時間待たされた場合に、他のクライアントへの送信が遅れないようにする。 クライアントを切断するのは、 (1)ルーム側から kick する場合, (2)受信エラー, (3)送信エラー の3
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く