Python BackendHub – Telegram
Python BackendHub
7.51K subscribers
314 photos
46 videos
11 files
432 links
Learning python & Backend Engineering, with Mani!

Youtube: https://www.youtube.com/@GitOverHere
Github: https://github.com/ManiMozaffar
Linkedin: https://www.linkedin.com/in/manimozaffar

تبلیغات نداریم

Admin: @Mani_nikou
Download Telegram
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
👍7
داشتم یک سر به لیست سابسکرایبم میزدم که تلسکو رو دیدم :))
اولین توتوریال پایتونیم رو با تلسکو دیدم واقعا یکی از بهترین معلم هایی که دیدم. تو هر ویدیوش ۱۰ بار خطا میکرد و بعد دیباگش میکرد.

@ManiFoldsPython
10😁6👍4
صبح obs ریختم که ریکورد های بعدیو با obs بکنم

نتیجش این شد که رفتم تو میتینگ 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
👍4🤯3
کیفیت کد خوب با این metric ها سنجیده میشه:
Reusability
Readability
Testability
Flexibility
Mature Tests

کتاب x و روش y همه راه حل برای حل این مشکلاتن. کدی که این ۵ مورد توش رعایت شده اصلا مهم نیست که OOP بوده یا نه. مهم نیست SOLID بوده یا نه. مهم نیست TDD بوده یا نه.
خلاصه TDD اینه که به شما داره میگه کدتون باید Testability بالایی داشته باشه و overengineer نکنید و اول <فکر>‌کنید بعد <دیزاین>‌کنید و بعد کد بزنید (برای اینکه اول تست بنویسید دقیقا باید این مسیر طی شه) ولی آیا تنها روش رسیدن به اینا TDD هست؟ قطعا نه. یک راه حل خوبه. برای یک سواله خوب که معایب خودشو هم داره. پس همیشه به جای دنبال کردن کورکورانه یک methodology فکر کنید ببینید چی داره به شما میده و چی از شما میگیره

@ManiFoldsPython
👍7
https://www.youtube.com/watch?v=udrvnKiQHsA

ویدیو دوم هم آپلود شد. همون ویدیو لایو بود که ظبط کردیم. خوشبختانه فیچر chapter ساختن هم باز شد برام تو یوتیوب

سورس کد دوره لایو چلنج
https://github.com/ManiMozaffar/fast-student

لینک توضیحات خود تمرین و چیزایی که تو تسک خواسته شده بود ازتون
- توضیح لایو کد چنلج

@ManiFoldsPython
7👍1
امروز پلی لیست بعدی رو شروع میکنم
سعی میکنم ۲ ویدیو ضبط کنم

ویدیو اول: DI و DIP
ویدیو دوم:‌ یونیت تست و ماک گرفتن


دوستان برای پلی لیست ریفکتورینگ اگه کدی چیزی دارید که در حد ۲۰۰ خط نوشته شده خیلی ممنون میشم باهام به اشتراک بگذاریدش که بتونم ریفکتورش کنم و ظبطش کنم که اون پلی لیست هم ادامه داشته باشه. سه چهار ریپو کد نیاز دارم. اگه داشتین کامنت کنید تو همین پست که من اضافش کنم به لیستم

@ManiFoldsPython
👍8🔥64
یک پلی لیست جدید داریم که توش میپردازم به نحوه تست نویسی, تست های مختلف, و اصول تست نویسی در 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
👍152🔥1
Python BackendHub
یک پلی لیست جدید داریم که توش میپردازم به نحوه تست نویسی, تست های مختلف, و اصول تست نویسی در SDLC ویدیو اول این پلی لیست, اومدم در مورد dependency inversion principle و Dependency Injection صحبت کردم و گفتم چرا مهم هستند و تو فریم ورک های مختلف نحوه پیاده…
دوستان یک نکته اشاره کنم.. من تو ویدیو هام معمولا از فست استفاده میکنم برای اینکه مثال بزنم و مثال نشون بدم. واقعا چیز خاصیم نداره. توصیه میکنم بهتون حتما یاد بگیرید
نهایتا شما تو یک هفته یا دو هفته کل داک فستو تموم میکنید. خود داک فست همینطوری که تو ویدیو نشون دادم فقط داک نیست خیلی مفاهیم رو توش توضیح داده! بنظره من هیچ دوره فستی واقعا به خوبی داکش نیست. فریم ورک نیست لایبریه برای همین خیلی چیز سنگینی نداره و سریع یادش میگیرین

