Python BackendHub
تو این ویدیو پرداختم به نحوه code review و clean code یک کد FastAPI که خوب نبود و نیاز به ریفکتور اساسی داشت رو باهم ریفکتور کردیم و توضیح دادم دقیقا چرا ریفکتور کردم و چرا نسخه ریفکتور شده بهتره خود کد رو از این ریپو میتونید ببینید https://github.com/Ma…
یک نکته ای داخل این ویدیو بود که نتونستم توی ویدیو بگم چون خیلی طولانی میشد و ربط مستقیم به تایتل ویدیو هم نداشت.. به عنوان یک برنامه نویس باید بفهمید چیکار دارین میکنید.
نظر شخصیم اینه که این مهم ترین اصل برنامه نویسیه. هر کدی که شما مینویسید باید بفهمید که دلیلش چی بوده؟ چرا اینکارو کردین؟ نکته ای که من متوجه شدم اینه که خیلی از دوستان واقعا دلایلی برای کاری که میکنند ندارن... . یعنی یک reasoning ای همیشه داشته باشید حتی به غلط. چون بالاخره هممون اشتباه میکنیم دیگه.. ولی باید بدونیم داشتیم چیکار میکردیم!
مثال میگم, کسی که کتاب two scopes django رو خونده باشه اونجا نویسنده میگه که تو جنگو تمام assert ها رد میشن موقعی که دیباگ رو false میذارین. دلیلش چیه؟ دلیلش اینه که شما وقتی پایتون رو آپتیمایز ران میکنید (و خود پایتونم از حالت دیباگ خارج میشه که با داندر دیباگ میتونید ببینید) یکی از کار هایی که میکنه تمام assertion هارو ایگنور میکنه. پس شما وقتی two scopes رو دارید میخونید باید بعد اون جمله ای که نوشته یک چرا بذارید و گوگلش کنید. چرا اینکارو میکردن؟ قطعا یک دلیلی دارن دیگه... جنگو core دولوپر ها که الکی کدی وارد جنگو نمیکنن... عمق اطلاعاتتون هم در همین راستا زیاد میشه.
منتهی توصیه شخصی میکنم که خودتون رو گم نکنید شروع نکنید به پرسیدن چرا هایی که از تسک فاصله گرفتن. اون چرا ها هم مفیدن ولی یادگیری فقط بخواد عمقی باشه سطح یادگیری کم میشه. پس بالانس رو رعایت کنید. خودمم حتی این مورد رو بعضا نقض میکنم و میرم وارد عمق یادگیری میشم که اصلا بهش احتیاج نداشتم در حالی که چیزای سطحی تری که خیلی نیازش دارم هنوز بلد نیستم.
مثال دیگه وقتی شما مینویسی router.post باید بدونید داره چه اتفاقی میفته. اینکه میاین validation حجم باینری فایل input رو توی خود روتر مینویسید یعنی عمق سواد HTTP نداشتین.
مثال دیگه اینکه داریم کد رو decouple میکنیم که reusable شه باید بدونید چرا داریم اینکارو میکنیم. برنامه نویسی جغرافی نیست. من دیدم بعضیا میگن چون فلان کتاب یا فلان شخص گفته, دنبال راه حل اونا نباشید تو مرحله اول شما باید صورت سوال رو درک کنید تا بعد بتونید راه حل اونا رو درک کنید.
اگه دارید یک تابع مینویسید باید دلیل بیارین که چرا تابع نوشتین. چرا کلس ننوشتین؟ خلاصه سعی کنید خط به خط همیشه فکر کنید که دارید چیکار میکنید و خودتون رو توجیح کنید. من شخصا اینکارو کردم و خیلی نتیجه مثبتی گرفتم تا از زمانی که اینکارو نمیکردم.
@ManiFoldsPython
نظر شخصیم اینه که این مهم ترین اصل برنامه نویسیه. هر کدی که شما مینویسید باید بفهمید که دلیلش چی بوده؟ چرا اینکارو کردین؟ نکته ای که من متوجه شدم اینه که خیلی از دوستان واقعا دلایلی برای کاری که میکنند ندارن... . یعنی یک reasoning ای همیشه داشته باشید حتی به غلط. چون بالاخره هممون اشتباه میکنیم دیگه.. ولی باید بدونیم داشتیم چیکار میکردیم!
مثال میگم, کسی که کتاب two scopes django رو خونده باشه اونجا نویسنده میگه که تو جنگو تمام assert ها رد میشن موقعی که دیباگ رو false میذارین. دلیلش چیه؟ دلیلش اینه که شما وقتی پایتون رو آپتیمایز ران میکنید (و خود پایتونم از حالت دیباگ خارج میشه که با داندر دیباگ میتونید ببینید) یکی از کار هایی که میکنه تمام assertion هارو ایگنور میکنه. پس شما وقتی two scopes رو دارید میخونید باید بعد اون جمله ای که نوشته یک چرا بذارید و گوگلش کنید. چرا اینکارو میکردن؟ قطعا یک دلیلی دارن دیگه... جنگو core دولوپر ها که الکی کدی وارد جنگو نمیکنن... عمق اطلاعاتتون هم در همین راستا زیاد میشه.
منتهی توصیه شخصی میکنم که خودتون رو گم نکنید شروع نکنید به پرسیدن چرا هایی که از تسک فاصله گرفتن. اون چرا ها هم مفیدن ولی یادگیری فقط بخواد عمقی باشه سطح یادگیری کم میشه. پس بالانس رو رعایت کنید. خودمم حتی این مورد رو بعضا نقض میکنم و میرم وارد عمق یادگیری میشم که اصلا بهش احتیاج نداشتم در حالی که چیزای سطحی تری که خیلی نیازش دارم هنوز بلد نیستم.
مثال دیگه وقتی شما مینویسی router.post باید بدونید داره چه اتفاقی میفته. اینکه میاین validation حجم باینری فایل input رو توی خود روتر مینویسید یعنی عمق سواد HTTP نداشتین.
مثال دیگه اینکه داریم کد رو decouple میکنیم که reusable شه باید بدونید چرا داریم اینکارو میکنیم. برنامه نویسی جغرافی نیست. من دیدم بعضیا میگن چون فلان کتاب یا فلان شخص گفته, دنبال راه حل اونا نباشید تو مرحله اول شما باید صورت سوال رو درک کنید تا بعد بتونید راه حل اونا رو درک کنید.
اگه دارید یک تابع مینویسید باید دلیل بیارین که چرا تابع نوشتین. چرا کلس ننوشتین؟ خلاصه سعی کنید خط به خط همیشه فکر کنید که دارید چیکار میکنید و خودتون رو توجیح کنید. من شخصا اینکارو کردم و خیلی نتیجه مثبتی گرفتم تا از زمانی که اینکارو نمیکردم.
@ManiFoldsPython
👍16🔥4
Python BackendHub
من خودم تو مارکت ایران خیلی کار نکردم ولی یکی از برداشت من بعد از هاست شدن یا مشاهده مصاحبات tech immigrant اینه که تو ایران اصلا مهم نیست نرم افزار چقدر تست شه و صرفا سرعت ریلیز مهمه. یعنی اول و آخر تیم product تصمیم میگیرن و تیم develop رو پوش میکنند (البته…
وقتی میگفتم این هفته فقط باید تست بنویسم و code review تست بکنم شوخی نمیکردم :))
کانتربیوت امروز گیتهابمه
پی نوشت: اون ۴ تا review ای که کردم هم unit test بوده رو یک ریپو دیگه
@ManiFoldsPython
کانتربیوت امروز گیتهابمه
پی نوشت: اون ۴ تا review ای که کردم هم unit test بوده رو یک ریپو دیگه
@ManiFoldsPython
👍3😁3🔥1
Python BackendHub
وقتی میگفتم این هفته فقط باید تست بنویسم و code review تست بکنم شوخی نمیکردم :)) کانتربیوت امروز گیتهابمه پی نوشت: اون ۴ تا review ای که کردم هم unit test بوده رو یک ریپو دیگه @ManiFoldsPython
بعضیا پرسیدن من چطوری مثلا تست نویسی رو یاد گرفتم, مثلا چه کتاب خاصی خوندم یا چه دوره ای دیدم..
بنظره من کلا اشتباهه که شما ۱ کتاب بخونی و بعد بگی اوکی من یاد گرفتم. چون اون کتابو یک انسان نوشته, و ذهنیت اون انسان پشت اون کتاب بوده. برای همین من شخصا ترجیح میدم تو همچین چیزایی برای اینکه ذهنم bias نشه به جاش ۳۰-۴۰ تا article بخونم که کار همون یک کتاب رو میکنه برای من ولی از دید ۳۰-۴۰ نفره مختلف..
امروز ۲ تا آرتیکل خوندم براتون میذارم اینجا راجب تست نویسیه
اولیش راجب اینه که always assert the failing test first توی یونیت تستاتون. خیلی وقتا assertion ای که میذارین شما برای حل یک چیزی (مثلا میگین فلان چیز خرابه)اشتباهه. در صورتی که assertion شما اشتباهه و دلیل باگ اون چیزی که شما فکر میکردی نیست و طبق همین assertion جلو میرین و کد رو تغییر میدین. تغییراتی که دادین کلا وقتتون رو هدر دادین و حالا احتمالا باگ جدید هم درست کردید. پس به جای سرو کله زدن با یک باگ باید با ۲ باگ سرو کله بزنید. برای همین تو اولین قدم سعی کنید تستی بنویسید که اون خطا رو reproduce میکنه تو مینیمال ترین حالت ممکن. (دقیقا unit ای که fail میشه باید براش تست بنویسید). اینطوری خیلیی راحت دیباگش میکنید و یک چهارم وقتتون گرفته میشه.
اینجا خیلی کامل توضیح داده
https://canro91.github.io/2021/02/05/FailingTest/
نکته دوم راجب confidence بود تو تست نویسی. تستی که مینویسیم واقعا چقدر اطمینان میده به ما که محصولمون کار میکنه؟ چقدر ارزش داره؟ این مقاله راجب همینه
https://meeshkan.com/blog/defining-confidence-in-software-testing/
@ManiFoldsPython
بنظره من کلا اشتباهه که شما ۱ کتاب بخونی و بعد بگی اوکی من یاد گرفتم. چون اون کتابو یک انسان نوشته, و ذهنیت اون انسان پشت اون کتاب بوده. برای همین من شخصا ترجیح میدم تو همچین چیزایی برای اینکه ذهنم bias نشه به جاش ۳۰-۴۰ تا article بخونم که کار همون یک کتاب رو میکنه برای من ولی از دید ۳۰-۴۰ نفره مختلف..
امروز ۲ تا آرتیکل خوندم براتون میذارم اینجا راجب تست نویسیه
اولیش راجب اینه که always assert the failing test first توی یونیت تستاتون. خیلی وقتا assertion ای که میذارین شما برای حل یک چیزی (مثلا میگین فلان چیز خرابه)اشتباهه. در صورتی که assertion شما اشتباهه و دلیل باگ اون چیزی که شما فکر میکردی نیست و طبق همین assertion جلو میرین و کد رو تغییر میدین. تغییراتی که دادین کلا وقتتون رو هدر دادین و حالا احتمالا باگ جدید هم درست کردید. پس به جای سرو کله زدن با یک باگ باید با ۲ باگ سرو کله بزنید. برای همین تو اولین قدم سعی کنید تستی بنویسید که اون خطا رو reproduce میکنه تو مینیمال ترین حالت ممکن. (دقیقا unit ای که fail میشه باید براش تست بنویسید). اینطوری خیلیی راحت دیباگش میکنید و یک چهارم وقتتون گرفته میشه.
اینجا خیلی کامل توضیح داده
https://canro91.github.io/2021/02/05/FailingTest/
نکته دوم راجب confidence بود تو تست نویسی. تستی که مینویسیم واقعا چقدر اطمینان میده به ما که محصولمون کار میکنه؟ چقدر ارزش داره؟ این مقاله راجب همینه
https://meeshkan.com/blog/defining-confidence-in-software-testing/
@ManiFoldsPython
Meeshkan
Defining Confidence in Software Testing | Meeshkan Website
Trying to make sense of all the vague terminology in testing land, starting with confidence.
👍7
داشتم یک سر به لیست سابسکرایبم میزدم که تلسکو رو دیدم :))
اولین توتوریال پایتونیم رو با تلسکو دیدم واقعا یکی از بهترین معلم هایی که دیدم. تو هر ویدیوش ۱۰ بار خطا میکرد و بعد دیباگش میکرد.
@ManiFoldsPython
اولین توتوریال پایتونیم رو با تلسکو دیدم واقعا یکی از بهترین معلم هایی که دیدم. تو هر ویدیوش ۱۰ بار خطا میکرد و بعد دیباگش میکرد.
@ManiFoldsPython
❤10😁6👍4
Python BackendHub
تو این ویدیو پرداختم به نحوه code review و clean code یک کد FastAPI که خوب نبود و نیاز به ریفکتور اساسی داشت رو باهم ریفکتور کردیم و توضیح دادم دقیقا چرا ریفکتور کردم و چرا نسخه ریفکتور شده بهتره خود کد رو از این ریپو میتونید ببینید https://github.com/Ma…
ویدیو رو توی یوتیوب آپلود کردم
خیلی از فیچر ها برام فعال نیست چون تاحالا فعالیتی نداشتم رو یوتیوب
ممنون میشم ساب کنید 🙌
https://www.youtube.com/watch?v=9bnP8zh_wfo
خود کد رو از این ریپو میتونید ببینید
https://github.com/ManiMozaffar/refactor-101
@ManiFoldsPython
خیلی از فیچر ها برام فعال نیست چون تاحالا فعالیتی نداشتم رو یوتیوب
ممنون میشم ساب کنید 🙌
https://www.youtube.com/watch?v=9bnP8zh_wfo
خود کد رو از این ریپو میتونید ببینید
https://github.com/ManiMozaffar/refactor-101
@ManiFoldsPython
YouTube
ریفکتور کد کثیف نوشته شده با FastAPI
Source Code: https://github.com/ManiMozaffar/refactor-101
🔖 Chapters:
00:00 Intro
00:52 Refactor database's model
04:38 Decoupling and refactoring serivce.py
37:00 Router refactoring
🔖 Chapters:
00:00 Intro
00:52 Refactor database's model
04:38 Decoupling and refactoring serivce.py
37:00 Router refactoring
❤13👍4
صبح obs ریختم که ریکورد های بعدیو با obs بکنم
نتیجش این شد که رفتم تو میتینگ daily standup و تبدیل شدم به mr invisible 😎
۲۰ دقیقست دارم بالا پایینش میکنم ولی درست نمیشه :)) کسی راهکاری داره براش؟
پ.ن:اپو بستم ... درست نمیشه
@ManiFoldsPython
نتیجش این شد که رفتم تو میتینگ daily standup و تبدیل شدم به mr invisible 😎
۲۰ دقیقست دارم بالا پایینش میکنم ولی درست نمیشه :)) کسی راهکاری داره براش؟
پ.ن:اپو بستم ... درست نمیشه
@ManiFoldsPython
🤣16
این پست راجب SDLC هست, یک مقاله عالی راجب Gherkin
لینک
What is Gherkin Language?
Gherkin is a business readable language which helps you to describe business behavior without going into details of implementation. It is a domain specific language for defining tests in Cucumber format for specifications. It uses plain language to describe use cases and allows users to remove logic details from behavior tests.
Gherkin Syntax
Gherkin is line-oriented language just like YAML and Python. Each line called step and starts with keyword and end of the terminals with a stop. Tab or space are used for the indentation. In this noscript, a comment can be added anywhere you want, but it should start with a # sign
توصیه میکنم اولین کاری که باید انجام بدید موقع ساخت یک Software اینه که یک فرد غیر فنی بیاد و با Gherkin Syntax دقیقا داکیومنت کنه چی میخواد از تیم سافتور. یادگیریش یک روز هم زمان نمیبره. صرفا یک language هست برای توصیف محصول. اون موقع دیگه تیم دولوپر انرژی خیلی کمتری میذاره رو فهم بیزنس و خیلی راحت تر متوجه میشه و دیزاینی که میشه هم دقیقا متناسب با همون بیزنس و فیچر ها خواهد بود.
@ManiFoldsPython
لینک
What is Gherkin Language?
Gherkin is a business readable language which helps you to describe business behavior without going into details of implementation. It is a domain specific language for defining tests in Cucumber format for specifications. It uses plain language to describe use cases and allows users to remove logic details from behavior tests.
Gherkin Syntax
Gherkin is line-oriented language just like YAML and Python. Each line called step and starts with keyword and end of the terminals with a stop. Tab or space are used for the indentation. In this noscript, a comment can be added anywhere you want, but it should start with a # sign
توصیه میکنم اولین کاری که باید انجام بدید موقع ساخت یک Software اینه که یک فرد غیر فنی بیاد و با Gherkin Syntax دقیقا داکیومنت کنه چی میخواد از تیم سافتور. یادگیریش یک روز هم زمان نمیبره. صرفا یک language هست برای توصیف محصول. اون موقع دیگه تیم دولوپر انرژی خیلی کمتری میذاره رو فهم بیزنس و خیلی راحت تر متوجه میشه و دیزاینی که میشه هم دقیقا متناسب با همون بیزنس و فیچر ها خواهد بود.
@ManiFoldsPython
Guru99
Gherkin Language: Format, Syntax & Gherkin Test in Cucumber
What is Gherkin? Gherkin is the format for cucumber specifications. It is a domain specific language which helps you to describe business behavior without the need to go into detail of implementation.
👍4🤯3
کیفیت کد خوب با این metric ها سنجیده میشه:
Reusability
Readability
Testability
Flexibility
Mature Tests
کتاب x و روش y همه راه حل برای حل این مشکلاتن. کدی که این ۵ مورد توش رعایت شده اصلا مهم نیست که OOP بوده یا نه. مهم نیست SOLID بوده یا نه. مهم نیست TDD بوده یا نه.
خلاصه TDD اینه که به شما داره میگه کدتون باید Testability بالایی داشته باشه و overengineer نکنید و اول <فکر>کنید بعد <دیزاین>کنید و بعد کد بزنید (برای اینکه اول تست بنویسید دقیقا باید این مسیر طی شه) ولی آیا تنها روش رسیدن به اینا TDD هست؟ قطعا نه. یک راه حل خوبه. برای یک سواله خوب که معایب خودشو هم داره. پس همیشه به جای دنبال کردن کورکورانه یک methodology فکر کنید ببینید چی داره به شما میده و چی از شما میگیره
@ManiFoldsPython
Reusability
Readability
Testability
Flexibility
Mature Tests
کتاب x و روش y همه راه حل برای حل این مشکلاتن. کدی که این ۵ مورد توش رعایت شده اصلا مهم نیست که OOP بوده یا نه. مهم نیست SOLID بوده یا نه. مهم نیست TDD بوده یا نه.
خلاصه TDD اینه که به شما داره میگه کدتون باید Testability بالایی داشته باشه و overengineer نکنید و اول <فکر>کنید بعد <دیزاین>کنید و بعد کد بزنید (برای اینکه اول تست بنویسید دقیقا باید این مسیر طی شه) ولی آیا تنها روش رسیدن به اینا TDD هست؟ قطعا نه. یک راه حل خوبه. برای یک سواله خوب که معایب خودشو هم داره. پس همیشه به جای دنبال کردن کورکورانه یک methodology فکر کنید ببینید چی داره به شما میده و چی از شما میگیره
@ManiFoldsPython
👍7
لایو کدی که سباستین سازنده fastapi هم توش هست
https://www.youtube.com/watch?v=iqrS7Q174Ac
Build an AI app with FastAPI and Docker - Coding Tutorial with Tips
@ManiFoldsPyton
https://www.youtube.com/watch?v=iqrS7Q174Ac
Build an AI app with FastAPI and Docker - Coding Tutorial with Tips
@ManiFoldsPyton
YouTube
Build an AI app with FastAPI and Docker - Coding Tutorial with Tips
Join me in a coding session with Sebastián Ramírez and learn how to build a Machine Learning app with FastAPI and Docker. Along the way we will show you some tips like the interactive coding session and Docker init command, and best practices when working…
👍8🔥1😁1
https://www.youtube.com/watch?v=udrvnKiQHsA
ویدیو دوم هم آپلود شد. همون ویدیو لایو بود که ظبط کردیم. خوشبختانه فیچر chapter ساختن هم باز شد برام تو یوتیوب
سورس کد دوره لایو چلنج
https://github.com/ManiMozaffar/fast-student
لینک توضیحات خود تمرین و چیزایی که تو تسک خواسته شده بود ازتون
- توضیح لایو کد چنلج
@ManiFoldsPython
ویدیو دوم هم آپلود شد. همون ویدیو لایو بود که ظبط کردیم. خوشبختانه فیچر chapter ساختن هم باز شد برام تو یوتیوب
سورس کد دوره لایو چلنج
https://github.com/ManiMozaffar/fast-student
لینک توضیحات خود تمرین و چیزایی که تو تسک خواسته شده بود ازتون
- توضیح لایو کد چنلج
@ManiFoldsPython
YouTube
کدینگ چلنج اپلیکیشن مدرسه
I have finished Fast-Student, A tricky 2 and half hours coding challenge which I previously posted on my Linkedin! Task denoscription is also on github's Readme, with sketched design.
Source Code: https://github.com/ManiMozaffar/fast-student
🔖 Chapters:
…
Source Code: https://github.com/ManiMozaffar/fast-student
🔖 Chapters:
…
❤7👍1
امروز پلی لیست بعدی رو شروع میکنم
سعی میکنم ۲ ویدیو ضبط کنم
ویدیو اول: DI و DIP
ویدیو دوم: یونیت تست و ماک گرفتن
دوستان برای پلی لیست ریفکتورینگ اگه کدی چیزی دارید که در حد ۲۰۰ خط نوشته شده خیلی ممنون میشم باهام به اشتراک بگذاریدش که بتونم ریفکتورش کنم و ظبطش کنم که اون پلی لیست هم ادامه داشته باشه. سه چهار ریپو کد نیاز دارم. اگه داشتین کامنت کنید تو همین پست که من اضافش کنم به لیستم
@ManiFoldsPython
سعی میکنم ۲ ویدیو ضبط کنم
ویدیو اول: DI و DIP
ویدیو دوم: یونیت تست و ماک گرفتن
دوستان برای پلی لیست ریفکتورینگ اگه کدی چیزی دارید که در حد ۲۰۰ خط نوشته شده خیلی ممنون میشم باهام به اشتراک بگذاریدش که بتونم ریفکتورش کنم و ظبطش کنم که اون پلی لیست هم ادامه داشته باشه. سه چهار ریپو کد نیاز دارم. اگه داشتین کامنت کنید تو همین پست که من اضافش کنم به لیستم
@ManiFoldsPython
👍8🔥6❤4
یک پلی لیست جدید داریم که توش میپردازم به نحوه تست نویسی, تست های مختلف, و اصول تست نویسی در SDLC
ویدیو اول این پلی لیست, اومدم در مورد dependency inversion principle و Dependency Injection صحبت کردم و گفتم چرا مهم هستند و تو فریم ورک های مختلف نحوه پیاده سازی DI رو بررسی کردیم.
https://www.youtube.com/watch?v=qSMHCHeErYY&list=PLEQ3RnweNGA6v7qTMrDCcpgr9u91zvpq_&index=1
ویدیو دوم, اومدم در مورد ماک گرفتن صحبت کردم, ماک چیه و side effect چیه و چطوری میتونیم ماک بگیریم؟تفاوت ماک کاستوم چیه با ماک unittest و چه مزایا و معایبی نسبت به هم دارن؟ و کجا باید چیو ماک بگیریم
https://www.youtube.com/watch?v=8tsrLxe_-oE&list=PLEQ3RnweNGA6v7qTMrDCcpgr9u91zvpq_&index=2
سورس کد:
https://github.com/ManiMozaffar/testing-101
سوال داشتین حتما زیر ویدیو کامنت کنید پاسخ میدم
@ManiFoldsPython
ویدیو اول این پلی لیست, اومدم در مورد dependency inversion principle و Dependency Injection صحبت کردم و گفتم چرا مهم هستند و تو فریم ورک های مختلف نحوه پیاده سازی DI رو بررسی کردیم.
https://www.youtube.com/watch?v=qSMHCHeErYY&list=PLEQ3RnweNGA6v7qTMrDCcpgr9u91zvpq_&index=1
ویدیو دوم, اومدم در مورد ماک گرفتن صحبت کردم, ماک چیه و side effect چیه و چطوری میتونیم ماک بگیریم؟تفاوت ماک کاستوم چیه با ماک unittest و چه مزایا و معایبی نسبت به هم دارن؟ و کجا باید چیو ماک بگیریم
https://www.youtube.com/watch?v=8tsrLxe_-oE&list=PLEQ3RnweNGA6v7qTMrDCcpgr9u91zvpq_&index=2
سورس کد:
https://github.com/ManiMozaffar/testing-101
سوال داشتین حتما زیر ویدیو کامنت کنید پاسخ میدم
@ManiFoldsPython
YouTube
دپندسی اینجشکن (تزریق وابستگی) و قانون دیپندنسی اینورژن
In this video, I've explained what does Dependency injection means and what does Dependency Inversion Principle means, and how they're different. This is very critical knowledge which enable our code to be testable
✍️ Source Code: https://github.com/Man…
✍️ Source Code: https://github.com/Man…
👍15❤2🔥1
Python BackendHub
یک پلی لیست جدید داریم که توش میپردازم به نحوه تست نویسی, تست های مختلف, و اصول تست نویسی در SDLC ویدیو اول این پلی لیست, اومدم در مورد dependency inversion principle و Dependency Injection صحبت کردم و گفتم چرا مهم هستند و تو فریم ورک های مختلف نحوه پیاده…
دوستان یک نکته اشاره کنم.. من تو ویدیو هام معمولا از فست استفاده میکنم برای اینکه مثال بزنم و مثال نشون بدم. واقعا چیز خاصیم نداره. توصیه میکنم بهتون حتما یاد بگیرید
نهایتا شما تو یک هفته یا دو هفته کل داک فستو تموم میکنید. خود داک فست همینطوری که تو ویدیو نشون دادم فقط داک نیست خیلی مفاهیم رو توش توضیح داده! بنظره من هیچ دوره فستی واقعا به خوبی داکش نیست. فریم ورک نیست لایبریه برای همین خیلی چیز سنگینی نداره و سریع یادش میگیرین
اما اینکه API خوب بنویسید چه با فست چه بدون فست هنر میخواد. با فست شاید مثلا از فریم ورکی مثل جنگو بیشتر انرژی بطلبه چون چیزی تو سطح لایبری کنترل نشده و دستتون بازه. منم تو این محتوا هایی که میخوام تولید کنم بیشتر هدفم این چیزاست. پس اینکه اگه با فست کد نمیزنید بازم میتونه مطالب براتون به درد بخور باشه.
یک سوال هم دارم برام پیش اومده, من که قبلا vote گرفته بودم اکثرا میخواستن راجب تست نویسی محتوا تولید کنم ولی الان بازدید و استقبال خیلی کمه ازش, اگه ایده یا فیدبکی دارین ممنون میشم باهام درمیون بذارید که ویدیو های بعدی رو بهتر کنم. مثلا سطح مطالب بالاست؟ پایینه؟ مثال خوب نیست؟ مثال کمه؟
سعی کردم زمان ویدیو رو کم کنم که کلا شد ۲ تا ویدیو ۱۵ دقیقه ای و نمیذارم تو پلی لیست ویدیویی بالای ۲۰ دقیقه بره.
@ManiFoldsPython
نهایتا شما تو یک هفته یا دو هفته کل داک فستو تموم میکنید. خود داک فست همینطوری که تو ویدیو نشون دادم فقط داک نیست خیلی مفاهیم رو توش توضیح داده! بنظره من هیچ دوره فستی واقعا به خوبی داکش نیست. فریم ورک نیست لایبریه برای همین خیلی چیز سنگینی نداره و سریع یادش میگیرین
اما اینکه API خوب بنویسید چه با فست چه بدون فست هنر میخواد. با فست شاید مثلا از فریم ورکی مثل جنگو بیشتر انرژی بطلبه چون چیزی تو سطح لایبری کنترل نشده و دستتون بازه. منم تو این محتوا هایی که میخوام تولید کنم بیشتر هدفم این چیزاست. پس اینکه اگه با فست کد نمیزنید بازم میتونه مطالب براتون به درد بخور باشه.
یک سوال هم دارم برام پیش اومده, من که قبلا vote گرفته بودم اکثرا میخواستن راجب تست نویسی محتوا تولید کنم ولی الان بازدید و استقبال خیلی کمه ازش, اگه ایده یا فیدبکی دارین ممنون میشم باهام درمیون بذارید که ویدیو های بعدی رو بهتر کنم. مثلا سطح مطالب بالاست؟ پایینه؟ مثال خوب نیست؟ مثال کمه؟
سعی کردم زمان ویدیو رو کم کنم که کلا شد ۲ تا ویدیو ۱۵ دقیقه ای و نمیذارم تو پلی لیست ویدیویی بالای ۲۰ دقیقه بره.
@ManiFoldsPython
❤21👍3
Python BackendHub
get git over here😂 اسم کاناله که واسه یوتیوب گذاشتم @ManiFoldsPython
وقتی یک هندی میخواد get over here رو تلفظ کنه:))
🤣20👎3😁2
BenDev
Voice message
چقدر این ویس حق بود
(پ.ن:اکثر پست های کانال امیربهادر تو گروهش برای من میاد :))) تو کانال هیچ پستی برام نمیاد. از عجایب تلگرام :))) )
@ManiFoldsPython
(پ.ن:اکثر پست های کانال امیربهادر تو گروهش برای من میاد :))) تو کانال هیچ پستی برام نمیاد. از عجایب تلگرام :))) )
@ManiFoldsPython
👍7🤣3🥴1
یک پلی لیست داریم که توش میپردازم به نحوه تست نویسی, تست های مختلف, و اصول تست نویسی در SDLC
تو ویدیو سوم پلی لیست, پرداختم به پای تست, توضیح دادم پای تست چیه, چرا بهتره از لایبری unit test پایتون و اینکه fixture ها چین و scope چیه و assertion چیه و چطور assertion ای بنویسیم که خوانایی بالاتری داشته باشه.
https://www.youtube.com/watch?v=_YPJZtMRs8Q&list=PLEQ3RnweNGA6v7qTMrDCcpgr9u91zvpq_&index=3
تو ویدیو چهارم پلی لیست, نحوه ماک کردن database و application رو توضیح دادم و نحوه نوشتن تست تو FastAPI رو هم آموزش دادم.
https://www.youtube.com/watch?v=zhp7Y6sWqfE&list=PLEQ3RnweNGA6v7qTMrDCcpgr9u91zvpq_&index=4
سورس کد:
https://github.com/ManiMozaffar/testing-101
سوال داشتین حتما زیر ویدیو کامنت کنید پاسخ میدم
@ManiFoldsPython
تو ویدیو سوم پلی لیست, پرداختم به پای تست, توضیح دادم پای تست چیه, چرا بهتره از لایبری unit test پایتون و اینکه fixture ها چین و scope چیه و assertion چیه و چطور assertion ای بنویسیم که خوانایی بالاتری داشته باشه.
https://www.youtube.com/watch?v=_YPJZtMRs8Q&list=PLEQ3RnweNGA6v7qTMrDCcpgr9u91zvpq_&index=3
تو ویدیو چهارم پلی لیست, نحوه ماک کردن database و application رو توضیح دادم و نحوه نوشتن تست تو FastAPI رو هم آموزش دادم.
https://www.youtube.com/watch?v=zhp7Y6sWqfE&list=PLEQ3RnweNGA6v7qTMrDCcpgr9u91zvpq_&index=4
سورس کد:
https://github.com/ManiMozaffar/testing-101
سوال داشتین حتما زیر ویدیو کامنت کنید پاسخ میدم
@ManiFoldsPython
YouTube
آموزش PyTest
In this video, I've explained what is Pytest, how to write your first test in pytest, I've talked about assertion, readable assertion, fixtures, mock, scopes and plugins and configurations in Pytest!
✍️ Source Code: https://github.com/ManiMozaffar/testing…
✍️ Source Code: https://github.com/ManiMozaffar/testing…
❤9👏2👍1