イオン(株)(TSR企業コード:570095140、千葉市美浜区、東証1部)は10月14日、100円ショップ大手の(株)キャンドゥ(TSR企業コード:310389577、新宿区、東証1部)株式の公開買付けを開始すると発表した。 キャンドゥは公開買付けに賛同を表明。イオンはキャンドゥ株式の51%以上を取得し、子会社化する計画だ。キャンドゥ株式は上場を継続する。
GoogleはGoogle Cloudで提供している大規模分散データベース「Cloud Spanner」に、PostgreSQL互換のインターフェイスを実装したと発表しました。 At #GoogleCloudNext, we've announced the preview of Cloud Spanner’s PostgreSQL interface—combining the scalability & reliability of Spanner that enterprises trust with the familiarity & portability of PostgreSQL that dev teams . Take a deeper dive ↓ https://t.co/Y3xD1lDPLg — Google Cloud Tech (@GoogleCloudTech
私がWebアプリケーションを実装するうえのエラー設計をどのようにアーキテクチャの中で実現しているかを紹介します。 以下の方針で設計しています。 アプリケーション層にレベルを付与したエラーを定義する アプリケーション層では、定義したエラーに変換する ミドルウェアは全アプリケーション共通にする 以下、サンプルコードです。 サンプルのため省略していますが、実際にはパッケージ分割やファイル分割をしています。 package main import ( "fmt" "os" "golang.org/x/xerrors" ) var ErrUnknown = &ApplicationError{ code: 100, level: "Error", msg: "unknown", } var ErrUserNotFound = &ApplicationError{ code: 101, level:
はじめに Go近辺を徘徊していて見つけたブログポスト。 Ten Useful Techniques in Go Goな方々には常識なのかも知れないけど、Go初心者の私にとっては面白かったのでちょっとまとめてみる。 紹介されているのは以下の10個の項目。 Use a single GOPATH Wrap for-select idiom to a function Use tagged literals for struct initializations Split struct initializations into multiple lines Add String() method for integers const values Start iota with a +1 increment Return function calls Convert slices,maps,et
これは、なにをしたくて書いたもの? Goのエラー処理に関する情報を見ているとxerrorsというものがよく出てくるので、1度見ておこうかなと思いまして。 xerrorsパッケージ xerrorsパッケージは、Goのエラーハンドリングのためのパッケージです。 xerrors · pkg.go.dev GitHub - golang/xerrors このパッケージの提案内容は、こちら。 Proposal: Go 2 Error Inspection これが標準パッケージ、errorsに取り込まれたのがGo 1.13のようです。 errors - The Go Programming Language errorsパッケージについては、以前このエントリで試してみました。 Goのエラーに関するAPIを学ぶ - CLOVER🍀 xerrorsパッケージが持っている機能のうち、ほとんどのものはerr
Golang has many advantages, its popularity explains this. But error handling in Go 1 is not very efficient , we have to write many verbose , inconvenient codes in daily development. There’re several open source solutions to tackle this. Meanwhile, the Go team is improving this from both the language and the standard library aspects. Today we will analyze the common issues, compare the solutions, a
こんにちは、m3 エンジニアリンググループ CTO 矢崎(id:Saiya)です。 過去に Go 言語の仕様を一通り見た経験があったのですが、久しぶりに Go のコードを最近読み書きした際に、ここ数年の Go 言語やエコシステムの進化による変化もあり、発見やハマりが多々ありました。 Go 言語公式のロゴもスピード感ありますね。 同じような迷い・回り道をしてしまう方ももしかしたらおられるのではないかと思いますゆえ、 エムスリー Advent Calendar 2020 6 日目の記事として、筆者が実際に「最初から知っていれば時間を無駄にしなかったのに...!」と感じた知見をざっくばらんにシェアいたします。 本記事がどなたかの一助になりますと幸いです。 なお本記事の内容は筆者個人の理解・自身で直接読み書きしたユースケースの範囲での知見であり、全ての Go 利用事例に当てはまらない点も含みうりま
以前書いた Go初心者が気を付けること に解説をつけてみようと思いました。 情報検索や環境構築 golang.jpを見に行ってしまう この辺りはググラビリティの問題ではあるんですが、まだまだ「golang.jp」にたどり着いちゃう人が多いんです(そのせいでなかなか検索ランクも下がらない)。 「golang.jp」はGo0.9の頃の情報からほとんどアップデートされていません。なので今のGoとのミスマッチな情報がまばらにちりばめられている状態ですので見に行かない方がスムーズにGoを学べると思います。(たまたま現状と変わっていない情報を読み物として読むくらいなら良いのですが・・・。) 一応有志のランディングページに指し変わったので、この混乱は収束すると思います。 Golang(ごーらんぐ)と呼んでしまう(by hogedigo) 「Go」というワードのググラビリティの低さから「golang」で検
はじめに Excelize は、純粋な Go で記述されたライブラリで、XLAM / XLSM / XLSX / XLTM / XLTX ファイルの読み書きを可能にする一連の関数を提供します。Microsoft Excel™ 2007 以降で生成されたスプレッドシートドキュメントの読み取りと書き込みをサポートします。高い互換性により複雑なコンポーネントをサポートし、大量のデータを含むワークシートからデータを生成または読み取るためのストリーミング API を提供します。このライブラリには Go バージョン 1.18 以降が必要です。 ソースコード: github.com/xuri/excelize 問題: github.com/xuri/excelize/issues go.dev: pkg.go.dev/github.com/xuri/excelize/v2 ライセンス契約: BSD 3-
テーブルの取得 func (f *File) GetTables(sheet string) ([]Table, error) GetTables は、指定されたワークシート名によってワークシート内のすべてのテーブルを取得するメソッドを提供します。 テーブルの削除 func (f *File) DeleteTable(name string) error DeleteTable は、指定されたテーブル名によってテーブルを削除するメソッドを提供します。 自動フィルタ func (f *File) AutoFilter(sheet, rangeRef string, opts []AutoFilterOptions) error AutoFilter は、ワークシートの名前、座標領域、および設定によってワークシートに自動フィルタを追加する方法を提供します。Excel の自動フィルタは、いくつか
GoConでは毎回エラー処理について面白い知見が得られる.Go Conference 2014 autumn においては(実際のトークではないが)居酒屋にて@JxckさんがRob Pike氏から以下のようなテクニックを紹介してもらっていた. Errors are values - The Go Blog Golang Error Handling lesson by Rob Pike これはWrite(やRead)のエラー処理が複数続く場合にerrWriter を定義して複数のエラー処理を一箇所にまとめてコードをすっきりとさせるテクニックであった. そして今回の Go Conference 2016 spring のkeynoteにおいてもDave Cheney氏から(僕にとっては)新たなエラー処理テクニックが紹介された. Gocon Spring 2016 実際に使ってみて/コードを読ん
原文 目次 go fmt Comment Sentences Contexts Copying Crypt Rand Declaring Empty Slices Doc Comments Don’t Panic Error Strings Examples Goroutine Lifetimes Handle Errors Imports Import Blank Import Dot In-Band Errors Indent Error Flow Initialisms Interfaces Line Length Mixed Caps Named Result Parameters Naked Returns Package Comments Package Names Pass Values Receiver Names Receiver Type Synchronous Fun
公式サイト A Tour of Go Web上で実行しながら学ぶことができる公式のチュートリアルです。 チュートリアル 公式のチュートリアルです。初学者向けからジェネリクスのチュートリアルなども用意されています。 A Tour of Goが終わった後に取り組むと良いでしょう。 Go Wiki Go Code Review Commentsなどが掲載されているGitHub上のWikiです。 パッケージドキュメント 標準パッケージやサードパーティ製のパッケージのドキュメントが見れるサイトです。検索もできます。 入門 プログラミング言語Go完全入門 筆者が作っている巨大なGoの入門資料です。なぜGoが作られたのか、から最新のジェネリクスの情報、静的解析まで扱っています。 Gopher道場 Goを体系的に学べる場です。10時間くらいある動画教材(自習室から入手可)もあります。 Go の最初の手順
米Notion Labsは10月13日、情報共有サービス「Notion」の日本語ベータ版を公開した。ウェブブラウザから対応し、アプリ(デスクトップ・モバイル)の日本語化は今後数週間のうちに順次対応予定だという。 Notionは、メモ、ドキュメント、プロジェクト管理、wikiなどを、カスタマイズ可能な形で組み合わせたオールインワンサービス。同社によれば現在ユーザーの約80%が米国外で、デイリーアクティブユーザーは約4倍(2020年8月~2021年8月)に成長しているとのこと。2021年に同社の評価額は100億ドルに達している。 日本のデイリーアクティブユーザー数も、2021年8月に前年同月比で約4倍に増加し、ラクスルやスマートニュースなど1000社以上のスタートアップが利用しているという。現在日本には、6つの地域コミュニティがあり、1200名以上が参加しているとのこと。
はじめに 私は今年の8月から、抑うつ症状および後述する諸症状の治療のため仕事を休んでいる。現在に至るまでのことを整理しようと思って書き出していたら、客観的に見ると楳図かずおの漫画みたいでちょっとおもしろいため公開する。ゆえにテーマ自体は重いものの、記載の内容については笑っていただいて問題ないということを予め書き添えておく。 背景情報 私…20代後半、独身。とあるゼネコンの現場勤務(正社員)。就業場所は北の方。 経緯としては、本来3名程度で行う仕事の担当に2020年04月から私1名が配属され、増員の予定をなんだかんだでうやむやにされ続けてきた、という感じ。 2020年12月 … オンオフの切り替えがパッカパカになる・職場(工事現場)が1〜3月のあいだ豪雪のため作業できなくなると予想されたため、突貫でいろいろ仕上げることになる。毎朝5時台に出勤して雪かき→仕事→雪かきの日々が続く。 ・これまで
この記事はGoのコードをいくらか書いていてもっとGoらしい書き方に興味を持ってからみてね!(Go初見で読んでも響かない内容です) Goは「シンプルで迷いなく書ける」というのが売りではあるのですが、 実際書き始めると、「あれ?これどうやって書くほうがいいの?」ってポイントにちょくちょく巡り合います。そのようなポイントを思い出しながら今思うベターな書き方を紹介しようと思う。 err変数束縛について err変数の受け取りを複数回繰り返していると「:=」だけで書けないという状況に出会うでしょう。 err := funcA() if err != nil { ... } err := funcB() // <- コンパイルエラー: "no new variables on left side of :=" if err != nil { ... }
Go の言語仕様はシンプルで他の言語に比べてはまりどころが少なくて学習コストが小さめな言語のように思います。しかし、それでもはまるところがないわけではないので、自分がはまって時間を無駄にしてしまったことを書き留めておきます。 念の為誤解のないように追記しておくと、この文書の目的は Go を批判することではなく Go が Go であるがゆえに C++/Java/Python など利用者が Go を使い始めるときに困惑あるいは誤解するであろうポイントをまとめておくことで初めて Go を触る人がスムーズに Go を使い始められるようにすることです。私個人は Go はバランスがとれた良い言語でだと思いますし、気に入っています。 目次 interface と nil (Go の interface は単なる参照ではない) 文献 メソッド内でレシーバ(this, self)が nil でないことをチェ
Goにはいくつかプログラムを終了させる手段が存在する。 プログラムを終了させるときにどれを選べばいいか調べてみた。結論から言うとmain関数内でdeferを使わずos.Exit関数を呼ぶ。 TL;DR Goで意図的にプログラムを終了させることができる処理は次のとおり https://golang.org/pkg/os/#Exit https://golang.org/pkg/builtin/#panic https://golang.org/pkg/runtime/#Goexit main関数内でdeferを使わずos.Exit関数を呼ぶのが一番良いと思う panic関数は終了コードを明示的に決めることができない 一方ですべてのゴルーチンを停止してくれるらしい runtime#Goexit関数をmain関数で呼ぶのは行儀が悪そう Calling Goexit from the main g
golangのos packageにはExit()という関数がいて、その名の通りOSに値を返してプロセスが死ねる。 で、ドキュメントによると、 func Exit(code int) Exit causes the current program to exit with the given status code. Conventionally, code zero indicates success, non-zero an error. The program terminates immediately; deferred functions are not run. とあって、deferに登録した関数をすべて破棄してくれるらしいと書いてある。念の為に試しておくと、 package main import "os" func test() { println("hello in t
Goのエラーハンドリングが採ったスタイル 多値返し 直積(関数の返値とエラーを両方返す) try-finallyをdeferという機構でカバー panicはプロセスを落とすためのもの Goはこの戦略でエラーハンドリングを行うとしましたので、「多値はなぜタプルじゃないんだ?」、「直和(返値orエラー)で十分じゃ?」「panic-recoverでtry-catchできそう?」などいう様な他の処理系の風習を持ち込むことは意味がありません。そしてそれらの提案の多くはすでに検討されリジェクトされてきた経緯があります。 「try組み込み関数」プロポーザルなんかも検討されマージ直前くらいまで進んだこともありますが、「Goのエラーハンドリング」にとって一長一短がありました。その欠点課題は解決できずに最終的にリジェクトされました。 「多値返し」は実にCPUフレンドリーな機構で、C言語の関数呼び出し規約にちょ
« cat で色々な物をシンタックスハイライト出来る ccat に html 出力機能を入れた。 | Main | 別のプロセスの動的な環境変数を盗み取る » 初めてGolangで書いたデータ投入ツールでプロセスがモリモリ肥大化していくのは ループ内で defer hoge.Delete() とか書いてたせいだったらしい。 defer を消したら100〜200MB落ち着いている。 — m.yuzuki (@ephemeralsnow) December 11, 2015 golang の defer は後処理のキューの登録です。コードを見ていないので分かりませんが、おそらくこういうコードを書いたのだと推測します。 package main import ( "fmt" ) type foo struct { n int } func Create(n int) *foo { fmt.Pri
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く