KotlinはすでにTODOを実装しています。 それは素晴らしい! しかし、少しアグレッシブです。
このコードの例を見てみましょう:
fun finishAwesomeFeature() { callAwesomeFeature() TODO(“add analytics so data scientists stop harassing me”) }
あなたのアプリが素晴らしい機能を呼び出す場合、KotlinはBlow up(台無し)するでしょう!
Exception in thread “main” kotlin.NotImplementedError: An operation is not implemented: add analytics so data scientists stop harassing me at AwesomeFeatureKt.finishAwesomeFeature
私は何か似たようなものが欲しかったが、少し穏やかだった(アグレッシッブに対して)。
•何かを得るために必要な 「コード内」のリマインダ – コードは私のドキュメント、ToDoリストなどです。サインインする必要はなく、コードをチェックするために別のツールに使う必要もありません。 私はいつもその中で完結できます(同じツールを使っています)。
•私のユーザーや生産中に決して台無しすることは決してありません。私は自分の遅れのためにユーザーに苦しみを強いることはできません。
•私と私の同僚の開発者にとっては積極的にBlow upしてください。彼らは強靭で、持ちこたえることができます(むしろ彼らは私に厳しいものになるでしょう)。
•そのBlow upするための「期限」を提示しなさい:納期に期限がある、私はそれを必ず今とする必要はない*。 アナリティクスが待つことができます**。
Kotlin -気の利く小悪魔です – 私はいくつかの小さな調整をすることができました:
// in an appropriately named file: DevCop.kt
fun ToDo(reason: String, date: Date) { if (BuildConfig.DEBUG && Date().after(date)) { TODO(reason) }
Timber.v(“operation $reason not implemented (yet)”) }
そして、成功しました!
•プロダクションでBlow upしない
•開発者だけがこの問題にを対応しなければなりません
•期限が過ぎている場合のみ
それをさらに気の利いたものにするために、人間のように日付を指定できる便利な日付作成メソッドがあります:
ToDo(“Remove tagged comments after xx-xxxxxx feature stable”,
ISDate(day = 28, month = 3))
ToDo(“Remove tagged comments after xx-xxxxxx feature stable”, ISDate(day = 28, month = 3))
フィドバック? 好き? 嫌い? 私はクレイジーですか?
補遺:超スマートなJesse Wilsonは、時限爆弾(アプリのデバッグ版でさえ)があまりにもアグレシッブなことがあると私に確信しました。 他の開発者の作業を、このテクニックでhosing/stopping している可能性があります。
Ralf Wondratschekはコメントの中で、ToDoをチェックインしたプロジェクトの古いリビジョンをチェックアウトした場合、基本的にはアプリの実行を停止していることを指摘しています。
Jesseは、私が本当に何かをこのようにしたいと思っていたのであれば、過去に見たアプローチは実行経路をますます「sleep(スリープ)」することだということを提案しました。 約束を守らなければ、アプリは劣化しますが、必ずしも他の人を止めたりするわけではありません。
私はこのテクニックを愛しています。それは、私たちがそれを実装することがいかに奇妙なのかについてだけです。
•コードパスが推奨されていないため、毎日10ms程度のsleepをさせなさい
•最大5秒のsleep状態にさせなさい、ANRにぶつからないように😎
これは両方の懸念に対処すべきである。
*あなたがまだ話すことができないなら、私は何事も先延ばしにしてしまう素晴らしいタイプの人間になるでしょう
**あれは冗談です! 私たちは常にアナリティクスをすぐに完了させます。
タイトル:Smarter ToDos With Kotlin
作者:Kaushik Gopal
原文URL:https://tech.instacart.com/smarter-todos-with-kotlin-beb522fe9a01