ハートビートは並行処理のプロセスが生きていることを外に伝える方法です。と書かれています。 もう、この1文でこの章のことを言っています。そんななか、この本では2パターン存在するとしています。 一定周期で発生するハートビート 仕事単位の最初に発生するハートビート 一定周期で発生するハートビート 一定周期で発生するハートビートはライフタイムが長いgorutineが生きているかを他の関数に伝える方法となります。 package main import ( "fmt" "time" ) func sendPulse(heartbeat chan<- interface{}) { select { case heartbeat <- struct{}{}: default: // 誰もハートビートを確認していない可能性があるのでdefault節は必須 } } func send
はじめに CastingONEでバックエンドエンジニアをやっている清水です。 この記事ではクリーンアーキテクチャについて学んだけど具体的にどのように実装すれば良いのかという悩みがあったので実装例をまとめてみた記事になります。 クリーンアーキテクチャで実装されたサンプル実装のうちGitHubのスター数が多いリポジトリをピックアップして、設計内容を紹介していきます。 具体的にどこにどんな実装をするべきなのかも含めて紹介していきます。 処理を一部省略して紹介するため実際の処理内容を確認したい場合はGitHubでご確認お願いします。 クリーンアーキテクチャとは クリーンアーキテクチャは、ソフトウェア設計の原則を適用して、依存性の方向性を逆転させ、ビジネスロジックから詳細(フレームワークやデータベース)を分離するアーキテクチャパターンです。これにより、テストしやすく、メンテナンス性が高く、柔軟性のあ
$ $ migrate -h Usage: migrate OPTIONS COMMAND [arg...] migrate [ -version | -help ] Options: -source Location of the migrations (driver://url) -path Shorthand for -source=file://path -database Run migrations against this database (driver://url) -prefetch N Number of migrations to load in advance before executing (default 10) -lock-timeout N Allow N seconds to acquire database lock (default 15) -ve
2018年10月13日、株式会社AbemaTVが主催するイベント「AbemaTV Developer Conference 2018」が開催されました。3度目の開催となる今回のテーマは「PAST→FUTURE」。開局から2年半の実績を元に、快適な視聴体験を届けるための取り組みや、大規模な同時接続に対するシステム開発・運用に寄って得られた技術的知見を共有します。プレゼンテーション「AbemaTVのアーキテクチャの変遷 」に登壇したのは、株式会社AbemaTVの山中勇成氏。日本初のインターネットテレビ局、AbemaTVの開局から今日までのアーキテクチャーの変遷について、サービスの歴史とともに振り返ります。講演資料はこちら AbemaTVのアーキテクチャの変遷山中勇成氏(以下、山中):こんにちは。このセッションでは「AbemaTVのアーキテクチャの変遷」というタイトルで、AbemaTVが開局前と
Go言語ではインターフェイスとポインタの違いについて ちゃんと理解しておく必要があります。 Go言語にはインターフェイス値がある C/C++を勉強した人にとってはポインタは理解できていると思いますが、Go言語にはインターフェイスというものも登場します。 C++でももちろん、interfaceというのは出てきますが、 C++の印象とはちょっと違ったものになっています。 Go言語がちょっとだけ違うのは、 インターフェイス値というものがあることです。 Goのインターフェイスは、実際には型情報と値情報の2つをもった構造体になっています。 その構造体に、型情報と値情報を動的に代入して扱っているのです。 ポインタとは ポインタは、値のメモリ空間を指し示す番地。 ポインタは、 プログラム実行時にメモリ空間を指し示す数字(番地)しか持ちません。 i1 := 123 fmt.Printf("%p\n", &
Goのマイグレーションツール goose bitbucket.org Go製のmigration ツールでは人気のある方? 業務でも採用されていたので使ってみました。 情報にバラつきがありセットアップまでに時間がかかりました。 goose bitbucket版 と github版があります。 github版 https://github.com/pressly/goose 同じかと思いきや、微妙に挙動が違うので要注意です。 今回はbitbucket版を使用します。 install bitbucketを使用します。 githubと間違わないよう注意です。 go get bitbucket.org/liamstask/goose/cmd/goose configure db/dbconf.yml デフォルトでこのパスを見にいくみたいです。 development: driver: mysql
golang unit integration testing assertion tdd bdd June 13, 2018 Recently, JetBrains ran a survey on the state of developer ecosystems. As part of the survey, they asked Go developers about their tools of choice. As I was reading through it, the section on testing frameworks caught my eye. So far I had only used the built-in Go testing support and Testify for my own projects. Time to explore the te
Module Mirror and Checksum Database Launched - The Go Blog Go1.13からデフォルトで使われるようになったGo Modulesのミラーとchecksumを返すサーバー。 Googleによって運営されている。 proxy.golang.org index.golang.org: proxyで利用可能なmoduleとバージョンの一覧 sum.golang.org $ curl "https://proxy.golang.org/github.com/labstack/echo/v4/@v/v4.1.14.mod" module github.com/labstack/echo/v4 go 1.12 require ( github.com/dgrijalva/jwt-go v3.2.0+incompatible github.com/
2022-04-26 / Go 社内のリポジトリを利用しようとしたら上手くいかなかったので GOPRIVATE を再設定したメモです。 GOPRIVATE がないときGitHub など一般公開されているリポジトリではなく、プライベートな社内のリポジトリを特に設定の無いまま利用すると以下のようなエラーが発生します。 $ go get -d -u private.example.com/org/repo.git private.example.com/org/[email protected]: verifying module: private.example.com/org/[email protected]: reading https://sum.golang.org/lookup/private.example.com/org/[email protected]: 410 Gone
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く