今川館

都内勤務の地味OLです

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

俺的embulkでMySQLにデータを入れるときの注意点

最近、embulkをいじる機会があって、色々と思うところがあったので書いておく。 今回わたしが使ったケースではembulkのINPUTはバッチが作ったJSONL形式のファイルで、OUTPUTがMySQLのDBである。 OUTPUT先のDBのデータはAPIから専ら参照用に作られ、APIがその…

Goはnilをレシーバーにメソッドを呼んでもnil pointerで落ちない

Go

Goはヌルポしないという事実に驚愕してしまった もう言いたいことはタイトルがすべてなのだが、Goはnilからメソッドを呼んでもnil ponterでパニックになったりしない。以下のGoのプログラムでmain()関数のローカル変数fはnilだが、f.IsNull()などのメソッド…

コードフォーマッター「black」を使ってPythonのコードの整形で悩むのをやめる

Pythonにもblackというgofmtみたいなコードフォーマッターがあった Goを書いていると、gofmtコマンドを叩くとインデントやTrailing whitespaceなどを勝手に直してファイルを書き換えてくれる。 わたしがPythonを使ってきてGoを覚え始めたときにこれは便利だ…

mapの競合状態のはなし

Go

目次 mapの競合状態とは何か? どうしたらいいのか? sync.RWMutexを使う 共有ロックと排他ロック sync.Mapを使う atomic.Valueを使う ロックとCompare and swap さいごに 感想 mapの競合状態とは何か? GoのmapはあるgoroutineでReadしているときに別のgoro…

NULLを許可する列をScanするときの注意点

Go

NULLを許可する列をScanするときは要注意 database/sqlでMySQLのデータを取得するとき、NULLを許可する列の扱いがちょっと要注意だった。まず、こういうNULLを許すテーブルにデータを入れる。 CREATE TABLE `students` ( id INT PRIMARY KEY, active TINYINT…

コードレビューのはなし

エンジニアをやっているとコードレビューをしたり受けたりすることが日常的ですが、レビューは人間関係に絡むのでお悩みの職場も多いのではないでしょうか。そんな中、ぼやっと思ったことをここに書いておきます。 人間関係が浅いうちはレビューコメントにタ…

Goのnilのmapやスライスで許されない操作

Goのmapやスライスを操作するコードを書いていて、やたらとレビュー指摘をもらったのでここにダメな操作と大丈夫な操作をメモしておく。例えば、こういうコードは余計なことをしているので直しなさいという指摘をもらった。 package main import "fmt" func …

docker-composeで tty: true にしてデーモンがいないコンテナを動かし続ける

docker-compose.ymlを適当に書いてPythonを動かすDockerコンテナを作りたいなと思い、docker-compose.ymlとDockerfileを揃えたが docker-compose up してもプロセスが終わってしまう。 $ docker-compose build ... Successfully built 95a7c527a5d9 Successf…

poetryのバージョンを指定する記号 "^" ハット/サーカムフレックス/キャレット

Caret requirements (キャレット要件) poetryのpyproject.tomlでPythonパッケージのバージョンを指定する記号の意味がよくわからなくて調べた。特に頻出して意味がわからなかったのが [tool.poetry.dev-dependencies] coverage = "^4.5" flake8 = "^3.5"この…