🟢یه هرم معروفی هست که میگه توی پروژه ها باید یه چیزی حدود ۷۰ درصد یونیت تست داشت و ۲۰ درصد integration test و بقیه هم e2e test (درصد ها مهم نیستن )
❌ این هرم برای هر پروژه ای قابل استفاده نیست
✅یونیت تست ها بیشتر بدرد بخش هایی از پروژه که businesses logic یا algorithm های پیچیده دارن میخورن .
✅توی پروژه ها یی که بیزینس لاجیک زیادی ندارن، معمولن این درصد ها تغییر میکنه و حتا ممکنه تعداد integration test ها برابر یا بیشتر از unit test ها بشه .
✅توی هر اپی با هر تایپی داشتن integration test لازمه، ولی unit test ها لزومی نداره که همه جا ازشون استفاده بشه.
🔥 توی یه آپ موبایل اگه بیزینس لاجیک خاصی نداشته باشه و صرفن اطلاعات رو از وب سرویس بگیره و نمایش بده، تعداد integration test ها میتونه از unit test ها پیشی بگیره.
🔥مهم نوشتن تست یا تعصب داشتن روی نوشتن یونیت تست نیست، مهمتر نوشتن تست های باکیفیت و انتخاب مناسب بین انواع تست برای هر تایپ کد و سناریو هست.
@purecoder_ir
❌ این هرم برای هر پروژه ای قابل استفاده نیست
✅یونیت تست ها بیشتر بدرد بخش هایی از پروژه که businesses logic یا algorithm های پیچیده دارن میخورن .
✅توی پروژه ها یی که بیزینس لاجیک زیادی ندارن، معمولن این درصد ها تغییر میکنه و حتا ممکنه تعداد integration test ها برابر یا بیشتر از unit test ها بشه .
✅توی هر اپی با هر تایپی داشتن integration test لازمه، ولی unit test ها لزومی نداره که همه جا ازشون استفاده بشه.
🔥 توی یه آپ موبایل اگه بیزینس لاجیک خاصی نداشته باشه و صرفن اطلاعات رو از وب سرویس بگیره و نمایش بده، تعداد integration test ها میتونه از unit test ها پیشی بگیره.
🔥مهم نوشتن تست یا تعصب داشتن روی نوشتن یونیت تست نیست، مهمتر نوشتن تست های باکیفیت و انتخاب مناسب بین انواع تست برای هر تایپ کد و سناریو هست.
@purecoder_ir
❌اگر مفهومی رو بلد هستی و نمیتونی ۱ ساعت راجبش توضیح بدی و صحبت کنی، پس بلد نیستی!!!!
صرف استفاده کردن از یه چیزی نمیشه گفت بلدم!!!!!
میتونی بری بالای منبر ؟
@purecoder_ir
صرف استفاده کردن از یه چیزی نمیشه گفت بلدم!!!!!
میتونی بری بالای منبر ؟
@purecoder_ir
Forwarded from Vania Dart Framework
YouTube
Best Dart Backend for Flutter
Best dart backend for Flutter. This is a dart server side framework
https://www.dbestech.com/tutorials/best-dart-backend-for-flutter
🎈🎈🎈Take the course here
https://www.udemy.com/course/dart-framework-api-building-course/?referralCode=CA64A5F61B002ACA1419…
https://www.dbestech.com/tutorials/best-dart-backend-for-flutter
🎈🎈🎈Take the course here
https://www.udemy.com/course/dart-framework-api-building-course/?referralCode=CA64A5F61B002ACA1419…
Forwarded from Persian Flutter (PayamZ)
سلام به همگی
همونطور که شاید مطلع باشید مجید حاجیان عزیز یه کتاب بسیار با ارزش به نام Flutter Engineering نوشته
این کتاب به زبان اینگلیسی نوشته شده اما چندنفر از بچه های کامیونیتی دارن تلاش میکنن که این کتاب رو به فارسی ترجمه کنن
شما هم اگه علاقه مندید و دوست دارید تو زمینه ترجمه کنید
میتونید تو این گروه عضو بشید و توی ترجمه کتاب مشارکت کنید
https://t.me/+333nPbRgV1Q3ZDVk
@persian_flutter
همونطور که شاید مطلع باشید مجید حاجیان عزیز یه کتاب بسیار با ارزش به نام Flutter Engineering نوشته
این کتاب به زبان اینگلیسی نوشته شده اما چندنفر از بچه های کامیونیتی دارن تلاش میکنن که این کتاب رو به فارسی ترجمه کنن
شما هم اگه علاقه مندید و دوست دارید تو زمینه ترجمه کنید
میتونید تو این گروه عضو بشید و توی ترجمه کتاب مشارکت کنید
https://t.me/+333nPbRgV1Q3ZDVk
@persian_flutter
Forwarded from Persian Flutter (Hamid)
سلام دوباره به جامعه فلاتر فارسی
فرداشب اولین کافه فلاتر سال جدید رو در آخرین روز فروردین با ما باشید. 🔥
جمعه ۳۱ فروردین ساعت ۲۰:۰۰ به وقت ایران
لینک گوگل میت:
meet.google.com/pxv-gbtu-hqz
لینک کلندر:
https://calendar.google.com/calendar/event?action=TEMPLATE&tmeid=Nzh0ZnRocGUyM3EycWhuNmVka3RzY2Nic3MgcGVyc2lhbmZsdXR0ZXJAbQ&tmsrc=persianflutter%40gmail.com
لینک یوتیوب:
https://youtube.com/live/_J0bWP5rp60?feature=share
فرداشب اولین کافه فلاتر سال جدید رو در آخرین روز فروردین با ما باشید. 🔥
جمعه ۳۱ فروردین ساعت ۲۰:۰۰ به وقت ایران
لینک گوگل میت:
meet.google.com/pxv-gbtu-hqz
لینک کلندر:
https://calendar.google.com/calendar/event?action=TEMPLATE&tmeid=Nzh0ZnRocGUyM3EycWhuNmVka3RzY2Nic3MgcGVyc2lhbmZsdXR0ZXJAbQ&tmsrc=persianflutter%40gmail.com
لینک یوتیوب:
https://youtube.com/live/_J0bWP5rp60?feature=share
Forwarded from Persian Flutter (PayamZ)
🔥Object Oriented Design
🟢دو فصل جدید به دوره ی OOD اضافه شده 😍😍
✅فصل چهارم که یه مثال خوب رو با معماری کلین جلو میبریم
✅و فصل پنجم که همین مثال رو ادامه میدیم و نکات فوق العاده ای رو به صورت عملی راجب Encapsulation میگیم تا یه فصل کامل راجب مبحث مهم Encapsulation داشته باشیم.
🔗لینک دوره:
https://purecoder.ir/course/object-oriented-design-part-one/
🔥دوره شامل پشتیبانی تلگرام هست.
✅برای شرکت در دوره به آیدی های زیر پیام بدید:
@PureCoder_Support
@MohammadTaherri
✅در آینده سعی میکنیم دو فصل دیگه به دوره اضافه کنیم.
یک فصل برای Abstraction
و یک فصل هم برای مبحث Error Handling که به طور کامل نکاتش رو پوشش میدیم (این فصل هم ادامه ی مثال فصل معماری کلین و Encapsulation خواهد بود .)
@purecoder_ir
🟢دو فصل جدید به دوره ی OOD اضافه شده 😍😍
✅فصل چهارم که یه مثال خوب رو با معماری کلین جلو میبریم
✅و فصل پنجم که همین مثال رو ادامه میدیم و نکات فوق العاده ای رو به صورت عملی راجب Encapsulation میگیم تا یه فصل کامل راجب مبحث مهم Encapsulation داشته باشیم.
🔗لینک دوره:
https://purecoder.ir/course/object-oriented-design-part-one/
🔥دوره شامل پشتیبانی تلگرام هست.
✅برای شرکت در دوره به آیدی های زیر پیام بدید:
@PureCoder_Support
@MohammadTaherri
✅در آینده سعی میکنیم دو فصل دیگه به دوره اضافه کنیم.
یک فصل برای Abstraction
و یک فصل هم برای مبحث Error Handling که به طور کامل نکاتش رو پوشش میدیم (این فصل هم ادامه ی مثال فصل معماری کلین و Encapsulation خواهد بود .)
@purecoder_ir
لطفن جواب بدید 🙏🙏🙏
برنامه نویسی چندمین حرفه ای بود که امتحانش کردین ؟
از کجا مطمئن هستید که داخلش استعداد دارید ؟
از کجا معلوم که رسالت شما جای دیگه ای نباشه؟
برنامه نویسی چندمین حرفه ای بود که امتحانش کردین ؟
از کجا مطمئن هستید که داخلش استعداد دارید ؟
از کجا معلوم که رسالت شما جای دیگه ای نباشه؟
Forwarded from Persian Flutter (Parham Oyan)
ویدیو جدید داریم تو کانال یوتیوب!
لایک، کامنت و ساب یادتون نره!
https://www.youtube.com/watch?v=8Dnm_Ucu1PU
@persian_flutter
لایک، کامنت و ساب یادتون نره!
https://www.youtube.com/watch?v=8Dnm_Ucu1PU
@persian_flutter
YouTube
آیکنهای متناسب با DPI
تو این ویدئو به این میپردازیم که تو فلاتر چطور آیکنی با فرمت png رو توی صفحه نمایشهایی با تراکم پیکسلی متفاوت، با کیفیت مطلوب، نمایش بدیم.
عضو کانال ما هم بشید
Telegram: https://t.me/persian_flutter
عضو کانال ما هم بشید
Telegram: https://t.me/persian_flutter
Forwarded from [ بیشُعوری ] (ปïℓï)
This media is not supported in your browser
VIEW IN TELEGRAM
Forwarded from Persian Flutter (Hamid)
سلام. دوباره اومدیم با یه کافه فلاتر خفن دیگه امشب ۲۸ اردیبهشت ساعت ۲۰ به وقت ایران 🔥
طبق روال آخرین جمعههای ماه که با هم هستیم، امشب هم تو کافه فلاتر دو تا ارائه جذاب داریم:
۱- پیام زاهدی در مورد Flutter Embedded صحبت میکنه. پیام در آلمان تو همین حوزه فعالیت میکنه.
۲- امیرمحمد جابری در مورد موضوع پرکاربرد CI/CD in Flutter ارائه میده.
بعد ارائهها هم حتماً پیشمون بمونید که میخوایم در مورد آپدیت جدید فلاتر و فیچرهاش تو قسمت بحث آزاد صحبت کنیم. 😍
کافه فلاتر در گوگلمیت برگزار میشه:
https://meet.google.com/bxb-acjt-iaq?authuser=0
همچنین میتونید کافه فلاتر رو به صورت لایو از چنل یوتیوب جامعه فلاتر فارسی مشاهده کنید.
https://www.youtube.com/watch?v=Yz4iP5iSdFg
طبق روال آخرین جمعههای ماه که با هم هستیم، امشب هم تو کافه فلاتر دو تا ارائه جذاب داریم:
۱- پیام زاهدی در مورد Flutter Embedded صحبت میکنه. پیام در آلمان تو همین حوزه فعالیت میکنه.
۲- امیرمحمد جابری در مورد موضوع پرکاربرد CI/CD in Flutter ارائه میده.
بعد ارائهها هم حتماً پیشمون بمونید که میخوایم در مورد آپدیت جدید فلاتر و فیچرهاش تو قسمت بحث آزاد صحبت کنیم. 😍
کافه فلاتر در گوگلمیت برگزار میشه:
https://meet.google.com/bxb-acjt-iaq?authuser=0
همچنین میتونید کافه فلاتر رو به صورت لایو از چنل یوتیوب جامعه فلاتر فارسی مشاهده کنید.
https://www.youtube.com/watch?v=Yz4iP5iSdFg
Forwarded from Persian Flutter (Hamid)
سلام. دوباره داریم به آخرین جمعه ماه نزدیک میشیم و کافه فلاتر هم داره میرسه. این ماه قرارمون ۲۵ خرداده. 😅
جمعه ۲۵ خرداد ساعت ۸ شب به وقت ایران
طبق روال آخرین جمعههای ماه که با هم هستیم، این ماه هم دو تا ارائه داریم:
- سبحان مرادی در مورد End2End Testing با Patrol صحبت میکنه.
- حسین حاجیان هم در مورد Supabase ارائه میده.
بعد ارائهها هم بحث آزاد داریم. 👊
کافه فلاتر در گوگلمیت برگزار میشه:
https://meet.google.com/mok-qqdr-uwa
همچنین میتونید کافه فلاتر رو به صورت لایو از چنل یوتیوب جامعه فلاتر فارسی مشاهده کنید:
https://www.youtube.com/watch?v=1KJ5izo0pCg
لینک گوگل کلندر:
https://calendar.google.com/calendar/event?action=TEMPLATE&tmeid=MHNpbDQ0MGpwNGk4ZHMwMjRnbDRsNTRzcTYgcGVyc2lhbmZsdXR0ZXJAbQ&tmsrc=persianflutter%40gmail.com
جمعه ۲۵ خرداد ساعت ۸ شب به وقت ایران
طبق روال آخرین جمعههای ماه که با هم هستیم، این ماه هم دو تا ارائه داریم:
- سبحان مرادی در مورد End2End Testing با Patrol صحبت میکنه.
- حسین حاجیان هم در مورد Supabase ارائه میده.
بعد ارائهها هم بحث آزاد داریم. 👊
کافه فلاتر در گوگلمیت برگزار میشه:
https://meet.google.com/mok-qqdr-uwa
همچنین میتونید کافه فلاتر رو به صورت لایو از چنل یوتیوب جامعه فلاتر فارسی مشاهده کنید:
https://www.youtube.com/watch?v=1KJ5izo0pCg
لینک گوگل کلندر:
https://calendar.google.com/calendar/event?action=TEMPLATE&tmeid=MHNpbDQ0MGpwNGk4ZHMwMjRnbDRsNTRzcTYgcGVyc2lhbmZsdXR0ZXJAbQ&tmsrc=persianflutter%40gmail.com
🔥recursive function
❓توی فلاتر کجاها از الگوریتم بازگشتی استفاده شده ؟
✅خیلی جاها 😱
🔥برای مثال وقتی یه ویجت (Render Object) میخواد سایز خودش رو تعیین کنه اول به child اش میگه که سایزت رو مشخص کن و به من بگو و child اش هم همین رو به child اش میگه و این روند تا پایین درخت ادامه پیدا میکنه تا جایی که آخرین child اون شاخه (leaf)خودش رو سایز دهی کنه و به parent اش اعلام کنه و این روند به سمت بالای درخت ادامه پیدا میکنه تا همه ی parent ها یکی یکی خودشون رو سایز دهی کنن.
@purecoder_ir
❓توی فلاتر کجاها از الگوریتم بازگشتی استفاده شده ؟
✅خیلی جاها 😱
🔥برای مثال وقتی یه ویجت (Render Object) میخواد سایز خودش رو تعیین کنه اول به child اش میگه که سایزت رو مشخص کن و به من بگو و child اش هم همین رو به child اش میگه و این روند تا پایین درخت ادامه پیدا میکنه تا جایی که آخرین child اون شاخه (leaf)خودش رو سایز دهی کنه و به parent اش اعلام کنه و این روند به سمت بالای درخت ادامه پیدا میکنه تا همه ی parent ها یکی یکی خودشون رو سایز دهی کنن.
@purecoder_ir
کدوم یک از دیتا استراکچر های زیر شبیه الگوریتم بازگشتی عمل میکنه ؟
Anonymous Quiz
10%
Queue
35%
Linked List
41%
Stack
13%
Hash Map
یکی از دلایلی که توی جاوا و بعدش به پیروی از جاوا توی سی شارپ اینترفیس رو ابداع کردن، درحالیکه با استقاده از abstract class ها میشد همون کارو انجام داد این بود که طراحان جاوا تصمیم گرفتن ارث بری چند گانه که توی c++ وجود داشت رو توی جاوا بترکونن و به همین دلیل اینترفیس ها رو ابداع کردن تا یک کلاس بتونه چندتا اینترفیس رو impl کنه .
پ.ن: توی c++ یه کلاس میتونست از چند تا کلاس دیکه ارث بری کنه و توی جاوا این امکان نیست .
پ.ن: طراحان جاوا چون میخواستن کلن deadly diamond problem رو بپیچونن و خودشون رو درگیرش نکنن (مشکلی که در اثر multiple inheritance ایجاد میشه)، کلن از ریشه داستان رو بیخیال شدن.
@purecoder_ir
پ.ن: توی c++ یه کلاس میتونست از چند تا کلاس دیکه ارث بری کنه و توی جاوا این امکان نیست .
پ.ن: طراحان جاوا چون میخواستن کلن deadly diamond problem رو بپیچونن و خودشون رو درگیرش نکنن (مشکلی که در اثر multiple inheritance ایجاد میشه)، کلن از ریشه داستان رو بیخیال شدن.
@purecoder_ir
🔥widget Tree_Element Tree_Render Tree
✅توی فلاتر به ازای هر ویجت توی widget Tree یک Elememt توی Element Tree ایجاد میشه .
✅متناظر با ویجت های مختلف Element های مختلف هم وجود دارند
برای مثال
InheritedElement
...
✅ولی به ازای هر ویجت یک Render Object توی Render Tree ایجاد نمیشه و فقط ویجت هایی که از نوع RenderObjectWidget هستن یه RenderObject توی Render Tree ایجاد میکنن .
برای مثال StatelessWidget هیچ نماینده ای توی Render Tree نداره.
دلیلش اینه که فقط RenderObjectWidget ها جنبه ی بصری دارن و بقیه ویجت ها هیچ جنبه ی بصری ندارن .
✅ویجت هایی مثل Padding, Stack, Row, ...از نوع RenderObjectWidet هستن .
@purecoder_ir
✅توی فلاتر به ازای هر ویجت توی widget Tree یک Elememt توی Element Tree ایجاد میشه .
✅متناظر با ویجت های مختلف Element های مختلف هم وجود دارند
برای مثال
InheritedElement
...
✅ولی به ازای هر ویجت یک Render Object توی Render Tree ایجاد نمیشه و فقط ویجت هایی که از نوع RenderObjectWidget هستن یه RenderObject توی Render Tree ایجاد میکنن .
برای مثال StatelessWidget هیچ نماینده ای توی Render Tree نداره.
دلیلش اینه که فقط RenderObjectWidget ها جنبه ی بصری دارن و بقیه ویجت ها هیچ جنبه ی بصری ندارن .
✅ویجت هایی مثل Padding, Stack, Row, ...از نوع RenderObjectWidet هستن .
@purecoder_ir
Pure Coder
🔥Object Oriented Design 🟢دو فصل جدید به دوره ی OOD اضافه شده 😍😍 ✅فصل چهارم که یه مثال خوب رو با معماری کلین جلو میبریم ✅و فصل پنجم که همین مثال رو ادامه میدیم و نکات فوق العاده ای رو به صورت عملی راجب Encapsulation میگیم تا یه فصل کامل راجب مبحث مهم Encapsulation…
✂️50 % off
🔥تا یک هفته ی آینده میتونید دوره ی object oriented design رو با ۵۰ درصد تخفیف و با قیمت ۷۰۰ هزار تومان تهیه کنید
🔥دوره شامل مثال عملی برای فصل clean architecture هست.
🔗لینک دوره:
https://purecoder.ir/course/object-oriented-design-part-one/
برای تهیه دوره یا مشاوره به آیدی های زیر پیام بدید:
@purecoder_support
@MohammadTaherri
🔥تا یک هفته ی آینده میتونید دوره ی object oriented design رو با ۵۰ درصد تخفیف و با قیمت ۷۰۰ هزار تومان تهیه کنید
🔥دوره شامل مثال عملی برای فصل clean architecture هست.
🔗لینک دوره:
https://purecoder.ir/course/object-oriented-design-part-one/
برای تهیه دوره یا مشاوره به آیدی های زیر پیام بدید:
@purecoder_support
@MohammadTaherri
Pure Coder pinned «✂️50 % off 🔥تا یک هفته ی آینده میتونید دوره ی object oriented design رو با ۵۰ درصد تخفیف و با قیمت ۷۰۰ هزار تومان تهیه کنید 🔥دوره شامل مثال عملی برای فصل clean architecture هست. 🔗لینک دوره: https://purecoder.ir/course/object-oriented-design-part-one/…»
🔥TDD
✅رویکرد TDD یه رویکرد Test First هست که problem رو به sub problem های کوچکتر تقسیم میکنه تا با حل sub problem ها به یه solution جنرال برای problem اصلی برسه .
✅این که فقط تست رو ابتدا بنویسیم مهم نیست و مهم پیدا کردن boundry condition ها و روش درست حمله به problem هست.
✅توی این رویکرد باید از ساده ترین و پیش پا افتاده ترین Test Case ها شروع کرد و به سمت Tsst Case های پیچیده تر حرکت کرد .
✅هر چقدر به سمت جلو حرکت میکنیم تست ها specific تر میشن و کد generic تر میشه.
✅در نهایت هدف این رویکرد تولید کلین کدی هست که بدرستی کار کنه ولی بخش کار کردن و بخش کلین کردن رو از هم جدا میکنه و توی دو فاز مختلف به اون ها میپردازه و ابتدا کدی تولید میکنه که کار کنه و بعد به کلین کردنش میپردازه.
این فرایند در یک چرخه ی پیوسته ی Red..Green..Refactor انجام میشه.
✅وقتی صحبت از Test First میشه یعنی اینکه حتا در کلین کردن هم تست ها اولویت بالاتری نسبت به پروداکشن کد دارن و اول باید تست ها رو ریفکتور کنید و بعد پروداکشن کد رو .
@purecoder_ir
✅رویکرد TDD یه رویکرد Test First هست که problem رو به sub problem های کوچکتر تقسیم میکنه تا با حل sub problem ها به یه solution جنرال برای problem اصلی برسه .
✅این که فقط تست رو ابتدا بنویسیم مهم نیست و مهم پیدا کردن boundry condition ها و روش درست حمله به problem هست.
✅توی این رویکرد باید از ساده ترین و پیش پا افتاده ترین Test Case ها شروع کرد و به سمت Tsst Case های پیچیده تر حرکت کرد .
✅هر چقدر به سمت جلو حرکت میکنیم تست ها specific تر میشن و کد generic تر میشه.
✅در نهایت هدف این رویکرد تولید کلین کدی هست که بدرستی کار کنه ولی بخش کار کردن و بخش کلین کردن رو از هم جدا میکنه و توی دو فاز مختلف به اون ها میپردازه و ابتدا کدی تولید میکنه که کار کنه و بعد به کلین کردنش میپردازه.
این فرایند در یک چرخه ی پیوسته ی Red..Green..Refactor انجام میشه.
✅وقتی صحبت از Test First میشه یعنی اینکه حتا در کلین کردن هم تست ها اولویت بالاتری نسبت به پروداکشن کد دارن و اول باید تست ها رو ریفکتور کنید و بعد پروداکشن کد رو .
@purecoder_ir
وقتی که تست میزنیم (مخصوصن از نوع یونیت), باید با هر تغییر گوچیک تست ها رو ران کنیم.
حالا یه معضلی که اینجا پیش میاد, این هست که اگه بخوایم با هر تغییر کوچیک توی کد یا توی تست ها, مجددن تست ها رو ران کنیم و چند ثانیه منتظر نتیجه بشینیم, عملن فرایند کدنویسی کند میشه و تست هایی که قرار بوده بهمون سرعت بدن, تازه دست و پاگیر میشن.
بنابراین به یه ابزاری نیازه که به صورت اتومات و بدون دخالت ما, با هر تغییری, تست ها رو ران کنه و نتیجه رو گزارش کنه و سرعت خوبی هم داشته باشه تا سرعت عمل ما رو بالا ببره.
✅توی دات نت میشه از NCrunch استفاده کرد...
❓برای دارت چه ابزاری رو میشناسید؟
❓آیا تا حالا از ابزاری برای این منظور استفاده کردید؟
@purecoder_ir
حالا یه معضلی که اینجا پیش میاد, این هست که اگه بخوایم با هر تغییر کوچیک توی کد یا توی تست ها, مجددن تست ها رو ران کنیم و چند ثانیه منتظر نتیجه بشینیم, عملن فرایند کدنویسی کند میشه و تست هایی که قرار بوده بهمون سرعت بدن, تازه دست و پاگیر میشن.
بنابراین به یه ابزاری نیازه که به صورت اتومات و بدون دخالت ما, با هر تغییری, تست ها رو ران کنه و نتیجه رو گزارش کنه و سرعت خوبی هم داشته باشه تا سرعت عمل ما رو بالا ببره.
✅توی دات نت میشه از NCrunch استفاده کرد...
❓برای دارت چه ابزاری رو میشناسید؟
❓آیا تا حالا از ابزاری برای این منظور استفاده کردید؟
@purecoder_ir