2023-01-01から1年間の記事一覧

Goの勉強 共有された変数による並行性

Goの勉強をやり始めたのでメモ。 「プログラミング言語 Go」を読んでる。 競合状態 あるゴルーチン内のイベントxと別のゴルーチン内のイベントyがあり、xとyのどちらのイベントが先に発火するか不明な場合、xとyは並行であると言う。 ある関数が2つ以上のゴ…

ポエム:『YAGNIで思考停止しない』で思考停止しない

最近、設計界隈で『YAGNIで思考停止しない』という言葉をよく耳にする。 だが一方で、YAGNIについてあまり理解せずにこの言葉が使われているのではないかと思うことがある。 YAGNIを手抜きの手段だと捉え、そこで思考停止しているから、『YAGNIで思考停止し…

Goの勉強 ゴルーチンとチャネル

Goの勉強をやり始めたのでメモ。 「プログラミング言語 Go」を読んでる。 ゴルーチン とりあえずスレッドみたいなもの(厳密には違うらしい) main関数を呼び出すゴルーチンはメインゴルーチンと呼ぶ 新たなゴルーチンは go 文で生成できる main関数が終了す…

「開発速度が遅い」は誰にとっての問題なのか?

3連休も終わりですね。 連休だったので帰省していたのですが、なんと実家にあの有名な古典の「ライト、ついてますか」があり、思わず一気読みしてしまいました。 この本は問題解決の本で、「エンジニアにきいたオススメの1冊」みたいなのにも取り上げられる…

Goでスペースっぽい文字を見つける

(空文字列ではない) Golangでスペースっぽい文字を見つけようとすると、次の3つの方法がありそうです。 unicode.IsSpace を使う 正規表現の \s を使う 正規表現の \pZ を使う この3つについて、自分はいまいち使い分けがわかっていなかったので、調べてみ…

Goの勉強 インターフェース

Goの勉強をやり始めたのでメモ。 「プログラミング言語 Go」を読んでる。 契約としてのインターフェース GoはStructualTypingを採用している。 インターフェースを明示的に宣言していなくても、シグネチャを満たしていればそのインターフェースだと見做せる…

PHPerKaigi2023にいくと登壇しなくてもアウトプットが増える

PHPerKaigi2023 にいってきました。 PHPerKaigiは2,3年ぶりの参加です。 そして、初の一般参加です。 僕は登壇したわけではないですが、なぜかアウトプットが増えました。 不思議です。 の力でアウトプットがはえる PHPerKaigiといえばです。 しか飲んでいな…

Goの勉強 メソッド

Goの勉強をやり始めたのでメモ。 「プログラミング言語 Go」を読んでる。 メソッド宣言 type Point struct{ X, Y float64 } func (p Point) Distance(q Point) float64 { // ... } は次と一緒

大学院選びQ&A

無事に大学院のPBLの最終成果発表が終わり、卒業できそうなことがわかりました。 学業も無事に終わりましたので、春休みは無職を全力で楽しみます! さて、本題です。 「大学院で情報系を学びたい!」となると、東京都立産業技術大学院大学(以後AIIT)と北…

Goの勉強 関数

Goの勉強をやり始めたのでメモ。 「プログラミング言語 Go」を読んでる。 宣言 func name(parameter-list) (result-list) { body } パラメータと同様に返り値にも名前を付けることができる その場合は返り値の名前のローカル変数が作られる func pi() (pi fl…

Goの勉強 コンポジット型

Goの勉強をやり始めたのでメモ。 「プログラミング言語 Go」を読んでる。 配列 固定長で型が同じ必要がある 以下のように宣言できる var a [5]int var b [5]int{1, 2, 3, 4, 5} var c [...]int{1, 2, 3, 4, 5} var d [...]int{99: -1} 初期値がない場合はそ…

Goの勉強 基本データ型

Goの勉強をやり始めたのでメモ。 「プログラミング言語 Go」を読んでる。 整数 Goの整数には符号付き、符号なしがある。 rune は int32 の同類語で、 byte は int8 の同類語 rune はUnicodeのコードポイントであることを強調し、 byte は生データであること…