20

مسیر ادامه، Best Practice و جمع‌بندی؛ از شاگرد به سازنده

الان دیگه فقط سینتکس بلد نیستی؛ باید درست تمرین کنی که کدزن واقعی بشی.

درس 20 از 20

قانون اول: val تا وقتی مجبور نشدی var

هرجا امکان داره از `val` استفاده کن. تغییرپذیری کمتر یعنی باگ کمتر. کدت مثل آدم آروم می‌مونه، نه مثل گروه واتساپی فامیل هر دقیقه عوض بشه.

مثال را با چند مقدار دیگر هم امتحان کن؛ چون برنامه‌نویسی با نگاه کردن یاد گرفته نمی‌شود، با خراب کردن و درست کردن جا می‌افتد.

نکته کاربردی: این بخش اسکلت ذهنی درس را می‌سازد. وقتی بدانی این قطعه دقیقاً چه مسئله‌ای را حل می‌کند، بعداً موقع پروژه فقط syntax حفظی تحویل نمی‌دهی؛ تصمیم درست می‌گیری. این توضیح قرار است دید پروژه‌ای بدهد، نه اینکه فقط تعریف کتابی حفظ کنی.

اسم‌گذاری درست

اسم تابع باید بگه چه کاری می‌کنه. `doThing` و `handleData` اسم نیستن؛ اعلامیه گم‌شدن منطقن. واضح بنویس: `calculateFinalPrice`، `validateEmail`، `loadUserProfile`.

مثال را با چند مقدار دیگر هم امتحان کن؛ چون برنامه‌نویسی با نگاه کردن یاد گرفته نمی‌شود، با خراب کردن و درست کردن جا می‌افتد.

نکته کاربردی: اینجا باید به رفتار کد نگاه کنی، نه فقط ظاهرش. مقدارها را عوض کن و دوباره اجرا بگیر تا دستت بفهمد برنامه چطور واکنش نشان می‌دهد. این توضیح قرار است دید پروژه‌ای بدهد، نه اینکه فقط تعریف کتابی حفظ کنی.

کد کوتاه ولی نه مبهم

کاتلین اجازه می‌ده خیلی کوتاه بنویسی؛ اما کوتاه‌نویسی قرار نیست مسابقه شعبده‌بازی باشه. کدی خوبه که هم کم باشه هم فهمیدنی.

مثال را با چند مقدار دیگر هم امتحان کن؛ چون برنامه‌نویسی با نگاه کردن یاد گرفته نمی‌شود، با خراب کردن و درست کردن جا می‌افتد.

تمیزتر
val activeUsers = users
    .filter { it.isActive }
    .map { it.name }
خروجی یا نتیجه اجرا
اگر users شامل چند کاربر فعال باشد، خروجی activeUsers فقط اسم همان فعال‌هاست؛ مثلاً [Mina, Reza].
نکته کاربردی: این الگو در پروژه واقعی زیاد تکرار می‌شود. از همین حالا تمیز و خوانا بنویس تا بعداً موقع دیباگ، خودت به خودت فحش ندهی. اگر خروجی با چیزی که انتظار داشتی فرق کرد، اول مقدار متغیرها و مسیر اجرا را چک کن؛ ۹۰٪ باگ‌های اول راه همین‌جا قایم شده‌اند.

برنامه تمرین ۳۰ روزه

۱۰ روز اول سینتکس و تمرین‌های کوچیک. ۱۰ روز دوم پروژه Todo، ماشین‌حساب، مدیریت هزینه. ۱۰ روز سوم Android Compose یا Ktor API. هر روز کد بزن؛ دیدن ویدیو بدون کدنویسی مثل دیدن باشگاه رفتن بقیه‌ست؛ عضله برای تو نمی‌سازه.

مثال را با چند مقدار دیگر هم امتحان کن؛ چون برنامه‌نویسی با نگاه کردن یاد گرفته نمی‌شود، با خراب کردن و درست کردن جا می‌افتد.

نکته کاربردی: نکته حرفه‌ای این است که Kotlin معمولاً راه کوتاه‌تر دارد، ولی کوتاه‌تر همیشه بهتر نیست. اول خوانایی، بعد زرنگ‌بازی. این توضیح قرار است دید پروژه‌ای بدهد، نه اینکه فقط تعریف کتابی حفظ کنی.

حالا چی یاد بگیرم؟

برای Android برو سراغ Compose، معماری MVVM، ViewModel و Room. برای بک‌اند برو سراغ Ktor، serialization، دیتابیس و تست. برای حرفه‌ای‌تر شدن هم coroutines و Flow رو عمیق‌تر تمرین کن.

مثال را با چند مقدار دیگر هم امتحان کن؛ چون برنامه‌نویسی با نگاه کردن یاد گرفته نمی‌شود، با خراب کردن و درست کردن جا می‌افتد.

نکته کاربردی: این بخش اسکلت ذهنی درس را می‌سازد. وقتی بدانی این قطعه دقیقاً چه مسئله‌ای را حل می‌کند، بعداً موقع پروژه فقط syntax حفظی تحویل نمی‌دهی؛ تصمیم درست می‌گیری. این توضیح قرار است دید پروژه‌ای بدهد، نه اینکه فقط تعریف کتابی حفظ کنی.

نتیجه این درس 🎯

الان از پایه تا مسیر پروژه واقعی را دیده‌ای. ادامه مسیر با تمرین روزانه، پروژه کوچک، خواندن کد دیگران و ساخت خروجی واقعی شکل می‌گیرد؛ نه با فقط دیدن آموزش.

تمرین! 🧠

یک چک‌لیست شخصی ۵ موردی برای ادامه یادگیری Kotlin بنویس.

جواب تمرین
fun main() {
    val checklist = listOf(
        "هر روز ۳۰ دقیقه Kotlin تمرین کنم",
        "یک پروژه Todo کامل بسازم",
        "Null Safety را در پروژه واقعی استفاده کنم",
        "Coroutine و Flow را با مثال تمرین کنم",
        "یک اپ Compose یا API با Ktor بسازم"
    )

    checklist.forEachIndexed { index, item ->
        println("${index + 1}. $item")
    }
}
خروجی جواب
1. هر روز ۳۰ دقیقه Kotlin تمرین کنم
2. یک پروژه Todo کامل بسازم
3. Null Safety را در پروژه واقعی استفاده کنم
4. Coroutine و Flow را با مثال تمرین کنم
5. یک اپ Compose یا API با Ktor بسازم