اما اینکه API خوب بنویسید چه با فست چه بدون فست هنر میخواد. با فست شاید مثلا از فریم ورکی مثل جنگو بیشتر انرژی بطلبه چون چیزی تو سطح لایبری کنترل نشده و دستتون بازه. منم تو این محتوا هایی که میخوام تولید کنم بیشتر هدفم این چیزاست. پس اینکه اگه با فست کد نمیزنید بازم میتونه مطالب براتون به درد بخور باشه.

یک سوال هم دارم برام پیش اومده, من که قبلا vote گرفته بودم اکثرا میخواستن راجب تست نویسی محتوا تولید کنم ولی الان بازدید و استقبال خیلی کمه ازش, اگه ایده یا فیدبکی دارین ممنون میشم باهام درمیون بذارید که ویدیو های بعدی رو بهتر کنم. مثلا سطح مطالب بالاست؟‌ پایینه؟ مثال خوب نیست؟ مثال کمه؟‌

سعی کردم زمان ویدیو رو کم کنم که کلا شد ۲ تا ویدیو ۱۵ دقیقه ای و نمیذارم تو پلی لیست ویدیویی بالای ۲۰ دقیقه بره.

@ManiFoldsPython
21👍3
get git over here😂

اسم کاناله که واسه یوتیوب گذاشتم
@ManiFoldsPython
🤣16🔥4😁4
Python BackendHub
get git over here😂 اسم کاناله که واسه یوتیوب گذاشتم @ManiFoldsPython
وقتی یک هندی میخواد get over here رو تلفظ کنه‌:))
🤣20👎3😁2
پایدانتیک یک میلیارد دانلود داشته..! 👀
@ManiFoldsPython
🔥13👍1
git checkout -

میرین تو همون برنچ قبلی که بودین
واقعا مفیده 😂
😁17👍4🔥4😱2
Forwarded from ‌BenDev
ویس در مورد اینکه چرا جنگو (فریم
ورک )نباید استفاده کنید!
@BenDevelop
👍15🔥2
‌BenDev
Voice message
چقدر این ویس حق بود
(پ.ن:‌اکثر پست های کانال امیربهادر تو گروهش برای من میاد :)))‌ تو کانال هیچ پستی برام نمیاد. از عجایب تلگرام :))) )

@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
9👏2👍1
Python BackendHub
یک پلی لیست داریم که توش میپردازم به نحوه تست نویسی, تست های مختلف, و اصول تست نویسی در SDLC تو ویدیو سوم پلی لیست, پرداختم به پای تست, توضیح دادم پای تست چیه, چرا بهتره از لایبری unit test پایتون و اینکه fixture ها چین و scope چیه و assertion چیه و چطور…
دوستان دوره بیشتر حالت مفهومی داره
این دو ویدیو رو ظبط کردم که بقیه ویدیو ها قراره زیاد از pytest استفاده کنیم که سوال نباشه براتون چه اتفاقی داره میفته

تو سایت مونگارد میدیدم دوره پای تست وجود داره
ولی حقیقت اینجاست که اصلا اشاره ای به نحوه تست نویسی و انواع تست نشده که خیلی مهم ترن
صرفا یک نگاه پکیجی و داکیومنتی به ماژول های مختلف برای تست نویسی داشته که اصلا هدف من تو این دوره همچین چیزی نیست

https://www.mongard.ir/courses/unittest/episode/523/unittest-pytest/

@ManiFoldsPython
👍143