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 های متفاوت ایجاد کنیم.
اگرم نفهمیدید سخت نگیرید 😅 زیاد تلاش نکنید برای فهمیدن
کاربردش که پیش بیاد میفهمید 😅
اگرم کاربردش پیش نیومد که چه بهتر 😂😂
ان شاالله یه نفر از این جمع به نمایندگی از همه سال ۱۵۰۰ رو هم تجربه کنه 😂😂 و از تکنولوژی های اون زمان به خصوص هوش مصنوعی که دیگه باید به اوج خودش رسیده باشه لذت ببره 😂😂😍😍
از این به بعد به جای اینکه پست آموزشی بذاریم یه سوال یا چالش مطرح میکنیم و با کامنت و بحث کردن راجبش نکات رو یاد میگیریم...
هرچقدر مشارکت شما بیشتر بود نکات بیشتری هم یاد میگیریم...
نظرتون چیه 😉
هرچقدر مشارکت شما بیشتر بود نکات بیشتری هم یاد میگیریم...
نظرتون چیه 😉
این جا چند نفر هستن که میخواستن بلاک رو کار کنن ولی به دلیل سختی یا... هربار قیدشو زدن و دوست دارن که یادش بگیرن...
اعلام حضور کنید که اگه تعداد قابل توجه هست یه برنامه بچینیم که یه چند هفته ای برنامه کانال رو به یادگیری جمعی بلاک اختصاص بدیم...
اعلام حضور کنید که اگه تعداد قابل توجه هست یه برنامه بچینیم که یه چند هفته ای برنامه کانال رو به یادگیری جمعی بلاک اختصاص بدیم...
برای یادگیری بلاک از مثال های سایت بلاک استفاده میکنیم.
چند مثال خوب از سطح خیلی آسون به سمت پیشرفته توی این سایت هست.
از آسون ترین مثال شروع میکنیم و من یه مدت زمانی رو برای خوندن اون مثال به شما میدم.
شما با دقت (چندین بار) مثال رو میخونید و کدش رو میزنید و در نهایت هر اشکال و ابهامی که داشتید توی کامنت های مربوط به اون مثال میپرسید تا تمام نکات و جزییاتش واستون روشن بشه...
اگه با من و طبق برنامه پیش بیاید و خوب وقت بگذارید و هر مثال رو چند بار بخونید، بدون نیاز به هیچ ویدیو و مقاله اضافی و فقط با مثال های سایت بلاک میتونید بلاک رو یاد بگیرید.😍😍😍
چند مثال خوب از سطح خیلی آسون به سمت پیشرفته توی این سایت هست.
از آسون ترین مثال شروع میکنیم و من یه مدت زمانی رو برای خوندن اون مثال به شما میدم.
شما با دقت (چندین بار) مثال رو میخونید و کدش رو میزنید و در نهایت هر اشکال و ابهامی که داشتید توی کامنت های مربوط به اون مثال میپرسید تا تمام نکات و جزییاتش واستون روشن بشه...
اگه با من و طبق برنامه پیش بیاید و خوب وقت بگذارید و هر مثال رو چند بار بخونید، بدون نیاز به هیچ ویدیو و مقاله اضافی و فقط با مثال های سایت بلاک میتونید بلاک رو یاد بگیرید.😍😍😍
Pure Coder
برای یادگیری بلاک از مثال های سایت بلاک استفاده میکنیم. چند مثال خوب از سطح خیلی آسون به سمت پیشرفته توی این سایت هست. از آسون ترین مثال شروع میکنیم و من یه مدت زمانی رو برای خوندن اون مثال به شما میدم. شما با دقت (چندین بار) مثال رو میخونید و کدش رو…
دوستانی که توی پست بالا کامنت گذاشتن و ابراز تمایل به یادگیری بلاک کردن بگن که از چه زمانی اماده ان که با روش ذکر شده کار رو شروع کنیم ...
سعی کنید حتمن توی این چالش شرکت کنید که بلاک رو خوب یاد بگیریم...
پس زمان رو کامنت کنید که یه جمع بندی کنیم.
سعی کنید حتمن توی این چالش شرکت کنید که بلاک رو خوب یاد بگیریم...
پس زمان رو کامنت کنید که یه جمع بندی کنیم.
🔥Challenge
1⃣
BLoC
🔥مثال زیر رو با دقت بخونید و کدش رو بزنید :
https://bloclibrary.dev/#/fluttercountertutorial
🟢تا دوشنبه شب فرصت دارید.
🟢با دقت بخونید (چندین بار)
🟢اگه بار اول متوجه نشدید اشکال نداره، دوباره بخونید...
❓هر سوال و ابهامی داشتید زیر این پست بپرسید..
✅دوستانی که مسلط هستن هم میتونن کمک کنن و پاسخ سوالات رو بدن🙏🙏🙏
⛔️اگه مثال ساده بود وارد مثال های دیگه نشید...
چون بعد از این مثال بلافاصله مثال های دیگه رو کار نمیکنیم و برنامه به شکل دیگه پیش میره.
پس همراه با من پیش بیاید.
1⃣
BLoC
🔥مثال زیر رو با دقت بخونید و کدش رو بزنید :
https://bloclibrary.dev/#/fluttercountertutorial
🟢تا دوشنبه شب فرصت دارید.
🟢با دقت بخونید (چندین بار)
🟢اگه بار اول متوجه نشدید اشکال نداره، دوباره بخونید...
❓هر سوال و ابهامی داشتید زیر این پست بپرسید..
✅دوستانی که مسلط هستن هم میتونن کمک کنن و پاسخ سوالات رو بدن🙏🙏🙏
⛔️اگه مثال ساده بود وارد مثال های دیگه نشید...
چون بعد از این مثال بلافاصله مثال های دیگه رو کار نمیکنیم و برنامه به شکل دیگه پیش میره.
پس همراه با من پیش بیاید.
Bloc
Bloc State Management Library
Official documentation for the bloc state management library. Support for Dart, Flutter, and AngularDart. Includes examples and tutorials.
🔥Challenge
2⃣
BLoC
🔥مثال بالا یعنی پیاده سازی یه counter ساده با بلاک (cubit) رو بدون استفاده از پکیج بلاک و با استفاده از Stream ها انجام بدید ...
🟢مقاله یا ویدیو های مختلفی در این باره هست که میتونید سرچ کنید و ازش الگو بگیرید...
❓در نهایت هرکس مثال رو انجام داد روش کارشو به صورت خلاصه شرح بده و بگه که چطور با استفاده از Stream و بدون پکیج این مثال رو پیاده کرده.
2⃣
BLoC
🔥مثال بالا یعنی پیاده سازی یه counter ساده با بلاک (cubit) رو بدون استفاده از پکیج بلاک و با استفاده از Stream ها انجام بدید ...
🟢مقاله یا ویدیو های مختلفی در این باره هست که میتونید سرچ کنید و ازش الگو بگیرید...
❓در نهایت هرکس مثال رو انجام داد روش کارشو به صورت خلاصه شرح بده و بگه که چطور با استفاده از Stream و بدون پکیج این مثال رو پیاده کرده.
💊Capsule
⚡️⚡️Bloc⚡️⚡️
ℹ️
❓حالا بلاک چطوری کار میکنه؟
بلاک میگه که من دوتا مفهوم دارم (دیگه خواستم نگم چیز 😝)
✔️event
✔️state
🔥خب اینجوریه که کاربر با اپلیکیشن تعامل میکنه و در نتیجه اون یه سری event ها تولید میشه.
مثلن :
✔️کاربر روی یه باتن کلیک میکنه.
✔️توی یه تکست فیلد شرو میکنه به نوشتن.
✔️یه لیست رو اسکرول میکنه
و...
اینا میشن event.
🔥این event ها میرن توی کلاس Bloc و اونجا پردازش میشن و یه عالمه بلا ملا سرشون میاد و جناب Bloc یه دونه State تولید میکنه و اون state باعث میشه که ویو اپدیت شه.
#capsule
⚡️⚡️Bloc⚡️⚡️
ℹ️
❓حالا بلاک چطوری کار میکنه؟
بلاک میگه که من دوتا مفهوم دارم (دیگه خواستم نگم چیز 😝)
✔️event
✔️state
🔥خب اینجوریه که کاربر با اپلیکیشن تعامل میکنه و در نتیجه اون یه سری event ها تولید میشه.
مثلن :
✔️کاربر روی یه باتن کلیک میکنه.
✔️توی یه تکست فیلد شرو میکنه به نوشتن.
✔️یه لیست رو اسکرول میکنه
و...
اینا میشن event.
🔥این event ها میرن توی کلاس Bloc و اونجا پردازش میشن و یه عالمه بلا ملا سرشون میاد و جناب Bloc یه دونه State تولید میکنه و اون state باعث میشه که ویو اپدیت شه.
#capsule
💊Capsule
⚡️⚡️Bloc⚡️⚡️
2⃣
❓حالا بلاک چطوری این قضیه رو هندل میکنه؟
🟢میگه من دو تا StreamController میسازم.
✔️eventController
✔️stateController
🟢اولی یعنی eventController رو:
✔️میام و sink اشو میدم به ui که بتونه event های تولید شده در اثر تعامل کاربر رو بریزه توش.
✔️همین طور این eventController یه دونه stream هم داره که توی کلاس Bloc به این استریم listen میکنم که ببینم چه ایونت هایی از طرف ui اومده و پردازش شون کنم.
🟢از اون طرف یه دونه StateController داریم که میایم و:
✔️ از sink اش توی کلاس Bloc استفاده میکنم و استیت جدید رو میریزم توش.
✔️و Stream اش رو هم میدیم به ui که بهش listen کنه و هر وقت state جدید اومد خودش رو اپدیت کنه.
🔥اکه دقت کرده باشی یه کلاس Bloc داریم و یه ui که دارن برعکس هم از این کنترلر ها استفاده میکنن.
یکشیون از استریم این یکی و سینک اون یکی استفاده میکنه و اون یکی برعکس.
🟢یه کلاس ui داریم و یه کلاس bloc
✔️کلاس ui تولید کننده event هست (sink) و مصرف کننده state هست (stream)
✔️کلاس bloc تولید کننده state هست (sink) و مصرف کننده event هست (stream)
#capsule
⚡️⚡️Bloc⚡️⚡️
2⃣
❓حالا بلاک چطوری این قضیه رو هندل میکنه؟
🟢میگه من دو تا StreamController میسازم.
✔️eventController
✔️stateController
🟢اولی یعنی eventController رو:
✔️میام و sink اشو میدم به ui که بتونه event های تولید شده در اثر تعامل کاربر رو بریزه توش.
✔️همین طور این eventController یه دونه stream هم داره که توی کلاس Bloc به این استریم listen میکنم که ببینم چه ایونت هایی از طرف ui اومده و پردازش شون کنم.
🟢از اون طرف یه دونه StateController داریم که میایم و:
✔️ از sink اش توی کلاس Bloc استفاده میکنم و استیت جدید رو میریزم توش.
✔️و Stream اش رو هم میدیم به ui که بهش listen کنه و هر وقت state جدید اومد خودش رو اپدیت کنه.
🔥اکه دقت کرده باشی یه کلاس Bloc داریم و یه ui که دارن برعکس هم از این کنترلر ها استفاده میکنن.
یکشیون از استریم این یکی و سینک اون یکی استفاده میکنه و اون یکی برعکس.
🟢یه کلاس ui داریم و یه کلاس bloc
✔️کلاس ui تولید کننده event هست (sink) و مصرف کننده state هست (stream)
✔️کلاس bloc تولید کننده state هست (sink) و مصرف کننده event هست (stream)
#capsule