なんてこったいブログなんてこったいブログナビゲーションを切り替えTunacan字幕スタジオ将軍ファンデルワールス力プロフィールGo言語Go言語Go言語とコード生成Go言語はコードジェネレータが活きる場面が他の言語と比べて多いということがわかってきた。前Go言語Goでテストに失敗した時だけ通知したいプロジェクトのコード規模が大きくなってくると、一回のテストの実行にかかる時間が数十秒を超えてくるようなことがある。変更があったファイルあるいはパッケージのみをテストするような進め方にすると効率が上がるが、後になってから「実は他のところが影響を受けてテストが通らなくなっていた」というようなことが起きるようになり、これはこれで効率が悪い。加えて、テスト結果も欲を言えば「問題が発生した時のみ」通知してほしい。テストが終了するたびに結果を目視してOKかどうかを確認する、という作業も、1日に何十回と繰り返していればそこそこ目が疲れる。そこで、開発作業中にファイルの変更があるたびにバックグラウンドで全パッケージの自動テストを走らせ、Failしたらノーティフィケーションで通知する、というようなことを試した。2を買ってから、リビングや出先ではノートPCやiMacの代わりにタブレットを使う場面が増えた。ブラウジングや読書に関しては、MacBookやiMacよりもiPadの方が素直に快適だと感じるようになった。Proを購入したので、もう一度iPadでプログラミングもできないか挑戦してみようと思う。Createその4引き続き、Createに関するコールバックを一つずつ定義されている順番に読んでいく。今回はsaveBeforeAssociationsCallback。O/Rマッピングの実装が登場するので、多少読んでいくのが大変だが、一つずつ読んでいく。Createその3引き続き、Createに関するコールバックを一つずつ定義されている順番に読んでいく。今回はbeforeCreateCallback。Createその2ちょっと大変だが、createに関する各CallbackProcessorについて中身を見ていこう。createに関するコールバックはcallback_create.goに定義されている。Createその1OpenでDBの接続を行う部分のコードを読んだので、次はDBに対してクエリーを発行する部分を読んでいく。1000})まずは一番わかりやすそうなCreateのコードを見てみよう。DBのトランザクション、クエリー生成、O/Rマッピングなど、非常に長い内容になるため、いくつかのポストに分けて読んでいこうと思う。OpenGo言語でDBを操作するライブラリはいくつか存在するが、手軽さとAutoMigrationの便利さから、個人的にはGORMが気に入っている。ある程度使っていると、バッチInsertができないなど、いくつか気になる点が出てきた。勉強を兼ねてコードを読んでいくことにした。今回は長くなるので、何回かに分けて書いていく。Completion)という機能が存在する。個人的に大分活用している機能なのだが、周りを見ていると意外と知名度が低そうなので、普及のためここに魅力を記しておきたい。Completionの機能が欲しいなと思った。Issuesを見てみると、ちょうど「他の言語もサポートしてよ」というIssueが上がっていた。それに対する作者の返答が「今のところTS/JSしか書かないので、興味はないけどこのExtensionはオープンソースだから自分でやってみたら?」となっていたので、僕も自分でやってみようかと思ってソースコードを読んでみることにした。