📂
این که توی پروژه ها یک سری فولدر داشته باشیم با نام هایی مثل
✅Design Patterns
که توش همه ی پترن هایی که توی پروژه استفاده کردیم رو قرار بدیم و بخوایم به این وسیله پترن های استفاده شده رو سریعتر پیدا کنیم یا هر دلیل دیگه ..
✅ packages
که توش کدهای مربوط به پکیج های پرکاربرد پروژه قرار بگیره.
✅....
و هر چیز دیگه ای که چنین رنگ و بویی رو داشته باشه.
کار زشتیه 🙅♂🙅♀🙅♂🙅♀
@purecoder_ir
این که توی پروژه ها یک سری فولدر داشته باشیم با نام هایی مثل
✅Design Patterns
که توش همه ی پترن هایی که توی پروژه استفاده کردیم رو قرار بدیم و بخوایم به این وسیله پترن های استفاده شده رو سریعتر پیدا کنیم یا هر دلیل دیگه ..
✅ packages
که توش کدهای مربوط به پکیج های پرکاربرد پروژه قرار بگیره.
✅....
و هر چیز دیگه ای که چنین رنگ و بویی رو داشته باشه.
کار زشتیه 🙅♂🙅♀🙅♂🙅♀
@purecoder_ir
اگه توی شرکتی که کار میکنی یکی از همکارهات کم کاری کنه یا به هر شکلی گند بزنه توی کار. مدلشم اینجوری نباشه که با کمک کردن بهش کار حل بشه. واقعن داره به صورت ادامه دار گند میزنه و خراب میکنه و کمک کردن و گفت و گوی مسالمت آمیز و در چارچوب همکاری توی کتش نمیره.
❓چکار میکنی؟
آیا به مدیران بالادستی گزارش میدی ؟
یا میگی به من ربطی نداره و من باید کار خودم رو بکنم و صاحب بیزینس باید حواسش به مجموعه اش باشه...
یا به طور کلی گزارش دادن رو یه نوع آدم فروشی میدونی؟
یا کار دیگه ای میکنی؟ دعوا، کتک کاری😂 (این پایین بنویس👇)
@purecoder_ir
❓چکار میکنی؟
آیا به مدیران بالادستی گزارش میدی ؟
یا میگی به من ربطی نداره و من باید کار خودم رو بکنم و صاحب بیزینس باید حواسش به مجموعه اش باشه...
یا به طور کلی گزارش دادن رو یه نوع آدم فروشی میدونی؟
یا کار دیگه ای میکنی؟ دعوا، کتک کاری😂 (این پایین بنویس👇)
@purecoder_ir
Forwarded from OOD Part 1
🔥Architectural Test
یکی از انواع تست هایی که برای سیستم ها میتونیم بنویسیم Architectural Test ها هستن.
برای مثال توی استراکچر بالا میخوایم پکیج model رو از دسترسی یا دپندنسی به controller منع کنیم و کسی توی تیم نتونه خلافش رو عمل کنه.
حالا این یک مثال ساده بود، توی یه پروژه ی با اسکیل بزرگ این قبیل رول ها زیاد هستن .
برای این مدل تست ها توی دات نت میتونی از پکیج ArchUnitNet و توی جاوا هم از ArchUnit استفاده کنی.
توی زبان های دیگه هم پکیج های مشابه این دو وجود دارند که با جست و جوی همین اسم میتونی پیداشون کنی.
@purecoder_ir
یکی از انواع تست هایی که برای سیستم ها میتونیم بنویسیم Architectural Test ها هستن.
برای مثال توی استراکچر بالا میخوایم پکیج model رو از دسترسی یا دپندنسی به controller منع کنیم و کسی توی تیم نتونه خلافش رو عمل کنه.
IArchRule rule = Types()
.That()
.ResideInNamespace("Model")
.Should()
.NotDependOnAny(Types()
.That()
.ResideInNamespace("Controller"));
حالا این یک مثال ساده بود، توی یه پروژه ی با اسکیل بزرگ این قبیل رول ها زیاد هستن .
برای این مدل تست ها توی دات نت میتونی از پکیج ArchUnitNet و توی جاوا هم از ArchUnit استفاده کنی.
توی زبان های دیگه هم پکیج های مشابه این دو وجود دارند که با جست و جوی همین اسم میتونی پیداشون کنی.
@purecoder_ir
⚠️قرار نیست همیشه از استاتوس ۲۰۰ استفاده کنیم.
✅201:
یک مثال میتونه زمانی باشه که با متد POST یک ریسورس جدید create شده.
در این حالت امکان این وجود داره که اطلاعات ریسورس جدید توی body رسپانس به کلاینت ریترن بشه و یا کلن رسپانس بدون body باشه و در عوض آیدی ریسورس جدید توی header رسپانس بیاد.
✅202:
در این حالت رکوئست کلاینت پذیرفته میشه ولی بخاطر اینکه پردازش درخواست زمان بر هست یا قراره توی یه پراسس یا سرور دیگه پردازش بشه یا به هر دلیل دیگه ای رسپانسی به کلاینت ریترن نمیشه.
در این حالت بعد از اتمام پردازش، رسپانس میتونه با Server Sent Events یا web socket یا هر چیز دیگه ای به کلاینت گزارش داده بشه و یا کلاینت یه رکوئست دیگه به یه endpoint دیگه ارسال کنه و از کم و کیف کار باخبر بشه.
✅204:
برای مثال وقتی که یک ریسورسی آپدیت و یا دیلیت شده و موفق بودن اون رو با استاتوس ۲۰۴ و بدون هیچ body به کلاینت گزارش میدی.
@purecoder_ir
✅201:
یک مثال میتونه زمانی باشه که با متد POST یک ریسورس جدید create شده.
در این حالت امکان این وجود داره که اطلاعات ریسورس جدید توی body رسپانس به کلاینت ریترن بشه و یا کلن رسپانس بدون body باشه و در عوض آیدی ریسورس جدید توی header رسپانس بیاد.
✅202:
در این حالت رکوئست کلاینت پذیرفته میشه ولی بخاطر اینکه پردازش درخواست زمان بر هست یا قراره توی یه پراسس یا سرور دیگه پردازش بشه یا به هر دلیل دیگه ای رسپانسی به کلاینت ریترن نمیشه.
در این حالت بعد از اتمام پردازش، رسپانس میتونه با Server Sent Events یا web socket یا هر چیز دیگه ای به کلاینت گزارش داده بشه و یا کلاینت یه رکوئست دیگه به یه endpoint دیگه ارسال کنه و از کم و کیف کار باخبر بشه.
✅204:
برای مثال وقتی که یک ریسورسی آپدیت و یا دیلیت شده و موفق بودن اون رو با استاتوس ۲۰۴ و بدون هیچ body به کلاینت گزارش میدی.
@purecoder_ir
Forwarded from Fluttery's Journey
💥تخفیف ویژه دوره ی بک گراند فلاتر Pure Coder
🗞خبر اول اینکه دوره ی فلاتر به دو پارت تقسیم شد تا راحتر بتونید شرکت کنید و خبر دوم اینکه از الان تا 24 خرداد (عید غدیر) میتونید از تخفیف ویژه 40 درصدی دوره استفاده کنید.
✅فصل های اول تا هفتم توی پارت 1 و فصل های هشتم تا هفدهم هم توی پارت 2 قرار دارن
🔗 پارت اول:
https://purecoder.ir/course/flutterys-journey/
🔗پارت دوم:
https://purecoder.ir/course/fluttery-journey-2/
💰هزینه پارت اول: 1 میلیون تومان
✂️هزینه با تخفیف : 600 هزار تومان
💰هزینه پارت دوم: 1میلیون و 300 هزار تومان
✂️هزینه با تخفیف: 780 هزار تومان
برای مشاوره یا ثبت نام در دوره به ایدی زیر پیام بدید👇
@PureCoder_Support
پ.ن: ثبت نام از طریق سایت امکان پذیر نیست و حتمن به ایدی بالا پیام بدید🙏🙏
پ.ن: دوستانی که قبلن در دوره ثبت نام کردن, در هر دو پارت حضور دارن و نیازی به ثبت نام مجدد نیست.
🗞خبر اول اینکه دوره ی فلاتر به دو پارت تقسیم شد تا راحتر بتونید شرکت کنید و خبر دوم اینکه از الان تا 24 خرداد (عید غدیر) میتونید از تخفیف ویژه 40 درصدی دوره استفاده کنید.
✅فصل های اول تا هفتم توی پارت 1 و فصل های هشتم تا هفدهم هم توی پارت 2 قرار دارن
🔗 پارت اول:
https://purecoder.ir/course/flutterys-journey/
🔗پارت دوم:
https://purecoder.ir/course/fluttery-journey-2/
💰هزینه پارت اول: 1 میلیون تومان
✂️هزینه با تخفیف : 600 هزار تومان
💰هزینه پارت دوم: 1میلیون و 300 هزار تومان
✂️هزینه با تخفیف: 780 هزار تومان
برای مشاوره یا ثبت نام در دوره به ایدی زیر پیام بدید👇
@PureCoder_Support
پ.ن: ثبت نام از طریق سایت امکان پذیر نیست و حتمن به ایدی بالا پیام بدید🙏🙏
پ.ن: دوستانی که قبلن در دوره ثبت نام کردن, در هر دو پارت حضور دارن و نیازی به ثبت نام مجدد نیست.
Forwarded from Fluttery's Journey
🔥Push Model vs Pull Model
😍یه مقایسه ی خیلی جالب بین Pull Model و Push Model از فصل شانزدهم یا انیمشن ها در دوره ی فلاتر که به صورت رایگان میتونید بهش دسترسی داشته باشید.
✅این قسمت به همه برنامه نویس ها (حتا غیر فلاتری ها) میتونه کمک کنه و به خصوص برای فهم بهتر Animation ها در ادامه ی فصل و مفهوم Future ها و Stream ها میتونه کمک کننده باشه.
🔗لینک آموزش:
https://purecoder.ir/push-model-vs-pull-model/
@purecoder_ir
😍یه مقایسه ی خیلی جالب بین Pull Model و Push Model از فصل شانزدهم یا انیمشن ها در دوره ی فلاتر که به صورت رایگان میتونید بهش دسترسی داشته باشید.
✅این قسمت به همه برنامه نویس ها (حتا غیر فلاتری ها) میتونه کمک کنه و به خصوص برای فهم بهتر Animation ها در ادامه ی فصل و مفهوم Future ها و Stream ها میتونه کمک کننده باشه.
🔗لینک آموزش:
https://purecoder.ir/push-model-vs-pull-model/
@purecoder_ir
شبیه اینایی که یه دیزاین پترن یاد میگیرن و توی همه کدهاشون میچپونن، اپل هر چی بوده و نبوده رو شیشه ای کرده 😂😂😂
@purecoder_ir
@purecoder_ir
Forwarded from Fluttery's Journey
🔥قسمت های رایگان دوره ی فلاتر
✅معماری فلاتر
✅معرفی درخت های مختلف فلاتر
✅ داستان Stack و Recursive Function
✅ا Event Loop
✅ مقایسه Push Model و Pull Model
@purecoder_ir
✅معماری فلاتر
✅معرفی درخت های مختلف فلاتر
✅ داستان Stack و Recursive Function
✅ا Event Loop
✅ مقایسه Push Model و Pull Model
@purecoder_ir
Pure Coder pinned «🔥قسمت های رایگان دوره ی فلاتر ✅معماری فلاتر ✅معرفی درخت های مختلف فلاتر ✅ داستان Stack و Recursive Function ✅ا Event Loop ✅ مقایسه Push Model و Pull Model @purecoder_ir»
Forwarded from Fluttery's Journey
🔥فصل ۱۵ دوره ی فلاتر تکمیل شد.
🟢توی این فصل در مورد Binding ها صحبت کردیم. فسمت اول فصل در مورد ساختار کلی Binding ها صحبت شد.
📖قسمت ۱: مروری بر ساختار Binding ها
🟢بعد از اون بحث مفصلی در مورد Scheduler Binding داشتیم و نکاتش رو به ریز بررسی کردیم:
📖قسمت ۲: مروری بر مفهوم فریم و نحوه ی Schedule کردن یک فریم جدید
📖قسمت ۳: جانمایی فازهای مختلفی که یک فریم فلاتری طی میکنه!!!
📖قسمت ۴: Transient, Persistent, and Post-frame callbacks
📖قسمت ۵: Scheduler Phase ها چی هستن و چیا هستن؟
📖قسمت ۶: نگاهی عمیق به Scheduler Binding - قسمت ۱
📖قسمت ۷: نگاهی عمیق به Scheduler Binding - قسمت ۲
📖قسمت ۸: نگاهی عمیق به Scheduler Binding - قسمت ۳
🟢گام بعدی به سراغ Renderer Binding رفتیم.
📖قسمت ۹: نگاهی عمیق به Renderer Binding
🟢قسمت های باقی مونده رو هم به Widgets Binding و به خصوص Widgets Binding Observer اختصاص دادیم و نگاه کوچولویی هم به ویجت های MediaQuery و MaterialApp داشتیم و یه نکته ی کوچیک رو دربارشون بررسی کردیم.
📖قسمت ۱۰: Widgets Binding Observer - قسمت ۱
📖قسمت ۱۱: Widgets Binding Observer - قسمت ۲
📖قسمت ۱۲: Widgets Binding Observer - قسمت ۳
📖قسمت ۱۳: نگاهی گذرا به Media Query Widget
📖قسمت ۱۴: یک نکته ی کوچک در مورد WidgetsApp (MaterialApp)
📖قسمت ۱۵: بررسی Widgets Binding
@purecoder_ir
🟢توی این فصل در مورد Binding ها صحبت کردیم. فسمت اول فصل در مورد ساختار کلی Binding ها صحبت شد.
📖قسمت ۱: مروری بر ساختار Binding ها
🟢بعد از اون بحث مفصلی در مورد Scheduler Binding داشتیم و نکاتش رو به ریز بررسی کردیم:
📖قسمت ۲: مروری بر مفهوم فریم و نحوه ی Schedule کردن یک فریم جدید
📖قسمت ۳: جانمایی فازهای مختلفی که یک فریم فلاتری طی میکنه!!!
📖قسمت ۴: Transient, Persistent, and Post-frame callbacks
📖قسمت ۵: Scheduler Phase ها چی هستن و چیا هستن؟
📖قسمت ۶: نگاهی عمیق به Scheduler Binding - قسمت ۱
📖قسمت ۷: نگاهی عمیق به Scheduler Binding - قسمت ۲
📖قسمت ۸: نگاهی عمیق به Scheduler Binding - قسمت ۳
🟢گام بعدی به سراغ Renderer Binding رفتیم.
📖قسمت ۹: نگاهی عمیق به Renderer Binding
🟢قسمت های باقی مونده رو هم به Widgets Binding و به خصوص Widgets Binding Observer اختصاص دادیم و نگاه کوچولویی هم به ویجت های MediaQuery و MaterialApp داشتیم و یه نکته ی کوچیک رو دربارشون بررسی کردیم.
📖قسمت ۱۰: Widgets Binding Observer - قسمت ۱
📖قسمت ۱۱: Widgets Binding Observer - قسمت ۲
📖قسمت ۱۲: Widgets Binding Observer - قسمت ۳
📖قسمت ۱۳: نگاهی گذرا به Media Query Widget
📖قسمت ۱۴: یک نکته ی کوچک در مورد WidgetsApp (MaterialApp)
📖قسمت ۱۵: بررسی Widgets Binding
@purecoder_ir
🔥Flutter & Layerd Architecture
✅فلاتر از یک معماری لایه ای یا به عبارتی Layerd Architecture استفاده میکنه.
✅توی این لایه ها foundation کف کف قرار میگیره و همه ی لایه های دیگه میتونن بهش دسترسی داشته باشن و لایه های material و cupertino بالای بالا قرار میگیرن.
✅برای مثال لایه ی Widgets نسبت به rendering توی سطح بالاتری قرار میگیره و میتونه از rendering استفاده کنه ولی rendering به widgets دسترسی نداره. به همین شکل material و cupertino به widgets دسترسی دارن ولی widgets به اونا دسترسی نداره.
✅اصول معماری لایه ای توی فلاتر اینجوری چیده نشده که هر لایه فقط و فقط به لایه ی زیری خودش دسترسی داشته باشه. بلکه یکم چفت و بست ها شل تر هست و هر لایه میتونه به همه ی لایه های زیرین خودش دسترسی پیدا کنه. البته این شل بودن ایراد نیست و نیاز توسعه بوده.
⚠️پ.ن: فریمورک ها هم باید معماری داشته باشن و روی اصول جلو برن. وگرنه از هم میپاشن.
پ.ن: همه ی پوشه های توی تصویر نماینده ی یک لایه ی مجزا نیستن.
@purecoder_ir
✅فلاتر از یک معماری لایه ای یا به عبارتی Layerd Architecture استفاده میکنه.
✅توی این لایه ها foundation کف کف قرار میگیره و همه ی لایه های دیگه میتونن بهش دسترسی داشته باشن و لایه های material و cupertino بالای بالا قرار میگیرن.
✅برای مثال لایه ی Widgets نسبت به rendering توی سطح بالاتری قرار میگیره و میتونه از rendering استفاده کنه ولی rendering به widgets دسترسی نداره. به همین شکل material و cupertino به widgets دسترسی دارن ولی widgets به اونا دسترسی نداره.
✅اصول معماری لایه ای توی فلاتر اینجوری چیده نشده که هر لایه فقط و فقط به لایه ی زیری خودش دسترسی داشته باشه. بلکه یکم چفت و بست ها شل تر هست و هر لایه میتونه به همه ی لایه های زیرین خودش دسترسی پیدا کنه. البته این شل بودن ایراد نیست و نیاز توسعه بوده.
⚠️پ.ن: فریمورک ها هم باید معماری داشته باشن و روی اصول جلو برن. وگرنه از هم میپاشن.
پ.ن: همه ی پوشه های توی تصویر نماینده ی یک لایه ی مجزا نیستن.
@purecoder_ir