Pure Coder
787 subscribers
189 photos
30 videos
8 files
150 links
⭕️آدرس سایت:
https://purecoder.ir

⭕️گروه پرسش و پاسخ:
@purecoder_gp

⭕️پشتیبانی:
@PureCoder_support
@MohammadTaherri
Download Telegram
لینک گروه 👇

@purecoder_gp

سوالات و بحث های مربوط به Architecture، تست نویسی، OO، بکند، دات نت و فلاتر و ... رو میتونید توی این گروه مطرح کنید...
Forwarded from Fluttery's Journey
توی مثال جامع فصل 5 با Notification ها و inheritedWidget و Stateful و Stateless و RenderobjectWidget کار میکنیم...

یو ایش رو ایراد نگیرید😅
من توی UI داغونم😅😅😁

@fluttery_journey
@purecoder_support
Forwarded from Fluttery's Journey
بهتر شد😂😂
Forwarded from Fluttery's Journey
کد سبد خرید که توی مثال جامع داریم

رسمن از فلاتر خارج شد و یه لحظه رفتم توی پوست اصلی خودم😂😂😂

@fluttery_journey
@purecoder_support
Pure Coder
کد سبد خرید که توی مثال جامع داریم رسمن از فلاتر خارج شد و یه لحظه رفتم توی پوست اصلی خودم😂😂😂 @fluttery_journey @purecoder_support
توی نام گذاری متد ها من اولین پارامتر متد رو هم جزو نام متد حساب میکنم(اگه امکانش باشه...نه همیشه)

نمیگم addProduct و اسمش رو میکذارم add و اولین پارامتر که اسمش product هست به اسم اضافه میشه موقع خوندن

یا نمیگم quantityOfProduct و میگم quantityOf و اولین پارامتر که product هست موقع خوندن به اسم اضافه میشه

یا نمیگم increaseQuantityOfProduct و میگم increaseQuantityOf و ...

@purecoder_ir
اصل single responsibility رو میشه یه جاهایی نقض کرد و مشکلی هم پیش نیاد

زمانی که responsibility کلاس یا ماژولت خیلی چیز بزرگ و خاصی نیست میتونی responsibility دیگه ای هم گردنش بندازی

مهندسی نرم افزار از اول تا آخرش trade off هست و رادیکال بودن جواب نمیده و بدون trade off به هیچ عنوان نمیشه کاری از پیش برد و اصول ایده آل رو باید و باید و باید یه جاهایی نقض کرد ...منتها با آگاهی و علم و اشراف به داستان

@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
نام گذاری و قانون نام گذاری فیلد های دیتابیستون رو سعی کنید شبیه به domain model هاتون باشه

اگه پراپرتی های 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
Pure Coder
🔥سرفصل های کلی دوره ی Fluttery's Journey 1️⃣فصل اول با مباحث بیسیک که foundation ما برای ادامه ی ماجراجویی مون رو بنا میکنن, آشنا میشیم. از جمله : مفهوم Event Loop در دارت مفهوم Recursive Function مفهوم Composite Pattern که توی فلاتر خیلی باهاش کار…
سلام دوستان

دوستانی که میخوان توی دوره ی فلاتر شرکت کنن ولی میخوان هزینه رو به صورت قسطی پرداخت کنن میتونن پیوی پیام بدن ...

@purecoder_support

تقریبن ۷ فصل دوره تکمیل شده و ۳ فصل از دوره باقی مونده

فصل بندی ها نسبت به چیزی که توی پست اعلام شده تغییر کرده ولی مباحث همون هست

در صورت سوال هم میتونید به آیدی بالا پیام بدید
Pure Coder pinned «سلام دوستان دوستانی که میخوان توی دوره ی فلاتر شرکت کنن ولی میخوان هزینه رو به صورت قسطی پرداخت کنن میتونن پیوی پیام بدن ... @purecoder_support تقریبن ۷ فصل دوره تکمیل شده و ۳ فصل از دوره باقی مونده فصل بندی ها نسبت به چیزی که توی پست اعلام شده تغییر…»
طبق استاندارد تایپ double چند بیته ؟
Anonymous Quiz
17%
16
26%
32
49%
64
8%
128
دوستان وضعیت کاری تون آلان چطوریه (توی هر فیلدی از برنامه نویسی که هستید فرقی نمیکنه)
Anonymous Poll
43%
مشغول به کار توی شرکت هستم
14%
فریلسنر هستم و همین الان پروژه دارم
6%
بیزینس خودم رو دارم
38%
بیکارم ...
Pure Coder
کد سبد خرید که توی مثال جامع داریم رسمن از فلاتر خارج شد و یه لحظه رفتم توی پوست اصلی خودم😂😂😂 @fluttery_journey @purecoder_support
به عنوان چالش برای این کد تست بنویسید و اسکرینش رو یا لینک گیتهابش رو توی کامنت بفرستید ..

✔️پ.ن: برای تست نوشتن کلاس رو غیر Singleton در نظر بگیرید

🎁به تستی که نظرم رو جلب کنه جایزه میدم ...
Pure Coder
کد سبد خرید که توی مثال جامع داریم رسمن از فلاتر خارج شد و یه لحظه رفتم توی پوست اصلی خودم😂😂😂 @fluttery_journey @purecoder_support
سینگلتون رو توی app با dependency injection اوکی کنید و کلاس ها رو تا حد امکان سینگلتون نکنید، مثل کدی که من زدم و کار خیلی درستی نیست ...

ولی توی library ها و فریمورک ها کاربرد داره

@purecoder_ir
تفاوت فریمورک با library چیه ؟

مثلن میگیم فریمورک فلاتر یا فریمورک وانیا یا فریمورک لاراول یا ...

از طرفی میگیم 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
با توجه به اینکه تعداد زیادی از برنامه نویسان مثل خودم با افسردگی دست و پنجه نرم میکنن میخوایم یه کمپین اختصاصی به نام افسردگان کلین درست کنیم 😝😝😝😂😂

از عمو باب هم دعوت میکنم که یه کتاب در موردش برامون بنویسه.

The Clean Depressed Coder (Bob Martin)

بخاطر جواد زبیدی یه فصل هم میگیم به اینترفیس اختصاص بده😂😂😂🏃‍♂️🏃‍♂️🏃‍♂️🏃‍♂️
لطفن برنامه نویسی رو با فلاتر شروع نکنید و به کسی هم پیشنهاد ندید که با فلاتر شروع کنه

مسیر خوبی درست نمیشه

قبلش یکم مساله حل کنید

یه استاد برنامه نویسی داشتیم (فرترن) که همش به ما مسائل الگوریتمی مختلف میگفت و ما همش فوحشش میدادیم که اینا به چه درد میخوره

ولی درستش همینه، ذهن باید برنامه نویس بار بیاد

با کانتینر زدن ذهن برنامه نویس نمیشه

با فلاتر یه راست نرید سراغ برنامه نویسی

هر جور میدونید

ولی مسیری که کج بشه درست کردنش به این سادگی ها نیست

شاید الان خوشحال باشی و بگی من توی جایگاه خیلی خوبیم ولی تا یه پله ای بیشتر نمیتونی بری بالا

@purecoder_ir
🔥چالش

فرض کنید یه ساختار درختی مثل ساختار بالا داریم

این ساختار با کد مدل سازی کنید

⚠️تعداد level ها بی نهایت هست و توی دیاگرام فقط چند تا level داریم و تعداد node ها توی هرlevel هم دل بخواهی هست

یه فانکشن داشته باشید که ورودی شماره level رو بگیره و تعداد node ها توی اون level رو بده

@purecoder_ir