Python Hints
Python tips and tricks The Good, Bad and the Ugly توی این کانال فقط قرار هست در مورد core python صحبت کنیم. این کانال یک بلاگ شخصی هست و پیرامون نظرات و چیزهایی که توی بیش از ۱۰ سال کد زدن یاد گرفتم (فقط برای کمک به دوستان تازهکار) Admin: @Abbasi_ai
Показати більше📈 Аналітичний огляд Telegram-каналу Python Hints
Канал Python Hints (@pyhints) у мовному сегменті Фарсі є активним учасником. На даний момент спільнота об'єднує 10 192 підписників, посідаючи 11 899 місце в категорії Технології та додатки та 31 825 місце у регіоні Іран.
📊 Показники аудиторії та динаміка
З моменту свого створення невідомо, проект продемонстрував стрімке зростання, зібравши аудиторію у 10 192 підписників.
За останніми даними від 17 жовтня, 2026, канал демонструє стабільну активність. Хоча за останні 30 днів спостерігається зміна кількості учасників на 107, а за останні 24 години на 2, загальне охоплення залишається високим.
- Статус верифікації: Не верифікований
- Рівень залученості (ER): Середній показник залученості аудиторії становить 24.43%. Протягом перших 24 годин після публікації контент зазвичай збирає 12.77% реакцій від загальної кількості підписників.
- Охоплення публікацій: В середньому кожен допис отримує 2 489 переглядів. Протягом першої доби публікація в середньому набирає 1 301 переглядів.
- Реакції та взаємодія: Аудиторія активно підтримує контент: середня кількість реакцій на один пост – 32.
- Тематичні інтереси: Контент зосереджений навколо ключових тем, таких як ᴘʀᴏxʏ, کانفیگ, مورد, shift, ابزار.
📝 Опис та контентна політика
Автор описує ресурс як майданчик для висловлення суб'єктивної думки:
“Python tips and tricks
The Good, Bad and the Ugly
توی این کانال فقط قرار هست در مورد core python صحبت کنیم.
این کانال یک بلاگ شخصی هست و پیرامون نظرات و چیزهایی که توی بیش از ۱۰ سال کد زدن یاد گرفتم (فقط برای کمک به دوستان تازهکار)
Admin: @Abbasi...”
Завдяки високій частоті оновлень (останні дані отримано 18 жовтня, 2026), канал підтримує актуальність та високий рівень охоплення публікацій. Аналітика показує, що аудиторія активно взаємодіє з контентом, що робить його важливою точкою впливу в категорії Технології та додатки.
from pydantic import SecretStr
لطفا ازین مورد استفاده کنید؛ نشستم لاگ سرور یک پروژه رو میخونم تمام اطلاعات سرور و اطلاعات کاربراش خیلی زیبا و خوانا توی لاگ هست.
قبلا هم یک موردی رو توی
@pyhints
یاد دادم برای لاگ نویسی موارد مهم.
لطفا از هر دو استفاده کنید؛ هیچ چیز مهمی نباید توی لاگ نوشته بشه.
بخصوص ایمیل و شمارهتماس کاربر.LLM
قراره جای برنامه نویسهارو بگیره ؟
من که کدم رو + دستورالعمل ریفکتور دادم تا برام تمیز کنه و خروجی که توی تصویر هست
نصف باگهای مدلهای LLM رو من درآوردم باید بهم هزینه پرداخت کنند واقعا
پینوشت:
تازه ۳۵ دقیقه هم طول کشید. خودم میزدم ۲۰ دقیقهای تموم میشد.Stackoverflow هم مورد به اندازه ملموسی هست برای درک این موضوع.
خلاصه مشکل سواد و معماری هست؛ نه فریمورک و زبان برنامهنویسیStackoverflow هستم (بر اساس مصاحبه Roberta Arcoverde میگم)
برای تعجب بیشتر شما؛ توی مصاحبه به monolithic بودن معماری سیستم اشاره میشه و البته به اینکه on-permise هم هست.
اگر کار نیاز به صفحه ادمین و استانداردهای خارج از مایکروسرویس داشته باشه و تیم کوچیک باشه ۱۰۰٪ میرم سراغ جنگو.
عکس دوم هم از اینجا اومده و برای websocket هست
۱۰ هزار کانکشن با حجم دیتای ۱ کیلوبایت تعداد درخواست حداقل ۲۰ هزارتا (تازه روی fastapi که میگن برای وبساکت با حجم بایت بالا خوب نیست)
چیزایی که زیاد میبینم :
آدما هیچ درکی از معماری مونولوتیک و میکروسرویس ندارند و یکی رو میزنند؛ اینم بگم رندر صفحات استک اورفلو توی ۱۲ میلی ثانیه هست.
برید مصاحبه رو ببینید واقعا
آدما هیچ درکی از تعداد درخواست در ثانیه ندارند و زرتی عدد ۱ میلیون درخواست در ثانیه رو تو مصاحبه و ... اینور و اونور پرت میکنند
آدما هیچ درکی از هیچکدوم ندارند و حتی توانایی فهمیدن کد رو هم ندارند و فقط فریمورک پروژه رو میخوان عوض کنند 🤬🤬chatgpt جدول شده
برای هر کدوم تعداد درخواست بر ثانیه رو مینویسم:
1) Django + Postgresql: 31,000 - 33,000
2) Fastapi: 11,000 - 109,000
مثلا توی همون بنچمارک کانفیگهای مختلف Fastapi رو ببینید چقدر تفاوت داره از ۱۱ هزار درخواست برای یک مورد تا ۱۰۹۰۰۰ درخواست.
بدون تغییر فریمورک اصلی و کد
3) Gin: 110,000
و در نهایت فریمورک مورد علاقه خودم :
4) Axum + Postgres: 1,115,000
بله میلیون
با اینکه من خیلی به Axum علاقه دارم و بسیار هم توی کد زدن روش راحت هستم ولی تا الان نشده مشاور یا مدیر فنی تیمی باشم و Axum رو پیشنهاد بدم حتی روی بکندهای با تعداد درخواست بسیار بالا گزینه اول همیشه FastAPI هست.class Engine():
_instance = None
_lock = threading.Lock()
def __new__(cls):
if cls._instance is None:
with cls._lock:
if cls._instance is None:
....
توی کد بالا بنظر شما چرا
if cls._instance
دوبار استفاده شده ؟
اگر بلد نیستید اشکالی نداره (قراره یاد بگیرید)
قبل از دیدن راهنماییها با دقت بهش فکر کنید ببینید متوجه دلیلش میشید ؟
راهنمایی:
به حالت async اجرای این Singleton فکر کنید
اسم این پترن : double check locking هست
یک سری موارد رو چندوقت پیش توی مصاحبههام با شرکتهای بزرگ دیدم؛ الان دارم روی یک پروژه کار میکنم این مورد رو نیاز داشتم پیادهسازی کنم گفتم همینارو سوال جواب کنم برای یادگیری دوستان.95% of enterprise AI deployments fail to deliver valueدر یک حرکتی چندتا از این شرکتهای
AI فروش داخلی (کاسبان تحریم) روی موجهای اخیر درحال تلاش برای خوروندن LLM به شرکتهای دیگر هستند. شرکتهایی که همینطوری بخاطر تحریم؛ جنگ؛ قطعی اینترنت و تعطیلی به زور سرپا موندند.
برای همین خواستم دوتا مورد رو یادآوری کنم:
اولین مورد گزارش MIT روی میزان سودآوری AI (که ۹۵٪ میزان بازگشت 0 داشتند)
legal.io
مورد دوم؛
تجربه شخصی بنده توی کار با تیمی از مهندسها که مدتی قبل منتور اونها بودم.
( استفاده درست از LLM ها برای مهندسی کامپیوتر )
با نهایت احترام به شرکتهای AI داخلی که واقعا innovation دارند و در تلاش برای پیشرفت جامعهی ایرانی هم هستند.95% of enterprise AI deployments fail to deliver valueدر یک حرکتی چندتا از این شرکتهای
AI فروش داخلی (کاسبان تحریم) روی موجهای اخیر درحال تلاش برای خوردوندن LLM به شرکتهای دیگر هستند. شرکتهایی که همینطوری بخاطر تحریم؛ جنگ؛ قطعی اینترنت و تعطیلی به زور سرپا موندند.
برای همین خواستم دوتا مورد رو یادآوری کنم:
اولین مورد گزارش MIT روی میزان سودآوری AI (که ۹۵٪ میزان بازگشت 0 داشتند)
legal.io
مورد دوم؛
تجربه شخصی بنده توی کار با تیمی از مهندسها که مدتی قبل منتور اونها بودم.
( استفاده درست از LLM ها برای مهندسی کامپیوتر )
با نهایت احترام به شرکتهای AI داخلی که واقعا innovation دارند و در تلاش برای پیشرفت جامعهی ایرانی هم هستند.neovim خودم بدم.
دوستان فلسفه کانفیگهای neovim این نیست که دانلود کنید و تمام اونوقت همه چیز روی سیستم شما هم عالی کار کنه و همه چیزش رو شما هم دوست داشته باشید.
من به درخواست یکسری دوستان مجددا پروژه رو برای آخرین نسخه neovim و کانفیگها آپدیت کردم البته الان.
پس چرا به اشتراک میذاریم ؟
معرفی و یک چیزی برای شروع؛ اگر تلاش کرده باشید یک مورد رو از اول برای خودتون کانفیگ کنید (بخصوص دفعات اول) خوندن و کانفیگ درست انجام دادن میتونه از ۱-۲ روز تا ۱-۲ هفته زمان ببره ولی اگر یکی قبلا یک بیس براتون توسعه داده باشه این زمان بخصوص با وجود LLM ها میتونه به ۱-۲ ساعت برسه.
هیچکس هم علاقه نداره Lua یادبگیره که فقط Neovim کانفیگ کنه.
اما چندتا نکته :
۱- اگر یک چیزی میخواید که دانلود کنید و کار کنه؛ بهترین گزینه برای شما vscode هست
۲- اگر سنگینی vscode اذیتتون میکنه چون روی چند زبان کار میکنید یا پروژه شما خیلی بزرگ هست گزینه بهتر Zed هست.
۳- اگر تایپ ۱۰ انگشتی بلد نیسیتید؛ vim, neovim برای شما مناسب نیست
۴- اگر فقط روی یک زبان برنامهنویسی کار میکنید و vscode, zed کند نمیشه براتون یا اگر علاقهای به کانفیگ کردن جزئیات ندارید بازم neovim بدرد شما نمیخوره
۵- اگر فکر میکنید neovim کمک میکنه تندتر کد بزنید چون شرتکاتهای خوبی داره؛ بهتره برای ادیتوری که روش هستید وقت بذارید و شرتکاتهای همون رو یاد بگیرید.
قبل از توضیح بیشتر :
یادتون باشه neovim دائما درحال آپدیت شدن هست؛ کانفیگها هم همینطور و بسیاری از اونها بین ورژن و گیتکامیت تغییرات breaking هم داره شخصا ۶ ماه یا ۱ سال یکبار آپدیتش میکنم یا وقتی یک سیستم جدید رو کانفیگ میکنم و میبینم دیگه ورژنها نمیخونه.
۶- قبل از اینکه با کانفیگ neovim دیگران کار کنید سعی کنید کلیدهای اصلی vim یا neovim رو یاد بگیرید.
۷- فلسفه کلیدها این هست که همه چیز روی home row باشه با استفاده زیاد از Ctrl, Alt فقط مزایای شرتکاتها رو از دست میدید و نشون میده این ادیتور برای شما نیست.
۸- هیچ چیز خفنی هم روی استفاده از neovim, vim نیست آدما شمارو با کدی که زدید قضاوت میکنند نه با ادیتوری که استفاده کردید.
۹- در نهایت از کاستومایز کردن لذت ببرید؛ این ادیتور مال شماست.neovim من روی گیتهاب سر زده باشید و کمی هم بهش نگاه کرده باشید میدونید که تنظیمات مربوط به typecheck من یک مقدار هکی هست؛ ترکیبی از ruff, pyright, mypy و یک سری توابع کاستوم برای پیدا کردن .venv داخل پروژه و ...
کار میکرد ؟
بله
خیلی از دوستان حتی از عملکردش رضایت هم داشتند ولی روی پروژههای بزرگ بعضی وقتا واقعا اذیتم میکردم بخصوص اینکه شدیدا کند بود.
یک پیام توی گروهی دیدم (خیلی قدیمی بود و گروه رو من خیلی وقت بود باز نکرده بودم) درمورد بازنویسی pyrefly با Rust و بحثهای پیرامون اون یک سری به سایتش زدم و دیدم چقدر عالی حالا دیگه extension هارو هم داره و با Mason هم کار میکنه.
اگر خواستید بدونید تفاوت سرعتش نسبت به جایگزینها چقدر هست؛ صفحهی اصلی رو میتونید چک کنید:
مثلا برای پروژه instagram (بله این پروژه روی پایتون هست)
Pyrefly: 13.4s Pyre: more than 300sمن حوصلم نشد تا آخر Pyre صبر کنم ولی از چیزی که نوشتم هم گذشت یا برای پروژه
pytorch :
Pyrefly: 2.4s Pyright: 35.2s MyPy: 48.1sدوستانی که روی پروژه بزرگ کار کردند یا
CI/CD نوشتند برای پروژه یا حتی pre-commit رو فعال کردند کاملا میدونند من چی میگم.
پیشنهاد میکنم حتما تستش کنید؛ برای من بسیار بسیار مفید بود واقعا
اگر هم خواستید میتونید از کانفیگ neovim بنده استفاده کنید
My Neovim Config
البته فعلا روی برنچ feat/pyrefly هست تا چندروز بیشتر و روی پروژههای دیگر هم تستش کنم و مطمئن بشم همه چیز درست کانفیگ شده.همه چیز رو سخت میکنی الکی، من ۶ ماهه بعنوان برنامهنویس شروع به کار کردم نه این کتابارو خوندم، نه چیزایی که تو کانال pyhints گفتی رو بلدم. ولی همهی کارامم دارم انجام میدم با دوره فلانی هم همرو یاد گرفتم، برو ازون یادبگیر همه چیز رو ساده میگیرهمکالمه من :
+ شرکت و پروژه شما چندتا برنامهنویس و چقدر کاربر داره ؟ - ۱۱ نفریم، ۲۰۰۰ تا هم کاربر داریم. + حقوق شما چقدر هست ؟ - حدوداً ۲۳م + هروقت شرکتی ایرانی با تورم امروز قبول کرد بابت کاری که میکنی بهت حداقل ۶ برابر یا بیشتر حقوق بده، اون موقع متوجه شدی که چرا کتاب خوندی و مفاهیم رو فهمیدی.اما اگر بخوام برای همه توسعه دهندههای دیگر توضیح بدم؛ باید با این جمله که همیشه به بچههای توی تیمم میگم شروع کنم :
تا وقتی مشکلی رو نبینی، نمیتونی به راهحل فکر کنی و خیلی وقتا زمانی متوجه وجود مشکل میشی که فرصتی برای راهحل پیدا کردن نیست.به خیلی از تکنولوژیهای امروز فکر کنید؛ اگر نخوندید برید ببینید همشون از دل مشکلات در اومدند
Hadoop, Kafka, Spark, Docker, K8s, ...
قرار نیست همه چیز رو یاد بگیرید؛ تک تک تکنولوژیها و نحوه کانفیگ اونها و ... اما قرار هست آماده باشید که قبل از بروز مشکل بتونید اون رو پیدا کنید و سیستم رو ارتقا بدبد براش.
مثال بزنم :
چند مدت پیش یک توسعه دهنده بر اساس یکی از انیمیشنها یک سایت خیلی ساده نوشته که یک مارمولک وسط صفحه هست و وقتی روی اون کلیک میکنی میگه Lizard
بعد خیلی معروف شد و ملت درخواست دادند counter جهانی براش بسازه
ببین دیگه ازین اپلیکیشن سادهتر و بیخطر تر وجود نداره؛ نه تراکنش مالی داره و نه یوزر پولی داده و نه هیچی ...
طرف اول همه درخواستها رو توی فایل میریخته؛ سایت دان میشه
همرو میریزه توی دیتابیس؛ سایت کند میشه (تعداد req/sec بیش از حد بالا بوده)
شروع میکنه سرورهای بزرگتری رو خریدن؛ از ۴ دلار به ۶۰ دلار میرسه هزینه ماهانه سرور ولی مشکل همچنان پا برجاس و مسئله این بوده که با این مفهوم که write های کوچیک و زیاد روی دیتابیس داره بهش آسیب میزنه آشنا نبوده.
چون مشکل رو نمیشناخته؛ سراغ راه حل اشتباه رفته.
درنهایت بر میگرده و شروع به optimize کردن کد میکنه؛ الان سایت روی همون هاست ۴ دلاری بالاس و تا این لحظه
2,146,829,700کلیک رو ثبت کرده (البته خیلی از کلیکها رو از دست داده) ایشون وقتی تونست راهحل رو پیدا کنه که دیگران مشکلاتش رو بهش گفتند؛ اگر این یک بیزینس خصوصی با کاربرای واقعی بود سرور 5,000 دلاری هم نجاتش نمیداد (چون راه اشتباه بود) و امکان داشت با وجود هزینه بسیار بالا بهترین مشتریهاش رو هم از دست بده. شرکتهایی با محصولات خوب اینطوری از دور خارج میشوند؛ من شاهد این موضوع بودم (حداقل ۱۰ نفر شما برای سورس کد پروژههای شرکتهاتون من رو دعوت به همکاری دادید تا مشکل حل کنم و خب به هر دلیلی با مدیرعامل به توافق نرسیدیم) توی تمام کانالها من هدفم آموزش مقدمات نیست (البته غیر از
Rust که خودم داشتم Syntax یاد میگرفتم) بلکه هدفم این بوده که شما حداقل یک بار هر مشکلی رو ببینید و اگر اون الگو رو توی کار واقعی دیدید بتونید قبل از down شدن سرویسها شناساییش کنید.
وگرنه برای یادگرفتن یک framework فقط ۲-۳ ساعت آموزش کافی هست.
راستی اون سایت هم :
https://lizard.click/reaction بزنید روی پست متوجه میشم ادامه بدیم یا نه؛ البته شخصا اینکار رو ادامه خواهم داد. چون وسط هرکاری میتونم این پادکست رو گوش بدم.Designing Data-Intensive Applications
یکی از کتابهای مورد علاقه من هست؛ وقتی نسخه اول این کتاب منتشر شد من هم بسیار درگیر سیستمهایی بودم که دیتای زیادی داشتند و BigData بخشی از کارم بود.
خوندن این کتاب دریچه جدیدی رو برام باز کرد و الان که فکر میکنم کتاب سنگینی بود؛ حالا چرا الان این رو میگم ؟
قبل از اتفاقات اخیر کمک یکی از دوستان قدیمی میکردم که تازه (۲ سال) هست وارد دنیای برنامهنویسی بعنوان شغل شده و چندوقتی رو درگیر یک سری مشکلات پروژهاش بوده؛ بعد از اینکه کمکش کردم مشکلش حل شد ازم پرسید این موارد رو از کجا یاد گرفتی و چطوری میتونم یاد بگیرم ؟
منم این کتاب رو بهش معرفی کردم.
امروز دوباره پیام داد (ایران نیستند) و بعد از صحبت از کتاب گفت که بسیار خوندنش سخت هست براش؛ برای خیلی از سنیورها هم درک این موضوعات سخت هست بطور کلی این کتاب کتاب آسونی نیست هرچند همه چیز ساده بیان شده.
همینطوری که داشتم فکر میکردم چطوری میشه این کتاب رو برای دیگران ساده کرد و پروسه یادگیری خودم رو مرور میکردم ( همون روش ویدئو ببین و تخمه بشکون : ویدئو اول یوتیوب pyhints )