🐍 Python & Raspberry 🐍
رفتن به کانال در Telegram
Python- Raspberry Pi-AI-IOT ادمین : فرهاد ناصری زاده @farhad_naserizadeh @farhad3412 گروه پایتون @Python_QA تبادل @mmtahmasbi کانال مرتبط @new_mathematical @micropython_iot @c_micro اینستاگرام http://Instagram.com/python_raspberry
نمایش بیشتر8 216
مشترکین
اطلاعاتی وجود ندارد24 ساعت
-177 روز
-8330 روز
آرشیو پست ها
✔️ الگوریتم Timsort
بیاید تا یکی از سریعترین الگوریتمهای مرتبسازی که حدود ۲۲ ساله زندهست و از پایتون 2.3 الگوریتم مرتب سازی استاندارد پایتونه و همچنین توی جاوا و Rust و Android و GNU Octave و انجین V8 هم حضور داره رو کاملا مفصل بررسیش کنیم 😁
🔗 https://virgool.io/@liewpl/timsort-algorithm-u41h0wv0jnax
〰〰〰〰〰〰〰
✒️@pyeafp
©@raspberry_python
✔️ الگوریتم Timsort
بیاید تا یکی از سریعترین الگوریتمهای مرتبسازی که حدود ۲۲ ساله زندهست و از پایتون 2.3 الگوریتم مرتب سازی استاندارد پایتونه و همچنین توی جاوا و Rust و Android و GNU Octave و انجین V8 هم حضور داره رو کاملا مفصل بررسیش کنیم 😁
🔗 https://virgool.io/@liewpl/timsort-algorithm-u41h0wv0jnax
〰〰〰〰〰〰〰
✒️@pyeafp
©@raspberry_python
“… Because the problem with object-oriented languages is they’ve got all this implicit environment that they carry around with them. You wanted a banana but what you got was a gorilla holding the banana and the entire jungle. “ —Joe Armstrong, creator of Erlang progamming language
وقتی به یک موز نیاز دارین تو یک تابعی , یک گوریلا با موز ندین به اون تابع! 😁 مقاله مدیوم:
https://medium.com/codemonday/banana-gorilla-jungle-oop-5052b2e4d588
یک مثال خیلی قشنگ. اشتباهی که خیلیا انجام میدن
مثلا شما به آیدی یوزر نیاز داری تو یک فانکشن. به جای اینکه یوزر رو بذاری تو signature و ایدی رو ازش بگیری سعی کن یوزر آیدی رو فقط بگیری. اینو به دلیل پرفومنس نمیگم چون تاثیری نداره ولی به این دلیل میگم که کدتون رو به شدت reusable تر میکنه. حالا میتونه اون فانکشن رو صدا بزنی بدون اینکه اطلاعات دیگه ای از یوزر داشته باشی یا بدون اینکه هیت بزنی به دیتابیس پس حتی میشه گفت پرفومنس رو بهتر هم میکنه.
# BAD
def activate_user(user: User, session) -> None
session.execute(sa.update(User).where(User.id==user.id).values(is_active=True)
# GOOD
def activate_user(user_id: UserId, session) -> None
session.execute(sa.update(User).where(User.id==user_id).values(is_active=True)
به این قانون law of demeter هم میگن. هدفشم چیزی جز بهتر شدن reusability کدتون و راحت تر تست نوشتن نیست.
@Raspberry_Python“… Because the problem with object-oriented languages is they’ve got all this implicit environment that they carry around with them. You wanted a banana but what you got was a gorilla holding the banana and the entire jungle. “ —Joe Armstrong, creator of Erlang progamming language
وقتی به یک موز نیاز دارین تو یک تابعی , یک گوریلا با موز ندین به اون تابع! 😁 مقاله مدیوم:
https://medium.com/codemonday/banana-gorilla-jungle-oop-5052b2e4d588
یک مثال خیلی قشنگ. اشتباهی که خیلیا انجام میدن
مثلا شما به آیدی یوزر نیاز داری تو یک فانکشن. به جای اینکه یوزر رو بذاری تو signature و ایدی رو ازش بگیری سعی کن یوزر آیدی رو فقط بگیری. اینو به دلیل پرفومنس نمیگم چون تاثیری نداره ولی به این دلیل میگم که کدتون رو به شدت reusable تر میکنه. حالا میتونه اون فانکشن رو صدا بزنی بدون اینکه اطلاعات دیگه ای از یوزر داشته باشی یا بدون اینکه هیت بزنی به دیتابیس پس حتی میشه گفت پرفومنس رو بهتر هم میکنه.
# BAD
def activate_user(user: User, session) -> None
session.execute(sa.update(User).where(User.id==user.id).values(is_active=True)
# GOOD
def activate_user(user_id: UserId, session) -> None
session.execute(sa.update(User).where(User.id==user_id).values(is_active=True)
به این قانون law of demeter هم میگن. هدفشم چیزی جز بهتر شدن reusability کدتون و راحت تر تست نوشتن نیست.
@Raspberry_Pythonدر قسمت دهم پلی لیست دیزاین پترن
تو این قسمتChain of Responsibility رو بررسی کردیم. یک مثال پروداکشنی با کد بویلرپلیت هم نمایش دادم که نسبتا مثال پیچیده ای بود تا واقعا یوزکیس این دیزاین پترن رو درک کنید. در نهایت به نقاط ضعف و قوت این دیزاین پترن پرداختیم. اگه سوالی داشتین حتما زیره ویدیو کامنت کنید. برای حمایت ممنون میشم سابسکرایب کنید و داخل گیتهاب استار بدین به ریپو.
لینک ویدیو:
https://youtu.be/F0YyisF7Hq4
لینک گیتهاب دوره دیزاین پترن; جزوه و مثال های دوره همه اینجا ذخیره خواهند شد:
https://github.com/ManiMozaffar/design-101
@Raspberry_Python
در قسمت دهم پلی لیست دیزاین پترن
تو این قسمتChain of Responsibility رو بررسی کردیم. یک مثال پروداکشنی با کد بویلرپلیت هم نمایش دادم که نسبتا مثال پیچیده ای بود تا واقعا یوزکیس این دیزاین پترن رو درک کنید. در نهایت به نقاط ضعف و قوت این دیزاین پترن پرداختیم. اگه سوالی داشتین حتما زیره ویدیو کامنت کنید. برای حمایت ممنون میشم سابسکرایب کنید و داخل گیتهاب استار بدین به ریپو.
لینک ویدیو:
https://youtu.be/F0YyisF7Hq4
لینک گیتهاب دوره دیزاین پترن; جزوه و مثال های دوره همه اینجا ذخیره خواهند شد:
https://github.com/ManiMozaffar/design-101
@Raspberry_Python
🔸لیستی از برترین کانالهای آموزشی در زمینه های هوشمصنوعی, پایتون و یادگیری ماشین
❯ هوش مصنوعی:
1️⃣ @Ai_Tv
2⃣ @HomeAI
3⃣ @MrArtificialintelligence
4⃣ @Ai_NewsTv
❯ علم داده :
1️⃣ @DataPlusScience
❯ یادگیری ماشین :
1️⃣@Machine_learn
❯ آموزش پایتون:
1⃣ @raspberry_python
2⃣ @Python4all_pro
❯ منابع و کتابهای پایتون ، علم داده و یادگیری ماشین :
1⃣ @programmingPDF
🔸لیستی از برترین کانالهای آموزشی در زمینه های هوشمصنوعی, پایتون و یادگیری ماشین
❯ هوش مصنوعی:
1️⃣ @Ai_Tv
2⃣ @HomeAI
3⃣ @MrArtificialintelligence
4⃣ @Ai_NewsTv
❯ علم داده :
1️⃣ @DataPlusScience
❯ یادگیری ماشین :
1️⃣@Machine_learn
❯ آموزش پایتون:
1⃣ @raspberry_python
2⃣ @Python4all_pro
❯ منابع و کتابهای پایتون ، علم داده و یادگیری ماشین :
1⃣ @programmingPDF
چرا باید دیزاین پترنها و کاربردهای آن آشنا شویم؟
یادگیری و همچنین بهکار بردن دیزاین پترنها مفید است. در ادامه، دلایلی را در این مورد بیان کردهایم.
- دیزاین پترنها، ایدههای بیشتر و بهتری را در مورد نحوه مدلسازی مسائل فنی خاص، عرضه میکنند.
- امکان استفاده مجدد و بهکارگیری ایدههای طراحی که مؤثر بودن آنها ثابت شدهاست، وجود دارد.
- میتوانیم جزئیات مناسبتری از کلاسهایمان بهدست آوریم که حوزه خاصی را مدلسازی میکنند.
یک پلی لیست در خصوص دیزاین پترن دارم که هر هفته داخلش ویدیو منتشر میشه و تا الان ۹ قسمت منتشر شده و تمام مثال ها برعکس کتاب های gang of four و دیزاین پترن های دیگه با پایتونه با مثال کاربردی 😍
https://www.youtube.com/playlist?list=PLEQ3RnweNGA5XLLANrPl5erS90EREs0F0
فقط هم دیزاین پترن gang of four نیست در واقع کلی دیزاین پترن کاربردی هم داریم که میتونید به صورت روزانه استفاده کنید.مثلا در قسمت نهم پلی لیست دیزاین پترن و مهم ترین قسمت این پلی لیست, پرداختم به دیزاین پترن Type State. پترنی که سبک کد نویسی من رو به شدت تغییر داد و هر روز ازش استفاده میکنم
مفاهیم زیر رو ابتدا توضیح دادم:
- Don't validate, parse!
- Type safe operations
و توضیح دادم چطور به صورت غریزی و ابتدایی از type state استفاده میکنیم. همینطور یوزکیس های خیلی بهتر و advance تر هم توضیح دادم و دلیل محبوبیت Pydantic هم توضیح دادم.
با Type state pattern کد هاتون به شدت باگ کمتری خواهند داشت پس اگه دوست دارین کمتر با باگ سروکله بزنید این ویدیو رو از دست ندید. حتما توصیه میشه قبل از دیدن این ویدیو, ویدیو قبلی راجب state pattern هم ببینید که ۱۰ دقیقه هست.
لینک ویدیو:
https://youtu.be/DwAQ6dm-Vn8
لینک گیتهاب دوره دیزاین پترن; جزوه و مثال های دوره همه اینجا ذخیره خواهند شد:
https://github.com/ManiMozaffar/design-101
@Raspberry_Python
چرا باید دیزاین پترنها و کاربردهای آن آشنا شویم؟
یادگیری و همچنین بهکار بردن دیزاین پترنها مفید است. در ادامه، دلایلی را در این مورد بیان کردهایم.
- دیزاین پترنها، ایدههای بیشتر و بهتری را در مورد نحوه مدلسازی مسائل فنی خاص، عرضه میکنند.
- امکان استفاده مجدد و بهکارگیری ایدههای طراحی که مؤثر بودن آنها ثابت شدهاست، وجود دارد.
- میتوانیم جزئیات مناسبتری از کلاسهایمان بهدست آوریم که حوزه خاصی را مدلسازی میکنند.
یک پلی لیست در خصوص دیزاین پترن دارم که هر هفته داخلش ویدیو منتشر میشه و تا الان ۹ قسمت منتشر شده و تمام مثال ها برعکس کتاب های gang of four و دیزاین پترن های دیگه با پایتونه با مثال کاربردی 😍
https://www.youtube.com/playlist?list=PLEQ3RnweNGA5XLLANrPl5erS90EREs0F0
فقط هم دیزاین پترن gang of four نیست در واقع کلی دیزاین پترن کاربردی هم داریم که میتونید به صورت روزانه استفاده کنید.مثلا در قسمت نهم پلی لیست دیزاین پترن و مهم ترین قسمت این پلی لیست, پرداختم به دیزاین پترن Type State. پترنی که سبک کد نویسی من رو به شدت تغییر داد و هر روز ازش استفاده میکنم
مفاهیم زیر رو ابتدا توضیح دادم:
- Don't validate, parse!
- Type safe operations
و توضیح دادم چطور به صورت غریزی و ابتدایی از type state استفاده میکنیم. همینطور یوزکیس های خیلی بهتر و advance تر هم توضیح دادم و دلیل محبوبیت Pydantic هم توضیح دادم.
با Type state pattern کد هاتون به شدت باگ کمتری خواهند داشت پس اگه دوست دارین کمتر با باگ سروکله بزنید این ویدیو رو از دست ندید. حتما توصیه میشه قبل از دیدن این ویدیو, ویدیو قبلی راجب state pattern هم ببینید که ۱۰ دقیقه هست.
لینک ویدیو:
https://youtu.be/DwAQ6dm-Vn8
لینک گیتهاب دوره دیزاین پترن; جزوه و مثال های دوره همه اینجا ذخیره خواهند شد:
https://github.com/ManiMozaffar/design-101
@Raspberry_Python
✔️ الگوریتم Timsort
در این مقاله، با دندهی سنگین و با جزئیات بالا، یکی از سریعترین الگوریتمهای مرتبسازی رو که حدودا ۲۲ سالشه و از نسخهی 2.3 توی پایتون هست و البته توی • جاوا • اندروید و • Rust هم پیادهساری شده رو بررسی میکنیم 😁
🔗 https://virgool.io/@liewpl/timsort-algorithm-explained-u41h0wv0jnax
✒️ #m4hdi
〰〰〰〰〰〰〰
© @raspberry_python
✔️ الگوریتم Timsort
در این مقاله، با دندهی سنگین و با جزئیات بالا، یکی از سریعترین الگوریتمهای مرتبسازی رو که حدودا ۲۲ سالشه و از نسخهی 2.3 توی پایتون هست و البته توی • جاوا • اندروید و • Rust هم پیادهساری شده رو بررسی میکنیم 😁
🔗 https://virgool.io/@liewpl/timsort-algorithm-explained-u41h0wv0jnax
✒️ #m4hdi
〰〰〰〰〰〰〰
© @raspberry_python
🔸لیستی از برترین کانالهای آموزشی در زمینه های هوشمصنوعی, پایتون و یادگیری ماشین
❯ هوش مصنوعی:
1️⃣ @Ai_Tv
2⃣ @HomeAI
3⃣ @ai_python
4⃣ @Ai_NewsTv
❯ علم داده :
1️⃣ @DataSciSchool
2⃣ @DataPlusScience
❯ یادگیری ماشین :
1⃣ @Machine_learn
❯ آموزش پایتون:
1⃣ @raspberry_python
2⃣ @Python4all_pro
❯ یادگیری عمیق :
1️⃣ @cvision
❯ منابع و کتابهای پایتون ، علم داده و یادگیری ماشین :
1⃣ @programmingPDF
🔸لیستی از برترین کانالهای آموزشی در زمینه های هوشمصنوعی, پایتون و یادگیری ماشین
❯ هوش مصنوعی:
1️⃣ @Ai_Tv
2⃣ @HomeAI
3⃣ @Ai_NewsTv
❯ علم داده :
1️⃣ @DataSciSchool
2⃣ @DataPlusScience
❯ یادگیری ماشین :
1⃣ @Machine_learn
❯ آموزش پایتون:
1⃣ @raspberry_python
2⃣ @Python4all_pro
❯ منابع و کتابهای پایتون ، علم داده و یادگیری ماشین :
1⃣ @programmingPDF
