Forwarded from Fluttery's Journey
کد سبد خرید که توی مثال جامع داریم
رسمن از فلاتر خارج شد و یه لحظه رفتم توی پوست اصلی خودم😂😂😂
@fluttery_journey
@purecoder_support
رسمن از فلاتر خارج شد و یه لحظه رفتم توی پوست اصلی خودم😂😂😂
@fluttery_journey
@purecoder_support
Pure Coder
کد سبد خرید که توی مثال جامع داریم رسمن از فلاتر خارج شد و یه لحظه رفتم توی پوست اصلی خودم😂😂😂 @fluttery_journey @purecoder_support
توی نام گذاری متد ها من اولین پارامتر متد رو هم جزو نام متد حساب میکنم(اگه امکانش باشه...نه همیشه)
نمیگم addProduct و اسمش رو میکذارم add و اولین پارامتر که اسمش product هست به اسم اضافه میشه موقع خوندن
یا نمیگم quantityOfProduct و میگم quantityOf و اولین پارامتر که product هست موقع خوندن به اسم اضافه میشه
یا نمیگم increaseQuantityOfProduct و میگم increaseQuantityOf و ...
@purecoder_ir
نمیگم addProduct و اسمش رو میکذارم add و اولین پارامتر که اسمش product هست به اسم اضافه میشه موقع خوندن
یا نمیگم quantityOfProduct و میگم quantityOf و اولین پارامتر که product هست موقع خوندن به اسم اضافه میشه
یا نمیگم increaseQuantityOfProduct و میگم increaseQuantityOf و ...
@purecoder_ir
اصل single responsibility رو میشه یه جاهایی نقض کرد و مشکلی هم پیش نیاد
زمانی که responsibility کلاس یا ماژولت خیلی چیز بزرگ و خاصی نیست میتونی responsibility دیگه ای هم گردنش بندازی
✅مهندسی نرم افزار از اول تا آخرش trade off هست و رادیکال بودن جواب نمیده و بدون trade off به هیچ عنوان نمیشه کاری از پیش برد و اصول ایده آل رو باید و باید و باید یه جاهایی نقض کرد ...منتها با آگاهی و علم و اشراف به داستان
@purecoder_ir
زمانی که responsibility کلاس یا ماژولت خیلی چیز بزرگ و خاصی نیست میتونی responsibility دیگه ای هم گردنش بندازی
✅مهندسی نرم افزار از اول تا آخرش trade off هست و رادیکال بودن جواب نمیده و بدون trade off به هیچ عنوان نمیشه کاری از پیش برد و اصول ایده آل رو باید و باید و باید یه جاهایی نقض کرد ...منتها با آگاهی و علم و اشراف به داستان
@purecoder_ir
🔥حلقه ها و ریاضی
حلقه ها توی برنامه نویسی ارتباط بسیار نزدیکی با مفهوم جایگشت (Permutation) و ترکیب (Combination) توی ریاضیات (احتمال) دارن.
برای مثال اگه بخوایم از بین n تا عدد 3 تا عدد مجزا انتخاب کنیم به صورتی که ترتیب شون اهمیتی نداشته باشه از کد زیر که سه تا حلقه ی for داره استفاده میکنیم:
که این کد دقیقن متناظر با مفهوم ترکیب توی ریاضیات هست.
حالا اگه ترتیب اهمیت داشته باشه (جایگشت) میتونیم از کد زیر استفاده کنیم
حتا ساده ترین حلقه ها توی برنامه نویسی هم که مینویسیم یه جورایی داریم از علم ریاضی استفاده میکنیم و اول کار این حلقه ها براساس همین الگو های علم ریاضی بوجود اومدن.
@purecoder_ir
حلقه ها توی برنامه نویسی ارتباط بسیار نزدیکی با مفهوم جایگشت (Permutation) و ترکیب (Combination) توی ریاضیات (احتمال) دارن.
برای مثال اگه بخوایم از بین n تا عدد 3 تا عدد مجزا انتخاب کنیم به صورتی که ترتیب شون اهمیتی نداشته باشه از کد زیر که سه تا حلقه ی for داره استفاده میکنیم:
var count = 0;
for (var i = 0; i < n; i++)
for (var j = i + 1; j < n; j++)
for (var k = j + 1; k < n; k++)
count++;
که این کد دقیقن متناظر با مفهوم ترکیب توی ریاضیات هست.
حالا اگه ترتیب اهمیت داشته باشه (جایگشت) میتونیم از کد زیر استفاده کنیم
var count = 0
for (var i = 0; i < n; i++)
{
for (var j = 0; j < n; j++)
{
if (j == i) continue;
for (var k = 0; k < n; k++)
{
if (k == j) continue;
if (k == i) continue;
count++;
}
}
}
حتا ساده ترین حلقه ها توی برنامه نویسی هم که مینویسیم یه جورایی داریم از علم ریاضی استفاده میکنیم و اول کار این حلقه ها براساس همین الگو های علم ریاضی بوجود اومدن.
@purecoder_ir
🔥تا حالا از Grpc به جای rest استفاده کردی؟
توی ریپوزیتوری زیر یه سرویس خیلی خیلی ساده که با Asp.net پیاده شده و برای یادگیری اولیه مفیده رو میتونی ببینی..
https://github.com/mohammadtaherri/ToDoGrpc
🔥از Grpc توی همه ی زبان های برنامه نویسی میتونی استفاده کنی و مهم نیست که کلاینت و سرور به چه زبانی نوشته شده باشن و با هر کلاینتی میشه به هر سروری متصل شد.
⭐️اگه برات مفید بود ستاره یادت نره
@purecoder_ir
توی ریپوزیتوری زیر یه سرویس خیلی خیلی ساده که با Asp.net پیاده شده و برای یادگیری اولیه مفیده رو میتونی ببینی..
https://github.com/mohammadtaherri/ToDoGrpc
🔥از Grpc توی همه ی زبان های برنامه نویسی میتونی استفاده کنی و مهم نیست که کلاینت و سرور به چه زبانی نوشته شده باشن و با هر کلاینتی میشه به هر سروری متصل شد.
⭐️اگه برات مفید بود ستاره یادت نره
@purecoder_ir
نام گذاری و قانون نام گذاری فیلد های دیتابیستون رو سعی کنید شبیه به domain model هاتون باشه
اگه پراپرتی های domain class هاتون رو با روش pascal case نام گذاری کردید، توی دیتابیس هم همین مدلی نام گذاری کنید اگه camel case استفاده کردید توی دیتابیس هم همین طور و ....
اگه فیلد Id رو توی مدل هاتون Id نام گذاری کردید یهویی توی دیتابیس از user_id و product_id استفاده نکنید و قبلش پیشوند نگذارید
سعی کنید یک زبان توی کل آپ حکم فرما باشه و نه چند زبان مختلف
@purecoder_ir
اگه پراپرتی های domain class هاتون رو با روش pascal case نام گذاری کردید، توی دیتابیس هم همین مدلی نام گذاری کنید اگه camel case استفاده کردید توی دیتابیس هم همین طور و ....
اگه فیلد Id رو توی مدل هاتون Id نام گذاری کردید یهویی توی دیتابیس از user_id و product_id استفاده نکنید و قبلش پیشوند نگذارید
سعی کنید یک زبان توی کل آپ حکم فرما باشه و نه چند زبان مختلف
@purecoder_ir
Pure Coder
نام گذاری و قانون نام گذاری فیلد های دیتابیستون رو سعی کنید شبیه به domain model هاتون باشه اگه پراپرتی های domain class هاتون رو با روش pascal case نام گذاری کردید، توی دیتابیس هم همین مدلی نام گذاری کنید اگه camel case استفاده کردید توی دیتابیس هم همین…
این قاعده نام گذاری رو سعی کنید توی json هایی که قراره بین آپ های مختلف transfer بشه (برای مثال کلاینت و سرور) هم رعایت کنید
نیاید json ای که قراره بین کلاینت و سرور رد و بدل بشه رو snake case کنید در حالیکه کلاینت و سرور جفتشون camel case یا ... هستن .
چرا این وسط تغییرات اضافی انجام بشه ؟
@purecoder_ir
نیاید json ای که قراره بین کلاینت و سرور رد و بدل بشه رو snake case کنید در حالیکه کلاینت و سرور جفتشون camel case یا ... هستن .
چرا این وسط تغییرات اضافی انجام بشه ؟
@purecoder_ir
Pure Coder
🔥سرفصل های کلی دوره ی Fluttery's Journey 1️⃣فصل اول با مباحث بیسیک که foundation ما برای ادامه ی ماجراجویی مون رو بنا میکنن, آشنا میشیم. از جمله : ✅مفهوم Event Loop در دارت ✅مفهوم Recursive Function ✅مفهوم Composite Pattern که توی فلاتر خیلی باهاش کار…
سلام دوستان
دوستانی که میخوان توی دوره ی فلاتر شرکت کنن ولی میخوان هزینه رو به صورت قسطی پرداخت کنن میتونن پیوی پیام بدن ...
@purecoder_support
✅تقریبن ۷ فصل دوره تکمیل شده و ۳ فصل از دوره باقی مونده
فصل بندی ها نسبت به چیزی که توی پست اعلام شده تغییر کرده ولی مباحث همون هست
در صورت سوال هم میتونید به آیدی بالا پیام بدید
دوستانی که میخوان توی دوره ی فلاتر شرکت کنن ولی میخوان هزینه رو به صورت قسطی پرداخت کنن میتونن پیوی پیام بدن ...
@purecoder_support
✅تقریبن ۷ فصل دوره تکمیل شده و ۳ فصل از دوره باقی مونده
فصل بندی ها نسبت به چیزی که توی پست اعلام شده تغییر کرده ولی مباحث همون هست
در صورت سوال هم میتونید به آیدی بالا پیام بدید
Pure Coder pinned «سلام دوستان دوستانی که میخوان توی دوره ی فلاتر شرکت کنن ولی میخوان هزینه رو به صورت قسطی پرداخت کنن میتونن پیوی پیام بدن ... @purecoder_support ✅تقریبن ۷ فصل دوره تکمیل شده و ۳ فصل از دوره باقی مونده فصل بندی ها نسبت به چیزی که توی پست اعلام شده تغییر…»
دوستان وضعیت کاری تون آلان چطوریه (توی هر فیلدی از برنامه نویسی که هستید فرقی نمیکنه)
Anonymous Poll
43%
مشغول به کار توی شرکت هستم
14%
فریلسنر هستم و همین الان پروژه دارم
6%
بیزینس خودم رو دارم
38%
بیکارم ...
Pure Coder
کد سبد خرید که توی مثال جامع داریم رسمن از فلاتر خارج شد و یه لحظه رفتم توی پوست اصلی خودم😂😂😂 @fluttery_journey @purecoder_support
❓❓به عنوان چالش برای این کد تست بنویسید و اسکرینش رو یا لینک گیتهابش رو توی کامنت بفرستید ..
✔️پ.ن: برای تست نوشتن کلاس رو غیر Singleton در نظر بگیرید
🎁به تستی که نظرم رو جلب کنه جایزه میدم ...
✔️پ.ن: برای تست نوشتن کلاس رو غیر Singleton در نظر بگیرید
🎁به تستی که نظرم رو جلب کنه جایزه میدم ...
Pure Coder
کد سبد خرید که توی مثال جامع داریم رسمن از فلاتر خارج شد و یه لحظه رفتم توی پوست اصلی خودم😂😂😂 @fluttery_journey @purecoder_support
سینگلتون رو توی app با dependency injection اوکی کنید و کلاس ها رو تا حد امکان سینگلتون نکنید، مثل کدی که من زدم و کار خیلی درستی نیست ...
ولی توی library ها و فریمورک ها کاربرد داره
@purecoder_ir
ولی توی library ها و فریمورک ها کاربرد داره
@purecoder_ir
❓تفاوت فریمورک با library چیه ؟
مثلن میگیم فریمورک فلاتر یا فریمورک وانیا یا فریمورک لاراول یا ...
از طرفی میگیم library یا پکیج dio
چه تفاوت شاخص و مهمی دارن که توی کد ما تاثیر میذاره و این دو تا رو از هم متمایز میکنه ؟
@purecoder_ir
مثلن میگیم فریمورک فلاتر یا فریمورک وانیا یا فریمورک لاراول یا ...
از طرفی میگیم library یا پکیج dio
چه تفاوت شاخص و مهمی دارن که توی کد ما تاثیر میذاره و این دو تا رو از هم متمایز میکنه ؟
@purecoder_ir
Pure Coder
❓تفاوت فریمورک با library چیه ؟ مثلن میگیم فریمورک فلاتر یا فریمورک وانیا یا فریمورک لاراول یا ... از طرفی میگیم library یا پکیج dio چه تفاوت شاخص و مهمی دارن که توی کد ما تاثیر میذاره و این دو تا رو از هم متمایز میکنه ؟ @purecoder_ir
✅یکی از تفاوت های شاخص بین فریمورک و library اصل Inversion of control هست
فریمورک ها عمومن بر مبنای این اصل بنا شدن
توی یه فریمورک عمومن کنترل رو به فریمورک واگذار میکنیم. یا بهتره بگیم که فریمورک کنترل رو از ما میگیره.
برای مثال توی فلاتر متد build استیت لس ویجت رو اوراید میکنیم ولی نمیدونیم دقیقن کی و کجا و تحت چه شرایطی کال میشه و این فریمورک هست که کنترل رو از ما و آپ مون میگیره.
یا توی یه آپ بکند یه کنترلر و چندتا اکشن متد مینویسیم ولی نمیدونیم که دقیقن کی کال میشن و این فریمورک هست که کنترل داستان رو دستش میگیره ...
ولی توی library معمولن اینجوری نیست و این ما هستیم که کنترل رو بدست داریم
برآی مثال پکیج http چند تا متد بهمون میده (get post ...) و این ماییم که کنترل کال کردن این متدها رو به طور کامل در اختیار داریم ..
✅تحلیل شخصی: یه فریمورک هر چقدر هم که کوچیک باشه و یه library هر چقدر هم که بزرگ باشه، تا وقتی این ویژگی رو دارن از دایره ی خودشون خارج نمیشن
برای مثال test runner هایی مثل JUnit یا XUnit یا DartUnit هر چقدر هم که کوچیک باشن میتونن شبیه به یه فریمورک عمل کنن و control رو invert کنن
@purecoder_ir
فریمورک ها عمومن بر مبنای این اصل بنا شدن
توی یه فریمورک عمومن کنترل رو به فریمورک واگذار میکنیم. یا بهتره بگیم که فریمورک کنترل رو از ما میگیره.
برای مثال توی فلاتر متد build استیت لس ویجت رو اوراید میکنیم ولی نمیدونیم دقیقن کی و کجا و تحت چه شرایطی کال میشه و این فریمورک هست که کنترل رو از ما و آپ مون میگیره.
یا توی یه آپ بکند یه کنترلر و چندتا اکشن متد مینویسیم ولی نمیدونیم که دقیقن کی کال میشن و این فریمورک هست که کنترل داستان رو دستش میگیره ...
ولی توی library معمولن اینجوری نیست و این ما هستیم که کنترل رو بدست داریم
برآی مثال پکیج http چند تا متد بهمون میده (get post ...) و این ماییم که کنترل کال کردن این متدها رو به طور کامل در اختیار داریم ..
✅تحلیل شخصی: یه فریمورک هر چقدر هم که کوچیک باشه و یه library هر چقدر هم که بزرگ باشه، تا وقتی این ویژگی رو دارن از دایره ی خودشون خارج نمیشن
برای مثال test runner هایی مثل JUnit یا XUnit یا DartUnit هر چقدر هم که کوچیک باشن میتونن شبیه به یه فریمورک عمل کنن و control رو invert کنن
@purecoder_ir
با توجه به اینکه تعداد زیادی از برنامه نویسان مثل خودم با افسردگی دست و پنجه نرم میکنن میخوایم یه کمپین اختصاصی به نام افسردگان کلین درست کنیم 😝😝😝😂😂
از عمو باب هم دعوت میکنم که یه کتاب در موردش برامون بنویسه.
The Clean Depressed Coder (Bob Martin)
بخاطر جواد زبیدی یه فصل هم میگیم به اینترفیس اختصاص بده😂😂😂🏃♂️🏃♂️🏃♂️🏃♂️
از عمو باب هم دعوت میکنم که یه کتاب در موردش برامون بنویسه.
The Clean Depressed Coder (Bob Martin)
بخاطر جواد زبیدی یه فصل هم میگیم به اینترفیس اختصاص بده😂😂😂🏃♂️🏃♂️🏃♂️🏃♂️
لطفن برنامه نویسی رو با فلاتر شروع نکنید و به کسی هم پیشنهاد ندید که با فلاتر شروع کنه
مسیر خوبی درست نمیشه
قبلش یکم مساله حل کنید
یه استاد برنامه نویسی داشتیم (فرترن) که همش به ما مسائل الگوریتمی مختلف میگفت و ما همش فوحشش میدادیم که اینا به چه درد میخوره
ولی درستش همینه، ذهن باید برنامه نویس بار بیاد
با کانتینر زدن ذهن برنامه نویس نمیشه
با فلاتر یه راست نرید سراغ برنامه نویسی
هر جور میدونید
ولی مسیری که کج بشه درست کردنش به این سادگی ها نیست
شاید الان خوشحال باشی و بگی من توی جایگاه خیلی خوبیم ولی تا یه پله ای بیشتر نمیتونی بری بالا
@purecoder_ir
مسیر خوبی درست نمیشه
قبلش یکم مساله حل کنید
یه استاد برنامه نویسی داشتیم (فرترن) که همش به ما مسائل الگوریتمی مختلف میگفت و ما همش فوحشش میدادیم که اینا به چه درد میخوره
ولی درستش همینه، ذهن باید برنامه نویس بار بیاد
با کانتینر زدن ذهن برنامه نویس نمیشه
با فلاتر یه راست نرید سراغ برنامه نویسی
هر جور میدونید
ولی مسیری که کج بشه درست کردنش به این سادگی ها نیست
شاید الان خوشحال باشی و بگی من توی جایگاه خیلی خوبیم ولی تا یه پله ای بیشتر نمیتونی بری بالا
@purecoder_ir
🔥چالش
فرض کنید یه ساختار درختی مثل ساختار بالا داریم
❓این ساختار با کد مدل سازی کنید
⚠️تعداد level ها بی نهایت هست و توی دیاگرام فقط چند تا level داریم و تعداد node ها توی هرlevel هم دل بخواهی هست
❓یه فانکشن داشته باشید که ورودی شماره level رو بگیره و تعداد node ها توی اون level رو بده
@purecoder_ir
فرض کنید یه ساختار درختی مثل ساختار بالا داریم
❓این ساختار با کد مدل سازی کنید
⚠️تعداد level ها بی نهایت هست و توی دیاگرام فقط چند تا level داریم و تعداد node ها توی هرlevel هم دل بخواهی هست
❓یه فانکشن داشته باشید که ورودی شماره level رو بگیره و تعداد node ها توی اون level رو بده
@purecoder_ir
Forwarded from پاسخ به شبهات 🇵🇸 (programmer.flutter)
اپلیکیشن حدیث نور
مجموعه ای از روایات با دسته بندی های:
- تربیت کودک و نوجوان
- روانشناسی
- رفتار با زیر دستان
- بهداشت و تندرستی
و....
امیدوارم که برای عزیزان مفید باشه❤️
https://myket.ir/app/com.example.hadisnor
مجموعه ای از روایات با دسته بندی های:
- تربیت کودک و نوجوان
- روانشناسی
- رفتار با زیر دستان
- بهداشت و تندرستی
و....
امیدوارم که برای عزیزان مفید باشه❤️
https://myket.ir/app/com.example.hadisnor