“… 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 تر میکنه. حالا میتونه اون فانکشن رو صدا بزنی بدون اینکه اطلاعات دیگه ای از یوزر داشته باشی یا بدون اینکه هیت بزنی به دیتابیس پس حتی میشه گفت پرفومنس رو بهتر هم میکنه.
به این قانون law of demeter هم میگن. هدفشم چیزی جز بهتر شدن reusability کدتون و راحت تر تست نوشتن نیست.
@Raspberry_Python
وقتی به یک موز نیاز دارین تو یک تابعی , یک گوریلا با موز ندین به اون تابع! 😁 مقاله مدیوم:
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
Medium
Banana Gorilla Jungle — OOP
From the famous quote,
👍9
✔️ الگوریتم Timsort
بیاید تا یکی از سریعترین الگوریتمهای مرتبسازی که حدود ۲۲ ساله زندهست و از پایتون 2.3 الگوریتم مرتب سازی استاندارد پایتونه و همچنین توی جاوا و Rust و Android و GNU Octave و انجین V8 هم حضور داره رو کاملا مفصل بررسیش کنیم 😁
🔗 https://virgool.io/@liewpl/timsort-algorithm-u41h0wv0jnax
〰〰〰〰〰〰〰
✒️@pyeafp
©@raspberry_python
بیاید تا یکی از سریعترین الگوریتمهای مرتبسازی که حدود ۲۲ ساله زندهست و از پایتون 2.3 الگوریتم مرتب سازی استاندارد پایتونه و همچنین توی جاوا و Rust و Android و GNU Octave و انجین V8 هم حضور داره رو کاملا مفصل بررسیش کنیم 😁
🔗 https://virgool.io/@liewpl/timsort-algorithm-u41h0wv0jnax
〰〰〰〰〰〰〰
✒️@pyeafp
©@raspberry_python
👍6👏1
Forwarded from 🐍 Python & Raspberry 🐍 (DailyProjects)
👍3
Forwarded from 🐍 Python & Raspberry 🐍 (DailyProjects)
👍3
Forwarded from 🐍 Python & Raspberry 🐍 (DailyProjects)
👍3
Forwarded from 🐍 Python & Raspberry 🐍
امام علی علیه السلام:
روزه قلب بهتر از روزه زبان است و روزه زبان بهتر از روزه شکم است.
حلول ماه رمضان مبارک باد. 🌹
@raspberry_python
روزه قلب بهتر از روزه زبان است و روزه زبان بهتر از روزه شکم است.
حلول ماه رمضان مبارک باد. 🌹
@raspberry_python
👍67👎21🔥3🤔1
سال نو شما همراهان عزیز مبارک. سالی باشه همراه با سلامتی ،موفقیت،شادی و جعل امضا😉
🌺🌺🌺🌺🌱🌱
@raspberry_python
🌺🌺🌺🌺🌱🌱
@raspberry_python
👍16🍾4👎2
Forwarded from find v2ray
تمامی پروکسی های V2ray از کانال های تلگرام به صورت آنی گرفته میشه. تست میشه و داخل کانال به صورت رایگان گذاشته میشه.
https://t.me/+UjUqHeG_lfcwYzQ0
https://t.me/+UjUqHeG_lfcwYzQ0
https://t.me/+UjUqHeG_lfcwYzQ0
Please open Telegram to view this post
VIEW IN TELEGRAM
آموزش پایتون دانشگاه هاروارد
Link below.
https://youtube.com/playlist?list=PLhQjrBD2T3817j24-GogXmWqO5Q5vYy0V&feature=shared
✅ @raspberry_python
Link below.
https://youtube.com/playlist?list=PLhQjrBD2T3817j24-GogXmWqO5Q5vYy0V&feature=shared
✅ @raspberry_python
👍13❤1
یک نظرسنجی. 😉
کدومشون؟
کدومشون؟
Anonymous Poll
28%
پزشکیان
5%
قالیباف
16%
جلیلی
2%
پورمحمدی
0%
قاضی زاده
1%
زاکانی
48%
عدم رای
🤡32👎7👏3👍2😱1
Forwarded from تصاویر لاکچری
نوشته پشت پیراهن یک کودک در مراسم عزاداری محرم در شهر آوکلند نیوزلند:
KEEP CALM and say Labbaik ya Hussain
« آسوده باش و بگو لبیک یا حسین»
KEEP CALM and say Labbaik ya Hussain
« آسوده باش و بگو لبیک یا حسین»
😢50👎32🤡20👏12👍3🔥3
اولین قسمت از پلی لیست SQLAlchemy منتشر شد!
در این قسمت، به بررسی ساختار ORM میپردازیم و مفاهیم اولیه معماری و لایههای این کتابخانه را معرفی میکنیم. همچنین، به ویژگیهای مختلف کتابخانه نگاهی میاندازیم و مزایای استفاده از آن را توضیح میدهیم. در پایان، با نوشتن چند خط کد، معماری و لایهها را بهتر درک خواهیم کرد.
لینک ویدیو:
https://youtu.be/ybkq1s-rQVY
این دوره شامل ۶ قسمت هست. این دوره ۶ قسمته شما رو برای استفاده از SQLAlchemy داخل پروژه هاتون و پروداکشن آماده میکنه و به شما درک بنیادی و کافی از SQLAlchemy میده که دیگه درک این ORM براتون خیلی سخت نباشه.
@raspberry_python
در این قسمت، به بررسی ساختار ORM میپردازیم و مفاهیم اولیه معماری و لایههای این کتابخانه را معرفی میکنیم. همچنین، به ویژگیهای مختلف کتابخانه نگاهی میاندازیم و مزایای استفاده از آن را توضیح میدهیم. در پایان، با نوشتن چند خط کد، معماری و لایهها را بهتر درک خواهیم کرد.
لینک ویدیو:
https://youtu.be/ybkq1s-rQVY
این دوره شامل ۶ قسمت هست. این دوره ۶ قسمته شما رو برای استفاده از SQLAlchemy داخل پروژه هاتون و پروداکشن آماده میکنه و به شما درک بنیادی و کافی از SQLAlchemy میده که دیگه درک این ORM براتون خیلی سخت نباشه.
@raspberry_python
YouTube
قسمت اول دوره SQLAlchemy | مقدمه, مزایا و معماری SQLAlchemy
در این قسمت، به بررسی ساختار ORM میپردازیم و مفاهیم اولیه معماری و لایههای این کتابخانه را معرفی میکنیم. همچنین، به ویژگیهای مختلف کتابخانه نگاهی میاندازیم و مزایای استفاده از آن را توضیح میدهیم. در پایان، با نوشتن چند خط کد، معماری و لایهها را بهتر…
👍4
دومین قسمت از پلی لیست SQLAlchemy منتشر شد!
در این قسمت، به Engine در SQLAlchemy میپردازیم, نحوه وصل شدن به دیتابیس رو میبینیم. مفهوم Dialect رو بهتر و عمیقتر بررسی میکنیم, و کانکشن پولینگ و نحوه پیاده سازیش و کنترلش داخل SQLAlchemy رو آزمایش میکنیم.
لینک ویدیو:
https://youtu.be/84oa66tzVGE
این دوره شامل ۶ قسمت هست. این دوره ۶ قسمته شما رو برای استفاده از SQLAlchemy داخل پروژه هاتون و پروداکشن آماده میکنه و به شما درک بنیادی و کافی از SQLAlchemy میده که دیگه درک این ORM براتون خیلی سخت نباشه.
@raspberry_python
در این قسمت، به Engine در SQLAlchemy میپردازیم, نحوه وصل شدن به دیتابیس رو میبینیم. مفهوم Dialect رو بهتر و عمیقتر بررسی میکنیم, و کانکشن پولینگ و نحوه پیاده سازیش و کنترلش داخل SQLAlchemy رو آزمایش میکنیم.
لینک ویدیو:
https://youtu.be/84oa66tzVGE
این دوره شامل ۶ قسمت هست. این دوره ۶ قسمته شما رو برای استفاده از SQLAlchemy داخل پروژه هاتون و پروداکشن آماده میکنه و به شما درک بنیادی و کافی از SQLAlchemy میده که دیگه درک این ORM براتون خیلی سخت نباشه.
@raspberry_python
YouTube
قسمت دوم دوره SQLAlchemy | توضیح Engine, کانکشن پولینگ و Dialect
در این قسمت، به Engine در SQLAlchemy میپردازیم, نحوه وصل شدن به دیتابیس رو میبینیم. مفهوم Dialect رو بهتر و عمیقتر بررسی میکنیم, و کانکشن پولینگ و نحوه پیاده سازیش و کنترلش داخل SQLAlchemy رو آزمایش میکنیم.
Linkedin 🌍: https://www.linkedin.com/in/manimozaffar…
Linkedin 🌍: https://www.linkedin.com/in/manimozaffar…
👍2