اما جواب
تو پایتون چیزی به اسم Pass by Reference in یا pass by value نداریم.به جاش میگیم pass by assignment
یعنی چی حالا؟ اول به کلمهassigment میپردازم و رفتارش تو پایتون|
داریم که:
چون متغیر ما mutable نیست پس وقتی که یک بلایی سرش میاریم تغییر نمیکنه. بلکه یک آبجکت جدید ساخته میشه و رفرنسی که قبلا داده بودیم از بین میره.درسته؟
اما راجب mutableها اینطوری نیست. یعنی وقتی چیزی بهشون اضافه میکنیم یا بلایی سرشون میاریم همون آبجکت تغییر میکنه.
list_a = []
print(id(list_a)) # 1
list_a.append(1)
print(id(list_a)) # 1
درواقع رفتار پایینی خیلی بهینه تره از نظر ریسورسی نسبت به رفتار بالایی ولی تو رفتار بالا ما مجبوریم اونکارو کنیم چون mutable نیستن.
حالا یعنی چی pass by assignment?
یعنی دقیقا pass by assignment
یعنی نه رفرنسی از اون برمیگرده نه مقدارش کپی میشه. اگه قرار بود مقدارش کپی شه که کل مموری مارو توابعمون میگرفتن چون هی میخواستن مقدار رو کپی کنند دوباره برگردونن.
حالا از لحاظ ریسورسی و رم کاری ندارم به این موضوع ولی یک دلیل دیگه ای هم داشت
چون ذن پایتونه!
explicit is better than implicit
وقتی ما یک تابع صدا میکنیم و میگیم
myfunc(a=2)
پس یعنی a=2. به همین سادگی 😅
درواقع داریم ۲ رو assign میکنیم به a
دیگه پیچیدگی عجیبی نداره. مفهوم assign رو بلد باشین متوجه میشین.
ولی رفتاری که نشون میده بستگی به اون رفتار assign تغییر میکنه که mutable هست یا immutable
برای همینه که ما موقع سورت لیست مینویسیم
mylist.sort()
نمیگیم
my_list = sort(mylist)
چون اینطوری هم تو اینپوتی که بهش دادیم رو سورت میکرد هم لیست اصلیو
@ManiFoldsPython
تو پایتون چیزی به اسم Pass by Reference in یا pass by value نداریم.به جاش میگیم pass by assignment
یعنی چی حالا؟ اول به کلمهassigment میپردازم و رفتارش تو پایتون|
داریم که:
a = 2
print(id(a)) # 1
a += 1
print(id(a)) # 2
چون متغیر ما mutable نیست پس وقتی که یک بلایی سرش میاریم تغییر نمیکنه. بلکه یک آبجکت جدید ساخته میشه و رفرنسی که قبلا داده بودیم از بین میره.درسته؟
اما راجب mutableها اینطوری نیست. یعنی وقتی چیزی بهشون اضافه میکنیم یا بلایی سرشون میاریم همون آبجکت تغییر میکنه.
list_a = []
print(id(list_a)) # 1
list_a.append(1)
print(id(list_a)) # 1
درواقع رفتار پایینی خیلی بهینه تره از نظر ریسورسی نسبت به رفتار بالایی ولی تو رفتار بالا ما مجبوریم اونکارو کنیم چون mutable نیستن.
حالا یعنی چی pass by assignment?
یعنی دقیقا pass by assignment
یعنی نه رفرنسی از اون برمیگرده نه مقدارش کپی میشه. اگه قرار بود مقدارش کپی شه که کل مموری مارو توابعمون میگرفتن چون هی میخواستن مقدار رو کپی کنند دوباره برگردونن.
حالا از لحاظ ریسورسی و رم کاری ندارم به این موضوع ولی یک دلیل دیگه ای هم داشت
چون ذن پایتونه!
explicit is better than implicit
وقتی ما یک تابع صدا میکنیم و میگیم
myfunc(a=2)
پس یعنی a=2. به همین سادگی 😅
درواقع داریم ۲ رو assign میکنیم به a
دیگه پیچیدگی عجیبی نداره. مفهوم assign رو بلد باشین متوجه میشین.
ولی رفتاری که نشون میده بستگی به اون رفتار assign تغییر میکنه که mutable هست یا immutable
برای همینه که ما موقع سورت لیست مینویسیم
mylist.sort()
نمیگیم
my_list = sort(mylist)
چون اینطوری هم تو اینپوتی که بهش دادیم رو سورت میکرد هم لیست اصلیو
@ManiFoldsPython
👍16
Media is too big
VIEW IN TELEGRAM
Work life balance European countries >>>>>
سره کار یک چنل داریم که روز مرخصیو اعلام میکنیم، بیشتر خبریه تا اجازه 😂😂
@ManiFoldsPython
سره کار یک چنل داریم که روز مرخصیو اعلام میکنیم، بیشتر خبریه تا اجازه 😂😂
@ManiFoldsPython
😁8👍4😢1
Forwarded from DevTwitter | توییت برنامه نویسی
قانون جدید مهاجرتی آلمان برای IT specialist ها:
بدون مدرک تحصیلی میتونید مهاجرت کنید و blue card بگیرید.
پدر و مادر رو هم علاوه بر همسر و فرزند میتونید ببرید.
@DevTwitter | <mehdi/>
بدون مدرک تحصیلی میتونید مهاجرت کنید و blue card بگیرید.
پدر و مادر رو هم علاوه بر همسر و فرزند میتونید ببرید.
@DevTwitter | <mehdi/>
😁9👎3👍2
Screenshot 2023-06-17 162818.png
149.4 KB
کورسیه که خودم پلنشو و syllabusاش آماده کردم و قصدشو دارم استارت ظبطشو بزنم و آخر هفته ها یک یا چند اپیزود بدم.
از بالا به ترتیب شروع میکنم میام پایین.
اگه نظری چیزی دارین یا حس میکنید چیزی هست که میشه بهتر کرد به من بگین. هر کورسی که میبینید اینجا یک playlist جدا داره که چند ساعت بیشتر نمیشه.
پی نوشت: حقیقتا بین انگلیسی و فارسی موندم, احتمالا introduction بالا رو فارسی بذارم و بقیه انگلیسی چون مخاطب فارسی کم تعداده و مشابه این کورس هم کم پیدا هست.
@ManiFoldsPython
از بالا به ترتیب شروع میکنم میام پایین.
اگه نظری چیزی دارین یا حس میکنید چیزی هست که میشه بهتر کرد به من بگین. هر کورسی که میبینید اینجا یک playlist جدا داره که چند ساعت بیشتر نمیشه.
پی نوشت: حقیقتا بین انگلیسی و فارسی موندم, احتمالا introduction بالا رو فارسی بذارم و بقیه انگلیسی چون مخاطب فارسی کم تعداده و مشابه این کورس هم کم پیدا هست.
@ManiFoldsPython
👍27🔥11😁1🤩1
میگن الگوریتم به چه دردی میخوره
اگه میخواستین یک rate limit request کاملا dynamic داشته باشین تو سطح gateway اپلیکیشنتون چیکار میکردین؟
ببینید چقدر قشنگ کراکند اینو هندل میکنه :)
https://www.krakend.io/docs/endpoints/rate-limit/
الگوریتم باکتش:
https://www.krakend.io/docs/enterprise/throttling/token-bucket/
@ManiFoldsPython
اگه میخواستین یک rate limit request کاملا dynamic داشته باشین تو سطح gateway اپلیکیشنتون چیکار میکردین؟
ببینید چقدر قشنگ کراکند اینو هندل میکنه :)
https://www.krakend.io/docs/endpoints/rate-limit/
الگوریتم باکتش:
https://www.krakend.io/docs/enterprise/throttling/token-bucket/
@ManiFoldsPython
KrakenD - Open source API Gateway
Rate Limiting API Gateway Endpoints
Implement rate-limiting strategies in KrakenD API Gateway to control the number of requests and prevent API abuse or overloading
❤6👍1
رودمپ دوآپس
بنظره شما، به عنوان یک بک اند دولوپر چه چیزایی رو باید از این مسیر رو بلد باشیم؟
@ManiFoldsPython
بنظره شما، به عنوان یک بک اند دولوپر چه چیزایی رو باید از این مسیر رو بلد باشیم؟
@ManiFoldsPython
👍9
داشتم کورس تایپ چک real python رو میدیدم (پولیه رایگان نیست) که این تعریف برام جالب بود
@ManiFoldsPython
@ManiFoldsPython
👍6
https://realpython.com/lessons/python-coding-interview-tips-overview/
این کورس هم خیلی خوبه مخصوصا برای پاسخ دادن به سوالات پایتونی که ممکنه تو مصاحبه بپرسن. پولیه بازم ولی حداقل کداشو به صورت رایگان گذاشته. اگه وقت بذارین و از gpt بپرسین و قنشگ تمرین کنید نیازی به ویدیوهاش نخواهید داشت
@ManiFoldsPython
این کورس هم خیلی خوبه مخصوصا برای پاسخ دادن به سوالات پایتونی که ممکنه تو مصاحبه بپرسن. پولیه بازم ولی حداقل کداشو به صورت رایگان گذاشته. اگه وقت بذارین و از gpt بپرسین و قنشگ تمرین کنید نیازی به ویدیوهاش نخواهید داشت
@ManiFoldsPython
Realpython
How to Stand Out in a Python Coding Interview (Overview) – Real Python
Hi, my name is James. In this course, you’ll learn how to stand out in a Python coding interview. This applies to coding challenges, technical phone screens, and onsite interviews. You’ll learn a bunch of different data structures, built-in…
👍8👎2
خیلی خوشم اومد از این سوال,
Return a list of the indexes of the majority element.
Majority element is the element that appears more than floor(n / 2) times.
If there is no majority element, return []
جوابشو کامنت کنید 😁
سوال خیلی راحتیه ولی خیلی راحت میشه تسلط و آشنایی فرد رو به پایتون با همین سوال سنجید.
مثال ورودی خروجیش
@ManiFoldsPython
Return a list of the indexes of the majority element.
Majority element is the element that appears more than floor(n / 2) times.
If there is no majority element, return []
جوابشو کامنت کنید 😁
سوال خیلی راحتیه ولی خیلی راحت میشه تسلط و آشنایی فرد رو به پایتون با همین سوال سنجید.
مثال ورودی خروجیش
>>> majority_element_indexes([1, 1, 2])
[0, 1]
>>> majority_element_indexes([1, 2])
[]
>>> majority_element_indexes([])
[]
@ManiFoldsPython
👍7
اما پاسخش
نزدیک ترین پاسخ برای سروش بود.
Counter
برای این هست که شما الکی کدتون رو زیاد و گنده نکنید و همون کار رو انجام میده با پرفومنس خیلی خوب. یعنی کسی که پایتون بلده نسبت به itertools و collections و built in method ها تسلط داره یا آشنایی داره حداقل که کجا باید استفاده کنه ازشون.
نکته دیگه تایپ هینت بود که سروشم اینو رعایت کرده بود تو نسخه دوم کدش.
اما ایراد سروش این بود که برای اینکه تست کنه فاکنشنش ورودی خروجی هاش درست کار میکنه پرینتشون کرده بود.
راه حل ایده آل اینه که وقتی دارین فقط یک فانکشن مینویسید شما تو داک استرینگ بیاین داک تست بنویسید.
اون موقع میتونید فایلتونو با داک تست ران کنید و بهتون میگه اگه کدتون ایراد داشت نسبت به ورودی خروجی. من اصلا اینو نمیدونستم و دیشب فهمیدم که چرا تو داک استرینگ همچین چیزی میذارن. فکر میکردم فقط برای داکیومنت کردنه در صورتی که هم داکیومنت کردنه هم اینکه برنامه نویسی که داره اینو میخونه متوجه کارکردش شه و هم اینکه یک جور تسته خودش 😁
python -m doctest myfile.py
list comprehension ✅
doc test ✅
doc string ✅
type hints ✅
Counter ✅
@ManiFoldsPython
نزدیک ترین پاسخ برای سروش بود.
Counter
برای این هست که شما الکی کدتون رو زیاد و گنده نکنید و همون کار رو انجام میده با پرفومنس خیلی خوب. یعنی کسی که پایتون بلده نسبت به itertools و collections و built in method ها تسلط داره یا آشنایی داره حداقل که کجا باید استفاده کنه ازشون.
نکته دیگه تایپ هینت بود که سروشم اینو رعایت کرده بود تو نسخه دوم کدش.
اما ایراد سروش این بود که برای اینکه تست کنه فاکنشنش ورودی خروجی هاش درست کار میکنه پرینتشون کرده بود.
راه حل ایده آل اینه که وقتی دارین فقط یک فانکشن مینویسید شما تو داک استرینگ بیاین داک تست بنویسید.
اون موقع میتونید فایلتونو با داک تست ران کنید و بهتون میگه اگه کدتون ایراد داشت نسبت به ورودی خروجی. من اصلا اینو نمیدونستم و دیشب فهمیدم که چرا تو داک استرینگ همچین چیزی میذارن. فکر میکردم فقط برای داکیومنت کردنه در صورتی که هم داکیومنت کردنه هم اینکه برنامه نویسی که داره اینو میخونه متوجه کارکردش شه و هم اینکه یک جور تسته خودش 😁
python -m doctest myfile.py
list comprehension ✅
doc test ✅
doc string ✅
type hints ✅
Counter ✅
@ManiFoldsPython
👍19🔥1🤯1
بحث سیستم شد با یکی از دوستام
من ۶-۷ ماه پیش حدودا یک سیستم بستم که هنوز خیلی راضیم ازش. قیمتش نسبت به کاراییش خیلی خوب دراومد. اون موقع خیلی تحقیق کردم راجبش.
AMD Ryzen™ 7 7700X - 7700TL
Nvidia GeForce GTX 1660 Super - 4700 TL
Kingston FURY Beast 64GB DDR5 5200MHz CL40 Performans Rami Kit (2x32GB) - 6200TL
Samsung NVMe 500GB 1240TL
Asus Prime X670-P AMD X670 6400 MHz (OC) DDR5 Soket AM5 ATX Anakart - 7000TL
Monitor Trendyol 7500TL
قیمت ها برای اون موقع هستن که مجموعا شد ۲۵ هزار لیر که به پول اون موقع میشد ۱۲۰۰ دلار.
با مانیتور, رم ۶۴ و سی پی یو قوی. هیچ کاری نبود که روش نتونم بکنم. کارت گرافیکش هم در حد فیلم دیدن و 4k بود ولی خب برای گیم بازی کردن ایده ال نیست. اما ترجیح دادم کارت گرافیک اصلا پولی خرج نکنم براش و بیشتر تمرکز رو بذارم رو بقیه قطعات چون کارت گرافیک خیلی گرونه.
کل این سیستم ddr5 بود. اولش واقعا درک نمیکردم چقدر قدرتش فرق داره با ddr4 ولی وقتی سیستمو گرفتم چیزایی که تو سرور اجرا میکردم که رمش ۱۲۸ بود و ddr3 یا 4 بودن هم کم میاوردن ولی رو سیستم خودم خیلی راحت همونا اجرا میشدن.
پی نوشت:از سخت افزار خیلی کم حالیمه :))
@ManiFoldsPython
من ۶-۷ ماه پیش حدودا یک سیستم بستم که هنوز خیلی راضیم ازش. قیمتش نسبت به کاراییش خیلی خوب دراومد. اون موقع خیلی تحقیق کردم راجبش.
AMD Ryzen™ 7 7700X - 7700TL
Nvidia GeForce GTX 1660 Super - 4700 TL
Kingston FURY Beast 64GB DDR5 5200MHz CL40 Performans Rami Kit (2x32GB) - 6200TL
Samsung NVMe 500GB 1240TL
Asus Prime X670-P AMD X670 6400 MHz (OC) DDR5 Soket AM5 ATX Anakart - 7000TL
Monitor Trendyol 7500TL
قیمت ها برای اون موقع هستن که مجموعا شد ۲۵ هزار لیر که به پول اون موقع میشد ۱۲۰۰ دلار.
با مانیتور, رم ۶۴ و سی پی یو قوی. هیچ کاری نبود که روش نتونم بکنم. کارت گرافیکش هم در حد فیلم دیدن و 4k بود ولی خب برای گیم بازی کردن ایده ال نیست. اما ترجیح دادم کارت گرافیک اصلا پولی خرج نکنم براش و بیشتر تمرکز رو بذارم رو بقیه قطعات چون کارت گرافیک خیلی گرونه.
کل این سیستم ddr5 بود. اولش واقعا درک نمیکردم چقدر قدرتش فرق داره با ddr4 ولی وقتی سیستمو گرفتم چیزایی که تو سرور اجرا میکردم که رمش ۱۲۸ بود و ddr3 یا 4 بودن هم کم میاوردن ولی رو سیستم خودم خیلی راحت همونا اجرا میشدن.
پی نوشت:از سخت افزار خیلی کم حالیمه :))
@ManiFoldsPython
Amazon
Amd Ryzen 7 7700X AM5Pin 105W Fansız (Box)
Bu baskın oyun işlemcisi, dünyanın en popüler oyunlarında 100'den fazla FPS performansı sunabilir AMD "Zen 4" mimarisine dayanan 8 Çekirdekli ve 16 işleme ipliği 5.4 GHz Max Boost, overclock için kilitsiz, 80 MB önbellek, DDR5-5200 desteği Son teknoloji ürünü…
🔥6👍2❤1👏1🎉1
دیباگ با Pdb
حتما بخونید
https://realpython.com/python-debugging-pdb/#using-breakpoints
چیت شیت آخرش خیلی به درد بخوره. 👍
@ManiFoldsPython
حتما بخونید
https://realpython.com/python-debugging-pdb/#using-breakpoints
چیت شیت آخرش خیلی به درد بخوره. 👍
@ManiFoldsPython
Realpython
Python Debugging With Pdb – Real Python
In this hands-on tutorial, you'll learn the basics of using pdb, Python's interactive source code debugger. Pdb is a great tool for tracking down hard-to-find bugs and allows you to fix faulty code more quickly.
👍10
من حدود ۳ هفته پیش اشتراک real python رو گرفتم. اوایلش از رو سرچش مثلا طبق سطحی و learning path ای که گذاشته بود جلو میرفتم که خب مطالبشو خیلی خوشم نیومد پولیاشو. ولی اخیرا شروع کردم سرچ کردن چیزایی که ضعیفم توش و تو گوگل تهش هم real python میذارم و تهش میرسم دقیقا به همون توضیحاتی که میخوام.
یک ماه پیش میگفتم نمیارزه ولی با این روش جدید میگم قطعا میارزه. حتی شده یکی دو ماه اشتراکشو بگیرین که وقتتون خالی تره و سعی کنید کل ویدیوهایی که تو مباحثی که ضعف دارین و مهمه رو ببینید.
مثلا چیزایی که من از دیروز شروع کردم به دیدن و تموم کردم :
0. چطور تو مصاحبه لایو کدینگ شبیه پایتون اکسپرت بنظر بیایم
1. دیباگینگ با pdb
2. کار با vscode و شخصی سازیش با پایتون
چیزایی که خواهم دید:
3. Python Concurrency & Parallel Programming roadmap
4. Python's assert: Debug and Test Your Code Like a Pro
5. Advanced Visual Studio Code for Python Developers
6. Decorator quiz
7. Build Robust Continuous Integration With Docker and Friends
8. Python 3.12 Preview: Support For the Linux perf Profiler
9. Automating Django Deployments with Fabric and Ansible
10. Start Managing Multiple Python Versions With pyenv (Overview)
تو این لیست بعضیاش ویدیو هست که فقط تو نسخه پولیه. بعضیاش مقاله هست که رایگانه.
پی نوشت: این لیست فقط نقطه ضعفای منه. رودمپ یا چیز خاصی نیست.
@ManiFoldsPython
یک ماه پیش میگفتم نمیارزه ولی با این روش جدید میگم قطعا میارزه. حتی شده یکی دو ماه اشتراکشو بگیرین که وقتتون خالی تره و سعی کنید کل ویدیوهایی که تو مباحثی که ضعف دارین و مهمه رو ببینید.
مثلا چیزایی که من از دیروز شروع کردم به دیدن و تموم کردم :
0. چطور تو مصاحبه لایو کدینگ شبیه پایتون اکسپرت بنظر بیایم
1. دیباگینگ با pdb
2. کار با vscode و شخصی سازیش با پایتون
چیزایی که خواهم دید:
3. Python Concurrency & Parallel Programming roadmap
4. Python's assert: Debug and Test Your Code Like a Pro
5. Advanced Visual Studio Code for Python Developers
6. Decorator quiz
7. Build Robust Continuous Integration With Docker and Friends
8. Python 3.12 Preview: Support For the Linux perf Profiler
9. Automating Django Deployments with Fabric and Ansible
10. Start Managing Multiple Python Versions With pyenv (Overview)
تو این لیست بعضیاش ویدیو هست که فقط تو نسخه پولیه. بعضیاش مقاله هست که رایگانه.
پی نوشت: این لیست فقط نقطه ضعفای منه. رودمپ یا چیز خاصی نیست.
@ManiFoldsPython
Realpython
How to Stand Out in a Python Coding Interview (Overview) – Real Python
Hi, my name is James. In this course, you’ll learn how to stand out in a Python coding interview. This applies to coding challenges, technical phone screens, and onsite interviews. You’ll learn a bunch of different data structures, built-in…
👍14
بنیامین عزیز هم لینک زیرو به اشتراک گذاشته
که ویدیو های realpython رو رایگان گذاشته و میتونید دانلود کنید
لینک
خیلی از ویدیو هارو نداره ولی باز نسبتا بهتره هیچیه.
@ManiFoldsPython
که ویدیو های realpython رو رایگان گذاشته و میتونید دانلود کنید
لینک
خیلی از ویدیو هارو نداره ولی باز نسبتا بهتره هیچیه.
@ManiFoldsPython
پی سی دانلود
دانلود Real Python: Python Tutorials - مجموعه آموزش های پایتون سایت ریل پایتون
مجموعه کامل آموزش های پایتون سایت RealPython.com / Python tutorials for developers of all skill levels
❤14👍1
Python BackendHub
دیباگ با Pdb حتما بخونید https://realpython.com/python-debugging-pdb/#using-breakpoints چیت شیت آخرش خیلی به درد بخوره. 👍 @ManiFoldsPython
بعد خوندن و تمرین با pdb خیلی باهاش حال کردم
انگار اون محدودیت هایی که دیباگر پایتون داره رو نداره
ولی سوالم اینجاست که چطور میشه دیباگر پایتون رو به pdb لینک کرد؟ یعنی مثلا یک breakpoint میزنیم بعد تو دیباگر پایتون رانش میکنیم دستورات pdb هم بتونیم ران کنیم.
آیا همچین چیزی وجود داره به صورت اکستنشن تو vscode؟ سرچ کردم ولی به جوابی نرسیدم.
@ManiFoldsPython
انگار اون محدودیت هایی که دیباگر پایتون داره رو نداره
ولی سوالم اینجاست که چطور میشه دیباگر پایتون رو به pdb لینک کرد؟ یعنی مثلا یک breakpoint میزنیم بعد تو دیباگر پایتون رانش میکنیم دستورات pdb هم بتونیم ران کنیم.
آیا همچین چیزی وجود داره به صورت اکستنشن تو vscode؟ سرچ کردم ولی به جوابی نرسیدم.
@ManiFoldsPython
👍2
تو نسخه 0.93 فست یک چیزی اضافه شده که خیلی قشنگه بهش میگن lifespan
ایدش از این ایشو اومده:
https://github.com/tiangolo/fastapi/issues/617
به قشنگی ایده ای که داده شده پیاده سازی نشده
ولی خیلی وقتا ایده ها خیلی قشنگن اما تو حقیقت پیاده سازیشون دشوار یا غیرممکنه.
اما فست به این شکل پیاده سازی کرده:
https://fastapi.tiangolo.com/advanced/events/
البته سباستین قول داده این lifespan رو در آینده خیلی بهتر میکنه و فعلا این نسخه رو اینطوری داده تا به نحوی backward compability رو تو ساده ترین حالت ممکن داشته باشه که یوزر ها مجبور نشن خیلی تغییر بدن کدشون رو.
@ManifoldsPython
ایدش از این ایشو اومده:
https://github.com/tiangolo/fastapi/issues/617
به قشنگی ایده ای که داده شده پیاده سازی نشده
ولی خیلی وقتا ایده ها خیلی قشنگن اما تو حقیقت پیاده سازیشون دشوار یا غیرممکنه.
اما فست به این شکل پیاده سازی کرده:
https://fastapi.tiangolo.com/advanced/events/
البته سباستین قول داده این lifespan رو در آینده خیلی بهتر میکنه و فعلا این نسخه رو اینطوری داده تا به نحوی backward compability رو تو ساده ترین حالت ممکن داشته باشه که یوزر ها مجبور نشن خیلی تغییر بدن کدشون رو.
@ManifoldsPython
GitHub
Further develop startup and shutdown events · Issue #617 · fastapi/fastapi
While the documentationn for FastAPI is in general extremely solid, there's a weakpoint that I feel hints at some underdevelopped feature within the framework, and that's startup and shutdo...
👍6
Python BackendHub
تو نسخه 0.93 فست یک چیزی اضافه شده که خیلی قشنگه بهش میگن lifespan ایدش از این ایشو اومده: https://github.com/tiangolo/fastapi/issues/617 به قشنگی ایده ای که داده شده پیاده سازی نشده ولی خیلی وقتا ایده ها خیلی قشنگن اما تو حقیقت پیاده سازیشون دشوار یا غیرممکنه.…
من یک سوالی تو behavioural interview شده بودا ازم جالب بود گفتم به اشتراک بگذارم.
چه اشتباهی اکثر سافتور انجینر ها انجام میدن که بنظرتون نباید بکنند؟
جواب خودم فکر کردن به backward compatibility تو نسخه های breaking version بود.
نظره شما چیه؟ کامنت کنید 😅
@ManifoldsPython
چه اشتباهی اکثر سافتور انجینر ها انجام میدن که بنظرتون نباید بکنند؟
جواب خودم فکر کردن به backward compatibility تو نسخه های breaking version بود.
نظره شما چیه؟ کامنت کنید 😅
@ManifoldsPython
👍7
Python BackendHub
من یک سوالی تو behavioural interview شده بودا ازم جالب بود گفتم به اشتراک بگذارم. چه اشتباهی اکثر سافتور انجینر ها انجام میدن که بنظرتون نباید بکنند؟ جواب خودم فکر کردن به backward compatibility تو نسخه های breaking version بود. نظره شما چیه؟ کامنت کنید…
بنظره خودم جلوی اشتباهو هروقت بگیری منفعته.
خیلی وقتا خیلی لایبریا مجبور شدن بخاطر backward compatibility یک مسیر اشتباهیو ادامه بدن چون همه داشتن همون اشتباهو تکرار میکردن.
حقیقتا خیلی خوشم اومد وقتی pydantic v2 رو دیدم و حجم تغییراتی که داشت. خیلی جاها شاید خیلی راحت میتونست backward compability به نسخه قبلی رو بده ولی اینکارو نکرد چون نخواست اشتباهاتی که تو نسخه یک داشته رو بیاره نسخه دو.
@ManifoldsPython
خیلی وقتا خیلی لایبریا مجبور شدن بخاطر backward compatibility یک مسیر اشتباهیو ادامه بدن چون همه داشتن همون اشتباهو تکرار میکردن.
حقیقتا خیلی خوشم اومد وقتی pydantic v2 رو دیدم و حجم تغییراتی که داشت. خیلی جاها شاید خیلی راحت میتونست backward compability به نسخه قبلی رو بده ولی اینکارو نکرد چون نخواست اشتباهاتی که تو نسخه یک داشته رو بیاره نسخه دو.
@ManifoldsPython
👍9🤮1