2019-01-01から1年間の記事一覧
最近、embulkをいじる機会があって、色々と思うところがあったので書いておく。 今回わたしが使ったケースではembulkのINPUTはバッチが作ったJSONL形式のファイルで、OUTPUTがMySQLのDBである。 OUTPUT先のDBのデータはAPIから専ら参照用に作られ、APIがその…
Goはヌルポしないという事実に驚愕してしまった もう言いたいことはタイトルがすべてなのだが、Goはnilからメソッドを呼んでもnil ponterでパニックになったりしない。以下のGoのプログラムでmain()関数のローカル変数fはnilだが、f.IsNull()などのメソッド…
Pythonにもblackというgofmtみたいなコードフォーマッターがあった Goを書いていると、gofmtコマンドを叩くとインデントやTrailing whitespaceなどを勝手に直してファイルを書き換えてくれる。 わたしがPythonを使ってきてGoを覚え始めたときにこれは便利だ…
目次 mapの競合状態とは何か? どうしたらいいのか? sync.RWMutexを使う 共有ロックと排他ロック sync.Mapを使う atomic.Valueを使う ロックとCompare and swap さいごに 感想 mapの競合状態とは何か? GoのmapはあるgoroutineでReadしているときに別のgoro…
NULLを許可する列をScanするときは要注意 database/sqlでMySQLのデータを取得するとき、NULLを許可する列の扱いがちょっと要注意だった。まず、こういうNULLを許すテーブルにデータを入れる。 CREATE TABLE `students` ( id INT PRIMARY KEY, active TINYINT…
エンジニアをやっているとコードレビューをしたり受けたりすることが日常的ですが、レビューは人間関係に絡むのでお悩みの職場も多いのではないでしょうか。そんな中、ぼやっと思ったことをここに書いておきます。 人間関係が浅いうちはレビューコメントにタ…
Goのmapやスライスを操作するコードを書いていて、やたらとレビュー指摘をもらったのでここにダメな操作と大丈夫な操作をメモしておく。例えば、こういうコードは余計なことをしているので直しなさいという指摘をもらった。 package main import "fmt" func …
docker-compose.ymlを適当に書いてPythonを動かすDockerコンテナを作りたいなと思い、docker-compose.ymlとDockerfileを揃えたが docker-compose up してもプロセスが終わってしまう。 $ docker-compose build ... Successfully built 95a7c527a5d9 Successf…
Caret requirements (キャレット要件) poetryのpyproject.tomlでPythonパッケージのバージョンを指定する記号の意味がよくわからなくて調べた。特に頻出して意味がわからなかったのが [tool.poetry.dev-dependencies] coverage = "^4.5" flake8 = "^3.5"この…