コードレビューの nit の意味

コードレビューのコメントに記述されることがある「nit」ですが、これは「nitpicking(つまらぬあら探し)」の略語です。

 

コメントに「nit」が付与されている場合、「細かいところを指摘するようだけど ... あなたの判断で、これについては必ずしもコードを修正する必要はないですよ」という意味になります。

 

コードレビューの不要な混乱を避けるためには、定義を正しくしておくことは大切だと思います。日本人には謙虚な心がありますが、控えめな気持ちを表現するために「nit」を書き込むのは止めたほうが良いでしょう。

 

コードレビューにかかる開発者それぞれの負担を、可能な限り小さくすることは大切で、そのためにも問題への明確な指摘とは区別して、必ず修正する必要はないけれど可能であれば変更を検討してほしいことを「nit」として伝えるべきでしょう。

 

よくあるのが「nit」と書かれていても、結局は毎回すべてのコメントに対応してしまっているという状況です。この場合は「nit」とその他のコメントに、実質的な区別がなく、意味がありません(謙虚さは伝わるかも知れませんが、それなら「nit」を使う必要があるでしょうか?)。

 

参考文献:
The Standard of Code Review | eng-practices

Reviewers should always feel free to leave comments expressing that something could be better, but if it’s not very important, prefix it with something like “Nit: “ to let the author know that it’s just a point of polish that they could choose to ignore.

レビュー担当者は何か良くできそうなものがあれば、いつでも気軽にコメントの残すことが出来ます。しかしもし、あなたのコメントが重要でないならば、例えば「Nit:」のようなものをコメントに付与して、よりコードを磨き上げることは可能だが、無視しても構わないということを伝えることもできます。

Fix: 'The Cloud Firestore API is not available for Datastore Mode projects.'

背景

Firebase console から Firestore をセットアップし、ローカル環境のスクリプトから Firestore にアクセスしようとしたときに、"The Cloud Firestore API is not available for Datastore Mode projects." というエラーログが出力され、アクセスに失敗した。

原因

こちらの記事を見て、原因がわかりました。

Firestore には "Native mode" と "Datastore mode" が存在する。

 

Python の場合、Firestore に関するライブラリが2種類存在しました。

私がこのときに利用していたのは、前者の "google-cloud-firestore" でした。このライブラリを使用する場合は、Firestore が "Native mode" で動作している必要があるようです。"Datastore mode" の場合は、後者のライブラリになります。

 

解決

Firestore が "Datastore mode" で動作していたため、"Native mode" に切り替えます。

f:id:komiyak:20210322220127p:plain

Google Cloud のコンソールから、対象のプロジェクトを選択して、"Datastore" => "Switch to native mode" をクリックしてください。

 

蛇足ですが、私の場合

Firebase は Google Cloud とプロジェクトを共有していますが、それぞれのコンソールから操作が可能なので、それが混乱を招くことがあります。私の場合は、Firestore を Firebase コンソールからセットアップしていたのですが、それについてのサービスアカウントを作成しようとして、Google Cloud から操作したので、対象のプロジェクトをうっかり間違えてしまうというミスをしました。

 

Firebase コンソールからでも、サービスアカウントの作成に移動できますので、そちらを使ったほうがミスがないかもしれません。

  • "Firebase Console" => "Project settings" => "Service accounts" => "Other service accounts" の "N service accounts from Google Cloud" をクリック

f:id:komiyak:20210322221525p:plain

"N service accounts from Google Cloud" からサービスアカウント管理画面へ直接遷移する