Kotlin कोड रिव्यू: सीनियर डेवलपर्स को क्या परेशान करता है

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

सीनियर डेवलपर्स आपका Kotlin कोड कैसे देखते हैं: असली उदाहरणों के साथ समझें

\n\n

आपने कोड लिखा, रिपॉजिटरी में push किया, और दिल धड़क रहा है कि कब approval मिले। लेकिन हरी टिक के बजाय, सीनियर डेवलपर के दस कमेंट आ जाते हैं। जाना-पहचाना लग रहा है? अगर आप Kotlin में लिखते हैं, तो आपने ज़रूर महसूस किया होगा जब आपका बेहतरीन कोड code review के बाद बेकार लगने लगता है।

\n\n

इस लेख में हम देखेंगे कि Kotlin कोड रिव्यू में सीनियर डेवलपर्स की सबसे आम टिप्पणियाँ क्या होती हैं। हम आपको सिंटैक्स नहीं सिखाएँगे — हम दिखाएँगे कि ऐसा कोड कैसे लिखें जो पहली बार में ही पास हो जाए। चलिए शुरू करते हैं!

\n\n

1. Null Safety: "एल्विस ऑपरेटर क्यों नहीं इस्तेमाल करते?"

\n\n

Kotlin की सबसे बड़ी खासियत है null safety। लेकिन कई डेवलपर्स, खासकर Java से आए हुए, "पहले null चेक करो, फिर execute करो" वाला स्टाइल अपनाते हैं। सीनियर इसे तुरंत पकड़ लेते हैं।

\n\n

बुरा उदाहरण (Java-स्टाइल)

\n
fun getUserName(user: User?): String {\n    return if (user != null) {\n        user.name\n    } else {\n        "Unknown"\n    }\n}
\n\n

अच्छा उदाहरण (Kotlin-स्टाइल)

\n
fun getUserName(user: User?): String {\n    return user?.name ?: "Unknown"\n}
\n\n

एल्विस ऑपरेटर (?:) और safe call (?.) का इस्तेमाल कोड को छोटा और पढ़ने में आसान बनाता है। सीनियर को यह पसंद आता है जब आप स्पष्टता खोए बिना लाइनें बचाते हैं। याद रखें: if (x != null) { ... } else { ... } — यह पुराना तरीका है।

\n\n

2. Extension Functions: "तुम्हारी utility क्लास कहाँ है?"

\n\n

जब आप StringUtils.capitalize(str) जैसी स्टैटिक utility क्लास देखते हैं, तो अनुभवी Kotlin डेवलपर भौंहें चढ़ा लेगा। Extension functions ही Kotlin को इतना खूबसूरत बनाते हैं।

\n\n

बुरा उदाहरण

\n
object StringUtils {\n    fun capitalize(text: String): String {\n        return text.replaceFirstChar { it.uppercase() }\n    }\n}\n\n// इस्तेमाल\nval result = StringUtils.capitalize("hello")
\n\n

अच्छा उदाहरण

\n
fun String.capitalizeFirst(): String {\n    return this.replaceFirstChar { it.uppercase() }\n}\n\n// इस्तेमाल\nval result = "hello".capitalizeFirst()
\n\n

सीनियर कहेंगे: "एक कचरा ऑब्जेक्ट क्यों बना रहे हो? बस class को extend करो!" Extension functions का इस्तेमाल करें — इससे कोड पढ़ने में आसान होता है और यह Kotlin best practices का पालन करता है।

\n\n

3. Sealed Classes बनाम Enum: "तुम्हारा enum पुराना हो गया"

\n\n

Kotlin में enum अच्छे हैं, लेकिन sealed classes ज़्यादा लचीलापन देते हैं। खासकर जब एक ही hierarchy में अलग-अलग तरह के डेटा स्टोर करने हों।

\n\n

बुरा उदाहरण (enum)

\n
enum class Result {\n    SUCCESS,\n    ERROR,\n    LOADING\n}\n\nfun handleResult(result: Result) {\n    when (result) {\n        Result.SUCCESS -> // ...\n        Result.ERROR -> // ...\n        Result.LOADING -> // ...\n    }\n}
\n\n

अच्छा उदाहरण (sealed class)

\n
sealed class Result {\n    data class Success(val data: List<Item>) : Result()\n    data class Error(val message: String, val code: Int) : Result()\n    object Loading : Result()\n}\n\nfun handleResult(result: Result) {\n    when (result) {\n        is Result.Success -> println("Data: ${result.data}")\n        is Result.Error -> println("Error: ${result.message}")\n        Result.Loading -> println("Loading...")\n    }\n}
\n\n

सीनियर डेवलपर्स सराहेंगे कि आप स्टेट्स दिखाने के लिए sealed classes का इस्तेमाल कर रहे हैं। यह सीनियर Kotlin डेवलपर्स की सबसे अच्छी सलाह में से एक है — टाइप hierarchies को स्पष्ट बनाएँ।

\n\n

4. Scope Functions: "तुम let, apply और run भूल गए"

\n\n

Scope functions (let, apply, run, with, also) — ये बहुत शक्तिशाली हैं

ब्लॉग

पुस्तक अनुशंसाएँ