کتاب رمزگشایی مونَدها (Monads): راهنمای عملی
📚 محتوای این محصول آموزشی (پکیج کامل)
💡 این محصول یک نسخهٔ کامل و جامع است
تمامی محتوای آموزشی این کتاب در قالب یک بستهی کامل و یکپارچه ارائه میشود و شامل تمام نسخهها و فایلهای موردنیاز برای یادگیری است.
🎁 محتویات کامل بسته دانلودی
- کتاب صدها نکته فارسی (خودمونی) – نسخه PDF — زبان ساده و کاربردی
برای مشاهده نمونه ای از فرمت نسخه نکات ساده کتاب های ما اینجا را کلیک کنید. کتاب دریافتی شما نیز در موضوع خود به همین سبک خواهد بود. دقت کنید تعداد صفحات کتاب در اینجا فقط 10 صفحه برای نمونه بوده است و کتاب اصلی شما طبق سرفصل های گفته شده کتابی جامع خواهد بود. - کتاب صدها نکته رسمی فارسی – نسخه PDF — نگارش استاندارد، علمی و مناسب چاپ
برای مشاهده نمونه ای از فرمت نسخه نکته رسمی کتاب های ما اینجا را کلیک کنید. کتاب دریافتی شما نیز در موضوع خود به همین سبک خواهد بود. دقت کنید تعداد صفحات کتاب در اینجا فقط 10 صفحه برای نمونه بوده است و کتاب اصلی شما طبق سرفصل های گفته شده کتابی جامع خواهد بود. -
کتاب صدها پرسش و پاسخ تشریحی – نسخه PDF
— هر سؤال بلافاصله همراه با پاسخ کامل و شفاف ارائه شده است؛ مناسب درک عمیق مفاهیم و رفع ابهام.
برای مشاهده نمونه ای از فرمت نسخه پرسش و پاسخ کتاب های ما اینجا را کلیک کنید. کتاب دریافتی شما نیز در موضوع خود به همین سبک خواهد بود. دقت کنید تعداد صفحات کتاب در اینجا فقط 10 صفحه برای نمونه بوده است و کتاب اصلی شما طبق سرفصل های گفته شده کتابی جامع خواهد بود. -
کتاب صدها پرسش و پاسخ چهارگزینهای – نسخه PDF (نسخه یادگیری سریع)
— پاسخها بلافاصله پس از سؤال قرار دارند؛ مناسب یادگیری سریع و تثبیت مطالب.
برای مشاهده نمونه ای از فرمت نسخه کوییز چهارگزینه ای با پاسخ کتاب های ما اینجا را کلیک کنید. کتاب دریافتی شما نیز در موضوع خود به همین سبک خواهد بود. دقت کنید تعداد صفحات کتاب در اینجا فقط 10 صفحه برای نمونه بوده است و کتاب اصلی شما طبق سرفصل های گفته شده کتابی جامع خواهد بود. -
کتاب صدها پرسش و پاسخ چهارگزینهای – نسخه PDF (نسخه خودآزمایی پایانبخش)
— پاسخها در انتهای هر بخش آمدهاند؛ مناسب آزمون واقعی و سنجش میزان یادگیری.
برای مشاهده نمونه ای از فرمت نسخه کوییز چهارگزینه ای با پاسخ های انتهای فصل کتاب های ما اینجا را کلیک کنید. کتاب دریافتی شما نیز در موضوع خود به همین سبک خواهد بود. دقت کنید تعداد صفحات کتاب در اینجا فقط 10 صفحه برای نمونه بوده است و کتاب اصلی شما طبق سرفصل های گفته شده کتابی جامع خواهد بود.
🎯 این بسته یک دورهٔ آموزشی کامل و چندلایه است؛ شامل کتابها، تمرینها و خودآزمایی .
ℹ️ نکات مهم هنگام خرید
- این محصول به صورت فایل دانلودی کامل ارائه میشود و نسخهٔ چاپی ندارد.
- توجه: لینکهای اختصاصی دوره طی حداکثر 24 ساعت پس از ثبت سفارش ارسال میشوند.
- دقت کنید لینک ها به شماره موبایل شما ارسال می شوند. پس در ارائه شماره موبایل صحیح دقت کنید.
- برای راهنمایی در مورد نحوه دانلود به شماره 09395106248 پیامک دهید یا تماس بگیرید. (ایده آل ترین گزینه ارسال پیام در یکی از پیام رسان ها به همین شماره است تا سریعا لینک های کتاب همانجا برای شما ارسال گردد.)
- اگر پرداخت انجام شده ولی بعد از 24 ساعت هنوز لینکها را دریافت نکردهاید، نام و نام خانوادگی و نام محصول را پیامک کنید تا لینکها دوباره ارسال شوند.
💬 راههای ارتباطی پشتیبانی:
واتساپ یا هر پیام رسان داخلی یا پیامک:
09395106248
تلگرام: @ma_limbs
🎓 دوره آموزشی جامع
📚 اطلاعات دوره
عنوان دوره: رمزگشایی مونَدها (Monads): راهنمای عملی
موضوع کلی: برنامه نویسی
موضوع میانی: برنامهنویسی تابعی (Functional Programming)
📋 سرفصلهای دوره (100 موضوع)
- 1. مقدمهای بر برنامهنویسی تابعی
- 2. برنامهنویسی اعلانی در مقابل برنامهنویسی امری
- 3. توابع به عنوان شهروند درجه یک (First-Class Functions)
- 4. توابع خالص (Pure Functions) و اثرات جانبی (Side Effects)
- 5. شفافیت ارجاعی (Referential Transparency)
- 6. تغییرناپذیری (Immutability) و مزایای آن
- 7. توابع مرتبه بالا (Higher-Order Functions)
- 8. ترکیب توابع (Function Composition)
- 9. کاری کردن (Currying)
- 10. کاربرد جزئی (Partial Application)
- 11. عبارات در مقابل دستورات (Expressions vs. Statements)
- 12. ارزیابی تنبل (Lazy Evaluation)
- 13. ساختارهای داده تغییرناپذیر
- 14. بازگشت (Recursion) به جای حلقهها
- 15. بازگشت دمی (Tail Recursion) و بهینهسازی آن
- 16. چالش مدیریت اثرات جانبی در کد خالص
- 17. معرفی مفهوم زمینه یا کانتکست (Context)
- 18. مشکل مقادیر پوچ (The Problem with Null)
- 19. الگوهای مدیریت خطا: کدهای بازگشتی در مقابل استثناها
- 20. نیاز به یک انتزاع برای کار با زمینهها
- 21. مقدمهای بر تایپکلاسها (Typeclasses)
- 22. آشنایی با مفهوم Functor
- 23. قانون Functor: نگاشت (Mapping) روی یک زمینه
- 24. پیادهسازی `map` برای یک کانتینر ساده
- 25. Functor برای کانتینر Option/Maybe
- 26. Functor برای کانتینر Either/Result
- 27. Functor برای لیستها
- 28. قانون اول Functor: قانون همانی (Identity Law)
- 29. قانون دوم Functor: قانون ترکیب (Composition Law)
- 30. چرا قوانین Functor مهم هستند؟
- 31. محدودیتهای Functor: کار با توابع داخل یک زمینه
- 32. معرفی Applicative Functors
- 33. تابع `pure` یا `of`: قرار دادن یک مقدار در زمینه پیشفرض
- 34. تابع `ap` یا `<*>`: اعمال یک تابع در زمینه روی یک مقدار در زمینه
- 35. تفاوت `map` و `ap`
- 36. حل مشکل اعمال توابع چندآرگومانی با Applicative
- 37. پیادهسازی Applicative برای Option/Maybe
- 38. پیادهسازی Applicative برای Either/Result
- 39. قوانین Applicative: همانی، هومومورفیسم، تعویض
- 40. کاربرد عملی Applicative: اعتبارسنجی فرم
- 41. محدودیت Applicative: محاسبات وابسته و زنجیرهای
- 42. معرفی مونَد (Monad): گام بعدی در انتزاع
- 43. ایده اصلی مونَد: توالیبندی محاسبات در یک زمینه
- 44. تابع `flatMap` یا `bind` یا `>>=`: قلب مونَد
- 45. تفاوت کلیدی `map` و `flatMap`
- 46. حل مشکل کانتینرهای تودرتو (`Maybe<Maybe<T>>`)
- 47. تعریف رسمی مونَد: `pure` و `flatMap`
- 48. قانون اول مونَد: همانی چپ (Left Identity)
- 49. قانون دوم مونَد: همانی راست (Right Identity)
- 50. قانون سوم مونَد: شرکتپذیری (Associativity)
- 51. اهمیت قوانین مونَد برای پیشبینیپذیری کد
- 52. رابطه بین Functor، Applicative و Monad
- 53. شیرینی سینتکسی (Syntactic Sugar): `do`-notation یا `for-comprehension`
- 54. مونَد Maybe/Option: مدیریت نبود مقدار
- 55. کاربرد عملی Maybe: دسترسی ایمن به پراپرتیهای تودرتو
- 56. زنجیرهسازی عملیات با Maybe Monad
- 57. مونَد Either/Result: مدیریت خطاها و موفقیت
- 58. سمت `Left` و `Right` در Either
- 59. زنجیرهسازی عملیات موفق با Either Monad
- 60. اتصال کوتاه (Short-circuiting) در صورت بروز خطا
- 61. کاربرد عملی Either: پارس کردن و اعتبارسنجی دادهها
- 62. مونَد List: مدلسازی محاسبات غیرقطعی
- 63. درک `flatMap` روی لیستها: تولید ترکیبها
- 64. کاربرد عملی List Monad: فضای جستجو و ترکیبها
- 65. مونَد IO: کپسوله کردن اثرات جانبی
- 66. جداسازی توصیف عملیات از اجرای آن
- 67. ساخت یک برنامه با توالی عملیات IO
- 68. اجرای برنامه IO: "پایان جهان"
- 69. کاربرد عملی IO: خواندن از کنسول و نوشتن در فایل
- 70. مونَد State: مدیریت حالت به روشی خالص
- 71. عبور دادن حالت در طول یک زنجیره از توابع
- 72. عملیات `get` و `put` در State Monad
- 73. کاربرد عملی State: شبیهسازی یک ماشین پشته
- 74. کاربرد عملی State: تولید اعداد تصادفی
- 75. مونَد Reader: فراهم کردن یک محیط اشتراکی
- 76. تزریق وابستگی به روش تابعی
- 77. عملیات `ask` برای خواندن از محیط
- 78. کاربرد عملی Reader: ارسال یک شیء پیکربندی
- 79. مونَد Writer: جمعآوری خروجی جانبی
- 80. ضمیمه کردن لاگها به یک محاسبه
- 81. عملیات `tell` برای ثبت یک پیام
- 82. کاربرد عملی Writer: لاگبرداری از مراحل یک الگوریتم
- 83. بررسی مجدد مونَدها: یک انتزاع واحد برای مشکلات مختلف
- 84. انتخاب مونَد مناسب برای هر مسئله
- 85. مشکل ترکیب مونَدها: مونَدهای تودرتو
- 86. مقدمهای بر تبدیلگرهای مونَد (Monad Transformers)
- 87. تبدیلگر `MaybeT`
- 88. تبدیلگر `EitherT`
- 89. تبدیلگر `StateT`
- 90. مفهوم `lift`: بالا بردن یک عملیات به پشته تبدیلگر
- 91. ساخت یک پشته مونَد (Monad Stack)
- 92. کار با پشتههای مونَد در عمل
- 93. مفهوم مونوئید (Monoid) و ارتباط آن با مونَدها
- 94. ارتباط مونوئید با Writer Monad
- 95. نگاهی به سیستمهای اثر (Effect Systems) به عنوان جایگزین
- 96. مقایسه مونَدها با Promise ها در جاوااسکریپت
- 97. مقایسه مونَدها با `async/await`
- 98. ساخت یک مونَد سفارشی: گام به گام
- 99. اشتباهات رایج در هنگام کار با مونَدها
- 100. نکات مربوط به عملکرد (Performance) در کدهای مونَدی
رمزگشایی مونَدها (Monads): راهنمای عملی - سفری به قلب برنامهنویسی تابعی
آیا از پیچیدگیهای برنامهنویسی سنتی خسته شدهاید؟ آیا میخواهید کدهایی تمیزتر، قابل فهمتر و قدرتمندتر بنویسید؟ برنامهنویسی تابعی (Functional Programming) کلید حل این مشکلات است! اما بسیاری از برنامهنویسان با مفهوم "مونَدها" (Monads) در این پارادایم دست و پنجه نرم میکنند. این مفهوم پیچیده به نظر میرسد، اما در واقع ابزاری قدرتمند برای مدیریت اثرات جانبی (side effects) و ساختارهای کنترلی پیچیده است.
دوره آموزشی "رمزگشایی مونَدها (Monads): راهنمای عملی" به شما کمک میکند تا این مفهوم را به طور کامل درک کنید و از آن در پروژههای واقعی خود بهره ببرید. ما با زبانی ساده و مثالهای عملی، شما را از سطح مبتدی تا حرفهای در برنامهنویسی تابعی همراهی خواهیم کرد. دیگر نیازی نیست از مونَدها بترسید، آنها را در آغوش بگیرید و شاهد تحول در کیفیت کد خود باشید!
درباره دوره
این دوره آموزشی یک سفر جامع به دنیای برنامهنویسی تابعی و به خصوص مفهوم مونَدها است. ما با بررسی اصول برنامهنویسی تابعی آغاز میکنیم و سپس به تدریج به مفاهیم پیشرفتهتر مانند توابع مرتبه بالاتر، ترکیب توابع و البته، مونَدها میپردازیم. دوره شامل تمرینهای عملی و پروژههای واقعی است تا شما بتوانید دانش خود را در عمل به کار ببرید.
موضوعات کلیدی
- مفاهیم پایهای برنامهنویسی تابعی
- توابع مرتبه بالاتر و Lambda Expressions
- ترکیب توابع (Function Composition)
- ایموتالیتی (Immutability) و دیتا استراکچرهای پایدار
- درک عمیق مونَدها: Maybe/Optional, Either/Result, List/Sequence
- ساخت مونادهای سفارشی
- کاربرد مونَدها در مدیریت state و effect
- آشنایی با Monad Transformers
- تستنویسی در برنامهنویسی تابعی
- پیادهسازی الگوهای طراحی تابعی
مخاطبان دوره
این دوره برای افراد زیر مناسب است:
- برنامهنویسانی که میخواهند با برنامهنویسی تابعی آشنا شوند.
- برنامهنویسانی که با مفهوم مونَدها مشکل دارند و میخواهند آن را به طور کامل درک کنند.
- برنامهنویسانی که میخواهند کیفیت کد خود را بهبود بخشند و کدهایی تمیزتر و قابل فهمتر بنویسند.
- توسعهدهندگان وب، موبایل و دسکتاپ که به دنبال یادگیری تکنیکهای پیشرفته برنامهنویسی هستند.
- دانشجویان و فارغالتحصیلان رشتههای کامپیوتر و مهندسی نرمافزار.
چرا این دوره را بگذرانیم؟
با گذراندن این دوره، شما:
- درک عمیقی از برنامهنویسی تابعی و مونَدها پیدا خواهید کرد.
- توانایی نوشتن کدهای تمیزتر، قابل فهمتر و قدرتمندتر را به دست خواهید آورد.
- میتوانید از مونَدها در پروژههای واقعی خود استفاده کنید و مشکلات پیچیده را به راحتی حل کنید.
- رزومه خود را قویتر خواهید کرد و فرصتهای شغلی بهتری خواهید داشت.
- به یک برنامهنویس حرفهایتر تبدیل خواهید شد.
سرفصلهای دوره (100+ سرفصل جامع)
دوره "رمزگشایی مونَدها (Monads): راهنمای عملی" شامل بیش از 100 سرفصل جامع است که به طور کامل مباحث برنامهنویسی تابعی و مونَدها را پوشش میدهد. در اینجا فقط به برخی از سرفصلهای مهم اشاره میکنیم:
- بخش 1: مقدمهای بر برنامهنویسی تابعی
- پارادایمهای برنامهنویسی: امری، شیءگرا، تابعی
- اصول برنامهنویسی تابعی: خلوص، ایموتالیتی، توابع مرتبه بالاتر
- مزایای برنامهنویسی تابعی
- معرفی زبانهای برنامهنویسی تابعی (Haskell, Scala, F#, JavaScript)
- بخش 2: توابع مرتبه بالاتر و Lambda Expressions
- تعریف توابع مرتبه بالاتر
- Lambda Expressions و Anonymous Functions
- توابع Callbacks
- Closureها
- کاربرد توابع مرتبه بالاتر: map, filter, reduce
- بخش 3: ترکیب توابع (Function Composition)
- ترکیب توابع: چرا و چگونه؟
- Pipe Operator
- Partial Application و Currying
- بخش 4: ایموتالیتی (Immutability) و دیتا استراکچرهای پایدار
- ایموتالیتی: چرا مهم است؟
- Mutable vs Immutable Data Structures
- معرفی دیتا استراکچرهای پایدار
- کاربرد دیتا استراکچرهای پایدار در برنامهنویسی تابعی
- بخش 5: درک عمیق مونَدها
- مونَد چیست؟ یک توضیح ساده و قابل فهم
- انواع مختلف مونَدها: Maybe/Optional, Either/Result, List/Sequence, IO
- قوانین مونَد
- Functorها و Applicative Functors
- Monad Laws: Left Identity, Right Identity, Associativity
- بخش 6: موناد Maybe/Optional
- کاربرد موناد Maybe برای مدیریت مقادیر Nullable
- پیادهسازی موناد Maybe در زبانهای مختلف
- Chainning و Composition با Maybe
- جلوگیری از خطاهای NullPointerException
- بخش 7: موناد Either/Result
- کاربرد موناد Either برای مدیریت خطاها
- Success و Failure: یک رویکرد تابعی
- پیادهسازی موناد Either در زبانهای مختلف
- Chainning و Composition با Either
- مدیریت Exceptionها به صورت تابعی
- بخش 8: موناد List/Sequence
- کاربرد موناد List برای کار با مجموعهها
- پیادهسازی موناد List در زبانهای مختلف
- کاربرد موناد List برای Flatten کردن لیستها
- بخش 9: ساخت مونادهای سفارشی
- چگونه موناد خودتان را بسازید
- تعیین قوانین موناد
- مثالهای عملی از ساخت مونادهای سفارشی
- بخش 10: Monad Transformers
- ترکیب مونادها با Monad Transformers
- Stack کردن Monadها
- کاربرد Monad Transformers در پروژههای واقعی
- بخش 11: کاربرد مونَدها در مدیریت state و effect
- مدیریت State به صورت تابعی
- Effectها و Side Effects
- موناد IO و مدیریت ورودی/خروجی
- بخش 12: تستنویسی در برنامهنویسی تابعی
- تستنویسی واحد (Unit Testing) توابع خالص
- تستنویسی Effectful Functions
- استفاده از Mockها در تستنویسی تابعی
- بخش 13: پیادهسازی الگوهای طراحی تابعی
- الگوهای طراحی رایج در برنامهنویسی تابعی
- Composition Over Inheritance
- Dependency Injection به صورت تابعی
- بخش 14: پروژههای عملی و کاربردی
- پیادهسازی یک REST API با استفاده از برنامهنویسی تابعی
- ساخت یک پردازشگر دادههای بزرگ (Big Data) با استفاده از Spark و برنامهنویسی تابعی
- طراحی یک سیستم احراز هویت (Authentication) با استفاده از مونَدها
- و دهها سرفصل دیگر ...
همین حالا در دوره "رمزگشایی مونَدها (Monads): راهنمای عملی" ثبتنام کنید و قدمی بلند در مسیر تبدیل شدن به یک برنامهنویس حرفهای بردارید!
📦 مجموعه شامل:
- ✅ ویدیوهای فارسی
- ✅ پادکست های صوتی فارسی
- ✅ کتاب PDF فارسی
- ✅ کتاب ۱۰۰۰ نکته فارسی خودمونی
- ✅ کتاب ۱۰۰۰ نکته رسمی فارسی
- ✅ کتاب ۱۰۰۰ پرسش و پاسخ ۴ گزینه ای فارسی
📚 محتوای این محصول آموزشی (پکیج کامل)
💡 این محصول یک نسخهٔ کامل و جامع است
تمامی محتوای آموزشی این کتاب در قالب یک بستهی کامل و یکپارچه ارائه میشود و شامل تمام نسخهها و فایلهای موردنیاز برای یادگیری است.
🎁 محتویات کامل بسته دانلودی
- کتاب صدها نکته فارسی (خودمونی) – نسخه PDF — زبان ساده و کاربردی
برای مشاهده نمونه ای از فرمت نسخه نکات ساده کتاب های ما اینجا را کلیک کنید. کتاب دریافتی شما نیز در موضوع خود به همین سبک خواهد بود. دقت کنید تعداد صفحات کتاب در اینجا فقط 10 صفحه برای نمونه بوده است و کتاب اصلی شما طبق سرفصل های گفته شده کتابی جامع خواهد بود. - کتاب صدها نکته رسمی فارسی – نسخه PDF — نگارش استاندارد، علمی و مناسب چاپ
برای مشاهده نمونه ای از فرمت نسخه نکته رسمی کتاب های ما اینجا را کلیک کنید. کتاب دریافتی شما نیز در موضوع خود به همین سبک خواهد بود. دقت کنید تعداد صفحات کتاب در اینجا فقط 10 صفحه برای نمونه بوده است و کتاب اصلی شما طبق سرفصل های گفته شده کتابی جامع خواهد بود. -
کتاب صدها پرسش و پاسخ تشریحی – نسخه PDF
— هر سؤال بلافاصله همراه با پاسخ کامل و شفاف ارائه شده است؛ مناسب درک عمیق مفاهیم و رفع ابهام.
برای مشاهده نمونه ای از فرمت نسخه پرسش و پاسخ کتاب های ما اینجا را کلیک کنید. کتاب دریافتی شما نیز در موضوع خود به همین سبک خواهد بود. دقت کنید تعداد صفحات کتاب در اینجا فقط 10 صفحه برای نمونه بوده است و کتاب اصلی شما طبق سرفصل های گفته شده کتابی جامع خواهد بود. -
کتاب صدها پرسش و پاسخ چهارگزینهای – نسخه PDF (نسخه یادگیری سریع)
— پاسخها بلافاصله پس از سؤال قرار دارند؛ مناسب یادگیری سریع و تثبیت مطالب.
برای مشاهده نمونه ای از فرمت نسخه کوییز چهارگزینه ای با پاسخ کتاب های ما اینجا را کلیک کنید. کتاب دریافتی شما نیز در موضوع خود به همین سبک خواهد بود. دقت کنید تعداد صفحات کتاب در اینجا فقط 10 صفحه برای نمونه بوده است و کتاب اصلی شما طبق سرفصل های گفته شده کتابی جامع خواهد بود. -
کتاب صدها پرسش و پاسخ چهارگزینهای – نسخه PDF (نسخه خودآزمایی پایانبخش)
— پاسخها در انتهای هر بخش آمدهاند؛ مناسب آزمون واقعی و سنجش میزان یادگیری.
برای مشاهده نمونه ای از فرمت نسخه کوییز چهارگزینه ای با پاسخ های انتهای فصل کتاب های ما اینجا را کلیک کنید. کتاب دریافتی شما نیز در موضوع خود به همین سبک خواهد بود. دقت کنید تعداد صفحات کتاب در اینجا فقط 10 صفحه برای نمونه بوده است و کتاب اصلی شما طبق سرفصل های گفته شده کتابی جامع خواهد بود.
🎯 این بسته یک دورهٔ آموزشی کامل و چندلایه است؛ شامل کتابها، تمرینها و خودآزمایی .
ℹ️ نکات مهم هنگام خرید
- این محصول به صورت فایل دانلودی کامل ارائه میشود و نسخهٔ چاپی ندارد.
- توجه: لینکهای اختصاصی دوره طی حداکثر 24 ساعت پس از ثبت سفارش ارسال میشوند.
- دقت کنید لینک ها به شماره موبایل شما ارسال می شوند. پس در ارائه شماره موبایل صحیح دقت کنید.
- برای راهنمایی در مورد نحوه دانلود به شماره 09395106248 پیامک دهید یا تماس بگیرید. (ایده آل ترین گزینه ارسال پیام در یکی از پیام رسان ها به همین شماره است تا سریعا لینک های کتاب همانجا برای شما ارسال گردد.)
- اگر پرداخت انجام شده ولی بعد از 24 ساعت هنوز لینکها را دریافت نکردهاید، نام و نام خانوادگی و نام محصول را پیامک کنید تا لینکها دوباره ارسال شوند.
💬 راههای ارتباطی پشتیبانی:
واتساپ یا هر پیام رسان داخلی یا پیامک:
09395106248
تلگرام: @ma_limbs
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.