💊Capsule
⚡️⚡️Future⚡️⚡️
4⃣
خب گفتم که وقتی که یه async function رو کال میکنیم یه object از جنس Future بر میگردونه که در اون لحظه هیچی نداره و در اینده با یه value یا یه error تکمیل میشه.
❓حالا برای هندل کردنش چکار کنیم؟
🔥دو راه داریم :
✅استفاده از low level APIs
✅استفاده از high level built in APIs
هر دو روش معادل هم هستن، که توی پست های آینده اون ها رو بررسی میکنیم.
#capsule #dart
⚡️⚡️Future⚡️⚡️
4⃣
خب گفتم که وقتی که یه async function رو کال میکنیم یه object از جنس Future بر میگردونه که در اون لحظه هیچی نداره و در اینده با یه value یا یه error تکمیل میشه.
❓حالا برای هندل کردنش چکار کنیم؟
🔥دو راه داریم :
✅استفاده از low level APIs
✅استفاده از high level built in APIs
هر دو روش معادل هم هستن، که توی پست های آینده اون ها رو بررسی میکنیم.
#capsule #dart
💊Capsule
⚡️⚡️Future⚡️⚡️
5⃣
روش اول
✅Low level APIs
.. then()
.catchError()
.whenComplete()
وقتی یک object از جنس Future داریم میتونیم این متد ها رو به صورت زجزیره وار(chain) روش کال کنیم.
🔥هر کدوم از این متد ها یه کالبک میگیرن و در شرایط خاصی اون کالبک ها اجرا میشن :
✅then
یه کالبک به این شکل میگیره و هر وقت فیوچر با یه ولیو تکمیل شه اجرا میشه.
✅catchError
یه کالبک به این شکل میگیره و هر وقت فیوچر با یه ارور تکمیل شه اجرا میشه.
🔥هم then و هم catchError یه ورودی دوم هم میگیرن که فعلن ازشون صرف نظر میکنیم.
✅whenComplete
یه کالبک به این شکل میگیره که وقتی که فیوچر تکمیل شه (چه با value چه با error ) اجرا میشه.
پس :
✔️if the future is completed with a value, the then callback will be executed.
✔️If the future is completed with an error, the catchError callback will be executed.
✔️when the future is completed (with a value or an error), the whenComplete callback will be executed.
#dart #capsule
⚡️⚡️Future⚡️⚡️
5⃣
روش اول
✅Low level APIs
.. then()
.catchError()
.whenComplete()
وقتی یک object از جنس Future داریم میتونیم این متد ها رو به صورت زجزیره وار(chain) روش کال کنیم.
🔥هر کدوم از این متد ها یه کالبک میگیرن و در شرایط خاصی اون کالبک ها اجرا میشن :
✅then
then((T value) {
.....
})
یه کالبک به این شکل میگیره و هر وقت فیوچر با یه ولیو تکمیل شه اجرا میشه.
✅catchError
catchError((Object error, StackTrace st) {
...
})
یه کالبک به این شکل میگیره و هر وقت فیوچر با یه ارور تکمیل شه اجرا میشه.
🔥هم then و هم catchError یه ورودی دوم هم میگیرن که فعلن ازشون صرف نظر میکنیم.
✅whenComplete
whenComplete (() {
.....
})
یه کالبک به این شکل میگیره که وقتی که فیوچر تکمیل شه (چه با value چه با error ) اجرا میشه.
پس :
✔️if the future is completed with a value, the then callback will be executed.
✔️If the future is completed with an error, the catchError callback will be executed.
✔️when the future is completed (with a value or an error), the whenComplete callback will be executed.
#dart #capsule
💊Capsule
⚡️⚡️Future⚡️⚡️
6⃣
✅High level built in APIs
معادل مواردی که توی پست قبلی گفتم رو میتونیم به این شکل داشته باشیم :
✅بلوک try که داخلش await قرار میگیره معادل then هست .
✅بلوک catch معادل catchError هست .
✅بلوک finally معادل whenComplete هست.
#dart #capsule
⚡️⚡️Future⚡️⚡️
6⃣
✅High level built in APIs
معادل مواردی که توی پست قبلی گفتم رو میتونیم به این شکل داشته باشیم :
try{
await future;
}catch (error) {
....
}finally{
....
}
✅بلوک try که داخلش await قرار میگیره معادل then هست .
✅بلوک catch معادل catchError هست .
✅بلوک finally معادل whenComplete هست.
#dart #capsule
🔥Challenge
⚡️⚡️Stream⚡️⚡️
هر چی راجب استریم ها میدونی بگو...
چی هستن🤔
به چه دردی میخورن
#dart_challenge #dart
⚡️⚡️Stream⚡️⚡️
هر چی راجب استریم ها میدونی بگو...
چی هستن🤔
به چه دردی میخورن
#dart_challenge #dart
Screenshot from 2022-03-04 20-05-40.png
119.4 KB
🔥یه فانکشن که از کد های قدیمیم که به زبان TypeScript نوشته بودم پیدا کردم و به Dart ترجمش کردم 😅
🔥میتونید برای اعتبار سنجی Email ازش استفاده کنید
اینم Regexp :
const emailRegexp =
🔥میتونید برای اعتبار سنجی Email ازش استفاده کنید
اینم Regexp :
const emailRegexp =
r"""^[-!#$%&'*+\/0-9=?A-Z^_a-z
{|}~](\.?[-!#$%&'*+\/0-9=?A-Z^_a-z{|}~])*@[a-zA-Z0-9](-*\.?[a-zA-Z0-9])*\.[a-zA-Z](-?[a-zA-Z0-9])+$""";
Screenshot from 2022-03-04 23-08-47.png
46.9 KB
🔥Challenge
یه ساختاری داریم به شکل بالا.
این ساختار به این شکل هست که یه Map داریم که key های اون String هست و Value ها یا به صورت String هست و یا به صورت یه Map .
و این روند ادامه داره.... هر value میتونه یه String باشه یا خودش یه Map باشه.
🔥مقادیر value ها نباید چیزی غیر از String ویا Map باشن ..
❓❓حالا یه کدی بنویسید که یه Map ورودی با این فرمت (که معلوم نیست این روند تو در تو تا کجا ادامه داره) رو تحلیل کنه اگه یه value پیدا کرد جنسش چیزی غیر از String یا Map بود مقدار false رو برگردونه و اگه تا اخر پیش رفت و همه چیز درست بود مقدار true رو برگردونه.
پ.ن: مقادیر key و value که اینجا نوشتم مثال هست و به این مقادیر توجه نکنید و مهم نیست که چی باشن.
فقط جنس ها مهمه :
Key: String
Value: String or Map
و ساختار توی در تو بودن
#challenge
#dart_challenge
یه ساختاری داریم به شکل بالا.
این ساختار به این شکل هست که یه Map داریم که key های اون String هست و Value ها یا به صورت String هست و یا به صورت یه Map .
و این روند ادامه داره.... هر value میتونه یه String باشه یا خودش یه Map باشه.
🔥مقادیر value ها نباید چیزی غیر از String ویا Map باشن ..
❓❓حالا یه کدی بنویسید که یه Map ورودی با این فرمت (که معلوم نیست این روند تو در تو تا کجا ادامه داره) رو تحلیل کنه اگه یه value پیدا کرد جنسش چیزی غیر از String یا Map بود مقدار false رو برگردونه و اگه تا اخر پیش رفت و همه چیز درست بود مقدار true رو برگردونه.
پ.ن: مقادیر key و value که اینجا نوشتم مثال هست و به این مقادیر توجه نکنید و مهم نیست که چی باشن.
فقط جنس ها مهمه :
Key: String
Value: String or Map
و ساختار توی در تو بودن
#challenge
#dart_challenge
Pure Coder
جواب Challenge
علاوه بر رسیدن به جواب و حل کردن مساله به تمیز نوشتن و خوانا بودن هم دقت کنید
🔥تجربه شخصی و صرفن نظر شخصی خودم :
توی کدهام تا جایی که بتونم از ساختار if...else یا else if استفاده نمیکنم (مگر اینکه مجبور بشم)
و به جاش از if های پشت سر هم استفاده میکنم و به نظرم این باعث خطی شدن ساختار کد و جلوگیری از تو در تو شدنش میشه و باعث میشه کد تمیز تر و خواناتر بشه.
🔥تجربه شخصی و صرفن نظر شخصی خودم :
توی کدهام تا جایی که بتونم از ساختار if...else یا else if استفاده نمیکنم (مگر اینکه مجبور بشم)
و به جاش از if های پشت سر هم استفاده میکنم و به نظرم این باعث خطی شدن ساختار کد و جلوگیری از تو در تو شدنش میشه و باعث میشه کد تمیز تر و خواناتر بشه.
Forwarded from ترفند مدیریت
🔳⭕️نصیحتی که استیو جابز هرگز فراموش نکرد.
🔴اکثر افراد شرکت اپل را برای تعهدش به طراحی زیبا میشناسند، فردی که باید مورد تشکر قرار گیرد، پاول جابز، پدرخواندهی استیو جابز است!
🔴والتر ایزاکسون، زندگینامهنویس جابز، در مصاحبهاش با شبکهی CBS گفت: پاول جابز یک مکانیک فوقالعاده بود. او به پسرش استیو یاد داد که چگونه چیزهای عالی بسازد. آنها روزی در حال ساختن یک حصار بودند. پاول به پسرش گفت: "تو باید پشت حصار را هم به همان خوبی جلوی آن درست و رنگ کنی. هرچند که ممکن است کمتر کسی آنجا را ببیند، اما خودت که میبینی. درست کردن پشت حصار نشان میدهد که تو میتوانی وسایل را کامل و بینقص بسازی."
#استیو_جابز
🔹با ما همراه باشید در:
🌐کانال ترفند مدیریت👇👇
Instagram | Telegram | Linkedin
🔴اکثر افراد شرکت اپل را برای تعهدش به طراحی زیبا میشناسند، فردی که باید مورد تشکر قرار گیرد، پاول جابز، پدرخواندهی استیو جابز است!
🔴والتر ایزاکسون، زندگینامهنویس جابز، در مصاحبهاش با شبکهی CBS گفت: پاول جابز یک مکانیک فوقالعاده بود. او به پسرش استیو یاد داد که چگونه چیزهای عالی بسازد. آنها روزی در حال ساختن یک حصار بودند. پاول به پسرش گفت: "تو باید پشت حصار را هم به همان خوبی جلوی آن درست و رنگ کنی. هرچند که ممکن است کمتر کسی آنجا را ببیند، اما خودت که میبینی. درست کردن پشت حصار نشان میدهد که تو میتوانی وسایل را کامل و بینقص بسازی."
#استیو_جابز
🔹با ما همراه باشید در:
🌐کانال ترفند مدیریت👇👇
Instagram | Telegram | Linkedin
Pure Coder
🔳⭕️نصیحتی که استیو جابز هرگز فراموش نکرد. 🔴اکثر افراد شرکت اپل را برای تعهدش به طراحی زیبا میشناسند، فردی که باید مورد تشکر قرار گیرد، پاول جابز، پدرخواندهی استیو جابز است! 🔴والتر ایزاکسون، زندگینامهنویس جابز، در مصاحبهاش با شبکهی CBS گفت: پاول جابز…
درس برنامه نویسی از پدرخوانده استیو:
اقا کدهایی که مینویسید فقط یه چیزی ننویسید که کار کنه.
فقط کار کردن مهم نیست. ...
جان هر کی دوست دارید تمیز بنویسید..
فکر کنید برای کدی که قراره بنویسید...
همین جوری نرید توی کد و تق تق تق بزنید تو سر کیبرد و کد بزنید و تهشم یه چیزی در بیاد که از اژدهای دوسر ترسناک تر...
قبلش اصن سیستم رو خاموش کنید و بشینید فکر کنید...
اگه نیاره یه کاغذ بذارید جلوتون و فکرتون رو بنویسید ....
خوب فکر کنید و تحلیل کنید و یه چیز تر و تمیز بنویسید و لذت ببرید. ...
اگه لذت نمیبرید این شغل به درد شما نمیخوره...
و اگه خوب کد نمیزنید و هیچ تلاشی برای بهتر شدن و خوب کد زدن نمیکنید یعنی لذت نمیبرید....
اقا کدهایی که مینویسید فقط یه چیزی ننویسید که کار کنه.
فقط کار کردن مهم نیست. ...
جان هر کی دوست دارید تمیز بنویسید..
فکر کنید برای کدی که قراره بنویسید...
همین جوری نرید توی کد و تق تق تق بزنید تو سر کیبرد و کد بزنید و تهشم یه چیزی در بیاد که از اژدهای دوسر ترسناک تر...
قبلش اصن سیستم رو خاموش کنید و بشینید فکر کنید...
اگه نیاره یه کاغذ بذارید جلوتون و فکرتون رو بنویسید ....
خوب فکر کنید و تحلیل کنید و یه چیز تر و تمیز بنویسید و لذت ببرید. ...
اگه لذت نمیبرید این شغل به درد شما نمیخوره...
و اگه خوب کد نمیزنید و هیچ تلاشی برای بهتر شدن و خوب کد زدن نمیکنید یعنی لذت نمیبرید....
Pure Coder
https://github.com/mohammadtaherri/dart_specification
حال نداشتم براش README بنویسم 😅
برید سورس رو بخونید ببینید چیه 😂😂
برید سورس رو بخونید ببینید چیه 😂😂
Pure Coder
https://github.com/mohammadtaherri/dart_specification
بچها این specification pattern هست
تا حالا همتون این رو دیدید که مثلن ی لیست از اطلاعات دارید و داخلش سرچ میکنید (توی دارت where)
مثلن میگید عناصری که فلان ویژگی ها رو دارن رو میخام
یا ی دیتابیس دارین و روش کوئری میزنید
این پترن هم خیلی سادس
ی اینترفیس هست ک ی متد داره
bool isSatisfiedBy(T candidate)
ی ابجکت میگیره و یه شرط رو روش بررسی میکنه که اگه برقرار بود true و اگه نبود false برمیگردونه
حالا برای هر ابجکتی که داریم میتونیم کلاس های spec مختلف تعریف کنیم که هر کدوم ی شرط خاص رو بررسی میکنه و بعد با اپراتور های and و Or و... اون ها رو بهم chain کنیم و ی زنجیره از spec ها بسازیم.
هر کلاس spec یه ویژگی خاص رو بررسی میکنه و با chain کردن کلاس های مختلف بهم با and و Or میتونیم spec های متفاوت ایجاد کنیم.
اگرم نفهمیدید سخت نگیرید 😅 زیاد تلاش نکنید برای فهمیدن
کاربردش که پیش بیاد میفهمید 😅
اگرم کاربردش پیش نیومد که چه بهتر 😂😂
تا حالا همتون این رو دیدید که مثلن ی لیست از اطلاعات دارید و داخلش سرچ میکنید (توی دارت where)
مثلن میگید عناصری که فلان ویژگی ها رو دارن رو میخام
یا ی دیتابیس دارین و روش کوئری میزنید
این پترن هم خیلی سادس
ی اینترفیس هست ک ی متد داره
bool isSatisfiedBy(T candidate)
ی ابجکت میگیره و یه شرط رو روش بررسی میکنه که اگه برقرار بود true و اگه نبود false برمیگردونه
حالا برای هر ابجکتی که داریم میتونیم کلاس های spec مختلف تعریف کنیم که هر کدوم ی شرط خاص رو بررسی میکنه و بعد با اپراتور های and و Or و... اون ها رو بهم chain کنیم و ی زنجیره از spec ها بسازیم.
هر کلاس spec یه ویژگی خاص رو بررسی میکنه و با chain کردن کلاس های مختلف بهم با and و Or میتونیم spec های متفاوت ایجاد کنیم.
اگرم نفهمیدید سخت نگیرید 😅 زیاد تلاش نکنید برای فهمیدن
کاربردش که پیش بیاد میفهمید 😅
اگرم کاربردش پیش نیومد که چه بهتر 😂😂
ان شاالله یه نفر از این جمع به نمایندگی از همه سال ۱۵۰۰ رو هم تجربه کنه 😂😂 و از تکنولوژی های اون زمان به خصوص هوش مصنوعی که دیگه باید به اوج خودش رسیده باشه لذت ببره 😂😂😍😍
از این به بعد به جای اینکه پست آموزشی بذاریم یه سوال یا چالش مطرح میکنیم و با کامنت و بحث کردن راجبش نکات رو یاد میگیریم...
هرچقدر مشارکت شما بیشتر بود نکات بیشتری هم یاد میگیریم...
نظرتون چیه 😉
هرچقدر مشارکت شما بیشتر بود نکات بیشتری هم یاد میگیریم...
نظرتون چیه 😉