Python Hints
Открыть в Telegram
Python tips and tricks The Good, Bad and the Ugly توی این کانال فقط قرار هست در مورد core python صحبت کنیم. این کانال یک بلاگ شخصی هست و پیرامون نظرات و چیزهایی که توی بیش از ۱۰ سال کد زدن یاد گرفتم (فقط برای کمک به دوستان تازهکار) Admin: @Abbasi_ai
Больше9 613
Подписчики
+924 часа
+647 дней
+22130 день
Архив постов
9 604
#موقت
@vmessorg
@NETMelliAnti
@awakadow_proxy
@configpluse
@bluefilter_org
@configshere
این لیست کانالها رو نگه دارید برای متصل موندن
اگر مورد دیگهای بود اضافه میکنم، توجه کنید خیلی از موارد هستند که ping, url test جواب نمیده چون هیچ سایتی رو باز نمیکنه
اما تلگرام رو به سرعت باز میکنه
9 604
#موقت
بنظر میاد اینترنتهای ثابت درحال اتصال هست.
اگر اختلال نباشه (دیگه اینجوری شده که اگر وصل بشیم اختلال هست)
DNS
های بینالمللی درحال resolve شدن هست
9 604
متأسفانه با خبر شدم
یکی از اعضای کانالها رو از دست دادیم 💔🖤
غم این روزها بسیار بسیار بزرگ هست
بسیار بسیار غمگین شدم از شنیدن این خبر 💔
9 604
سختترین کار دنیاس؛
پیام بدی:
سلام رفیق، امیدوارم زنده و سلامت باشی. هروقت تونستی، ی پیام بهم بدهدل شیر میخواد لامذهب 💔🖤
9 604
سختترین کار دنیاس؛
پیام بدی:
سلام رفیق، امیدوارم زنده و سلامت باشی. هروقت تونستی، ی پیام بهم بدهدل شیر میخواد لامذهب 💔🖤
9 604
تلگرام میگه کانال حذف نشده و فقط موقت از دسترس خارج شده
اما باید پروسه بررسی محتوا بگذره تا پاسخ نهایی دریافت بشه.
9 604
ممکنه این کانال @pyhints و کانال @pytens و همچنین @pyrust هم ریپورت بشه.
چون با
mass report طرف هستیم.
کانالها هم که عمومی هست و برای ریپورت کردن نیازی به عضو شدن نیست.
برنامهای برای جایگزین کردن کانالها بصورت عمومی ندارم؛ اگر فکر میکنند با ریپورت کردن کانالهای من ۴۷ سال دزدی و اختلاس و بیکفایتی و ... حل میشه
و
مشکلات از بین میره؛ حتماً اینکار رو بکنند.
شاید تلگرام باید یک راهکاری هم میذاشت که کاربرهای کانال هم بتونند نظر یا حمایت شون رو اعلام کنند، بخصوص به وقت mass report با این همه گفتم زودتر اعلام کپینوش
پینوشت:
اگر این اتفاق افتاد برای دوستان نزدیک لینک خصوصی خواهم فرستاد.
مثل روزهای اول @pytens و البته خصوصی خواهد بود.9 604
کانال randrng انقدر ریپورت شد که بسته شد 😂
چرا ؟!؟
چون بورس تهران و بانک کشاورزی شمارو به فراخوان و اعتراض دعوت کردند.
درحال پیگیری با تلگرام هستم.
پینوشت:
مشکل mass report بوده مثل اینکه.
درحال پیگیری پروسه هستم، چون هیچکدوم از قوانین تلگرام رو نقض نکردم!
اگر برگشت؛ درجریان خواهید بود.
آقا به من چه که اکانتهای
بانک کشاورزی معاملات بورس تهرانروی لینکدین فراخوان تجمع میدند ؟ من فقط دیدم اکانت رسمی هست گذاشتم، ببینم شما هم دیدید ؟
9 604
چون پرسیدید با
autocommit
چیکار کنیم؛ تا جایی که یادم هست کلا
autocommit=True
از sqlalchemy 2.x حذف شده یا باید
with session.begin():
pass
استفاده بشه یا
session.commit()
اگر روی نسخه قدیمیتر هستید این روFalse نگهدارید:
autocommit=False
ولی باید بخونید؛ ببینید چرا این تنظیمات رو لازم دارید.9 604
#Quick
لطفاً
autoflush=False رو از داخل کدهای sqlalchemy بردارید.
مشکل ویدئوهای آموزش اینهها؛ طرف نمیدونه برای چی هست چون زیاد دیده میذاره بدون توضیح.
شماهم بدون پرسیدن استفاده میکنید
بعد میریم توی پروداکشن باگ میخوریم
چون کلی اطلاعات درمورد flush رو ندارید.
autoflush=True
اگر مشکل پرفورمنس خوردید که ۹۹.۹۹۹٪ شما و پروژههاتون نخواهد خورد.
اونوقت سرچ که بکنید با دلیل میدونید تحت چه شرایطی باید autoflush=False باشه.9 604
Repost from RandRng
توی پست مربوط به رودمپ بکند :
Backend Roadmap
برای آخرین مورد گفتم که حتما همهی بچهها باید از روز اول
ADR بنویسند؛ سر این موضوع با هیچ کدوم از بچهها شوخی ندارم.
اما خیلیها (مثل بچههایی که باهاشون کار میکنم) پرسیدید چرا باید ADR بنویسیم بهتر نیست وقتمون رو روی کد زدن و تمرین و یادگیری بذاریم.
جواب کوتاه:
هیچ ابزار - هیچ کتاب و ... دیگری به اندازه نوشتن ADR شمارو تست نمیکنه و به شما یاد نمیده حتی.
اما اگر توضیحات برای قانع شدن میخواید ادامه مطلب رو بخونید:
بخش بزرگی از کار یک مهندس نرمافزار (بخصوص توی سطوح بالاتر) یادگیری بحث و مناظره کردن هست؛ چیزی که توی سالهای اخیر همکاریم با بچهها توی ایران خیلی خیلی کم دیدم. این بحثها اکثرا سر چه چیزهایی هست ؟
۱- از کدوم فریمورک استفاده کنیم
۲- با کدوم استاندارد پیش بریم
۳- دیتابیس چی بذاریم
۴- تست نویسی چطوری باشه
۵- چرا از این ابزار استفاده کنیم یا نکنیم
و ...
شما هرروز درگیر این بحثها خواهید بود و اینکه بتونید از پیشنهادات خودتون بطور منطقی دفاع کنید موضوع بسیار بسیار مهمی هست.
وقتی شروع به نوشتن
ADR = Architecture Decision Records
میکنید یاد میگیرید ابزاری که دارید انتخاب میکنید رو همه جنبههاش رو ببینید؛ خیلی وقتا ابزارهایی که افراد انتخاب میکنند فقط بخاطر hype هست و جو زده هست اون انتخاب بدون اینکه بدونند آیا واقعا بدردشون میخوره یا مناسب کارشون هست.
خیلی وقتا این مکالمه رو شنیدیم:
- چرا فلان ابزار رو انتخاب کردید ؟ + گوگل داره ازین استفاده میکنه؛ چی ازین بهترآره دوست من ولی گوگل چندین میلیارد کاربر داره و تو به زور به ۵ هزارتا میرسی. گوگل هزاران نفر توسعه دهنده داره ولی تیم تو به زور به ۱۰ نفر میرسه. گوگل میلیاردها دلار خرج زیرساخت و دستمزد و ... میده. تو زیرساختت به زور ۱۰۰ هزار دلار میشه. برای خود من موقع بحث سر موضوعاتی که بچهها باید یاد بگیرند برای توسعه بکند همین موضوع پیش اومد یکی از بچهها گفت برای سرویس ارسال ایمیل از
celery استفاده کنیم پس اینم بنویسید؛ که اگر نگاه کنید من ممنوع کردم استفادهاش رو celery سرویس بسیار بزرگ و سنگینی هست.
برای پروژههای کوچیک اشتباه هست که توی قدم اول برید سراغش؛ اما اگر کسی بتونه ADR خوب بهم بده قطعا قبول میکنم.
درسته وقتی تنهایی کد میزنید به ADR نیازی نیست اما نوشتنش باعث میشه یاد بگیرید بحث کنید؛ توی نوشتن ADR معمولا شما به چندتا ابزار میرسیدو باید این چیزها رو توضیح بدید :
۱- این ابزارها برای چه کاری هستند و چرا فکر میکنید توی پروژه لازمشون داریم ؟
۲- چرا هرکدوم از ابزارها رو در نظر گرفتید؟ (چرایی مهم هست)
۳- انتخاب شما کدوم بوده ؟ و البته چرا ؟
۴- نقاط قوت و ضعف ابزاری که انتخاب کردید چی هست ؟
۵- نقاط قوت و ضعف ابزارهایی که انتخاب نشدند چی هست؟
۶- تحت چه شرایطی ابزارهای دیگر رو انتخاب میکردید یا اینکه شرایط پروژه چی بود که نقاط قوت ابزار انتخابی شما به باقی موارد و البته نقاط ضعف اون چربید و انتخاب شد.
فکر میکنم از سوالها مشخص باشه که چقدر چیز مفید و مهم رو درک میکنید و یاد میگرید.
آیا همه پروژهها این رو دارند ؟
به جرات میگم که بیش از ۹۲-۹۳٪ پروژهها و حتی شاید توسعه دهندهها حتی نمیدونند چی هست؛ ولی تمام پروژهها و تمام مدیران فنی و اعضای تیمهاشون هرروز درگیر یکی از این تصمیم گیریها هستند.
به مدیرای فنی هم پیشنهاد میکنم توی تیم این موضوع رو داشته باشید؛ خیلی وقتا نیرو احساس میکنه حرفهاش شنیده نمیشه درصورتی که شما میدونید چیزی که پیشنهاد میکنه خوب نیست برای پروژه فقط وقت برای توضیح دادن بهش رو ندارید.
معمولا با نوشتن ADR خیلی از بچهها خودشون متوجه میشوند که چرا جواب نه بهشون داده شده.9 604
Repost from RandRng
Donald J. Trump on Truth
اگر ایران به معترضان صلحجو تیراندازی کند و آنها را بهطور خشونتآمیز بکشد، که این کار معمول آنهاست، ایالات متحده آمریکا برای نجات آنها وارد عمل خواهد شد. ما آماده حرکت و مسلح هستیم. از توجه شما به این موضوع سپاسگزارم! رئیسجمهور دونالد جِی. ترامپیک ۱۰ دقیقهای هست دارم متن مینویسم؛ که با این پست به اشتراک بذارم ولی حقیقتش همرو پاک کردم چون هرچی بگم ننگ؛ درد و غم این پست رو کم میکنه! نیروی نظامی کشور خودم؛ مردم خودم رو میکشه! اونوقت همین مردم؛ باید از پیام تهدید به حمله کشورهای دیگه خوشحال بشوند. با شناختی که از پدرم داشتم؛ یک وقتایی خداروشکر میکنم که بعنوان یک ارتشی زنده نیستند و این خبرها رو نمیبینه.
9 604
ی جملهی معروفی هست:
«در جنگها، این سربازاناند که کشته میشوند، نه رهبران.»در اعتراض به دزدی، اختلاس، ناکارآمدی و فساد و ... هم
دزد و مختلس و مسئولِ ناکارآمد در آرامشاند، اما این معترض و محافظاند که روبهروی هم وایساده و همدیگر را میکشند. معترض میدونه برای چی اعتراض میکند. اما آقای محافظ… تو هم میدانی از چی داری دفاع میکنی؟
9 604
نمیدونم چرا ولی از هفته قبل تعداد پیامهای یادگیری بکند برام خیلی خیلی زیاد شده.
تا قبل از این همگی هوش مصنوعی بود.
توقع دارم بعد از این مرحله
Rust باشه و System Programming (خدا کنه خودم به اندازه کافی تجربه کنم تا اون موقع)
حتماً پیام قبل و بعد این roadmap رو توی اون کانال بخونید.
شرایط رو درک کنید و context توی ذهنتون باشه و بعد شروع به دنبال کردن این roadmap کنید.9 604
Repost from RandRng
#Backend_RoadMap_2025
قبل از اینکه بخواید این
roadmap رو دنبال کنید باید پست قبلی رو بخونید.
یک نکتهای که اضافه کنم؛ توی جلسات و ... که بحث شد من اصلا قرار نیست هیچ چیزی رو آموزش بدم (اشتباهات رو کمک میکنم حل بشه و ...) اما اینکه آموزش بدم FastAPI چیست و جطوری CRUD بنویسیم و ازین موارد با اوضاع الانم اصلا نمیخونه پس دلیل ساده بودنش همین پست قبلی هست.
چیزایی که توقع دارم یک Senior توی جنبهی فنی بکند بلد باشه (اعداد هیچ ربطی به ترتیب یادگیری نداره؛ فقط برای این هست که تهش بدونم چندتا مورد رو گفتم) از دوستان Senior هم میخوام اگر نکته یا موردی جا افتاده بهم یادآوری کنند.
بازم توجه کنید Senior شدن کلی جنبههای مختلف داره ولی برای بخش فنی مربوط به بکند این لیست کافی و قوی هست؛ برای بحثهای دیگر هم از منابع خودش میتونید دنبال کنید.
فریمورک مورد نظرتون رو کمی بشناسید (من روی FastAPI پیش میرم ولی خیلی فرقی نیست)
1. Middleware: Starlette interface for how to write middleware.
Must know: auth, request ID, timing, gzip, validators, rate-limit, logging.
Important to know the order of execution.
2. CORS (and headers in general).
3. Authentication / Authorization: What is JWT + RS256.
Nice to know: Auth0, Cognito.
4. SQL and SQLAlchemy 2.0 (async style).
5. Tests:
* Unit tests for business logic.
* Integration tests for database, Redis, etc. interactions.
* Contract tests (very important) for endpoints and services you use.
6. Benchmarking: k6, load testing, CI smoke tests for performance-sensitive endpoints; wrk, hyperfine (or alternatives).
7. Docker / Docker Compose: multi-stage builds.
8. Profiling: Scalene or Perf — flamegraph interpretation.
9. Caching (Redis): cache invalidation; GET/SET strategies (Cache-Aside vs Write-Through).
10. Background tasks:
FastAPI background tasks & Dramatiq (or other alternatives).
Don't bring Celery or its equivalent into projects — it's heavy and overkill in most cases.
Use/understand: idempotency, retries, dead-lettering.
11. Observability: Logging, tracing, metrics.
Logs must be structured (JSON is a good option).
Distributed tracing is a must-have.
Metrics (Prometheus) are important — at minimum: response_time_ms, active_connections, etc.
12. Configuration management: Pydantic Settings; no hard-coded settings or configs.
13. Migrations: Alembic — each migration should have both UP and DOWN so it is safe to revert.
14. API documentation: FastAPI provides it automatically, but don't forget to use the Pydantic model example field.
BTW: Pydantic v2 is the only accepted version.
15. Error handling + correct HTTP codes.
16. Graceful shutdown:
App must stop accepting new HTTP connections,
finish processing current requests,
drain the database connection pool,
then exit.
17. Idempotency and retries:
For network/database failures — learn exponential backoff, circuit breakers, bulkheads.
18. Health checks and readiness probes: The app must provide them (Docker health check alone is not accepted).
19. Connection pooling tuning: Postgres, Redis, etc.
You must be able to explain tuning decisions based on your benchmarks/profiling results.
20. Security basics: Input sanitization/validation, rate limiting, secrets management, secure defaults (CSP, HSTS), threat modeling for endpoints.
21. Scalability patterns: Focus on connection pooling and indexing first.
Too many or unnecessary indexes = Fail.
Nice to learn: horizontal scaling, load balancing, sharding, replication.
22. Feature flagging (dynamic configuration): All projects should have it — very important.
23. API versioning strategy: Header versioning / URL versioning.
24. Architecture Decision Records
From day 1 you must have this document in the project with at least 3 entries per decision:
What you decided.
Why you did that.
What the consequences are.
--————————————-
Future / next steps
1. Design system architecture.
2. Integrate message queues (when and why to use them) — Kafka, RabbitMQ.
3. Event-driven patterns.
4. Optimize for latency.
5. GraphQL / gRPC — when and why to use them.
پینوشت: اگر جایی کپی کردید؛ لطفا پیام قبلی و بعدی رو هم بذارید 🌱
توضیحات مهم هست.9 604
Repost from RandRng
تو زندگیم یادگرفتم همیشه دستم رو زانوی خودم باشه، فقط به خودم تکیه کنم و فقط روی خودم حساب کنم.
با همهی اینها، وقتی پدرم فوت کرد، فهمیدم دیگه زورم به دنیا نمیرسه؛ چون قدرت مشتم از احساس امنیتی بود که بخاطر وجود پدرم داشتم، ولی بازم جنگیدم.
من آدم حرف زدن نیستم؛ دردام مال خودم بوده و هست.
خیلی جاها خیلی خیلی کم آوردم ولی بازم خندیدم و ادامه دادم.
هرجای زندگیم کم میآوردم دوتا دلیل داشتم که بازم ادامه بدم؛
اول اینکه نمیخواستم ببینم مادرم بخاطر من غم تو صورتش هست.
دوم اینکه پشتم به مادر گرم بود، فقط کافی بود دست بذاره رو سرم و باهام حرف بزنه؛ کل دنیا هم حریفم نبود.
اما حالا دیگه نه پشت دارم نه مشت.
دیگه حالی برای جنگیدن نیست، امیدم به تموم شدن این جنگه.
---------------------
این چندروز کلی پیام تسلیت دریافت کردم، این حرفها رو گفتم که بدونید چقدر پیامهاتون برام ارزش داشت و البته عذرخواه و شرمندم که نتونستم پاسخ بدم.
برای همهی شما و عزیزانتون آرزوی سلامتی دارم.
9 604
آقای مهندس عباسی در گذشت والده محترمه اتون رو تسلیت عرض میکنیم 🖤
دوستان ایشون در حال حاضر قادر به پاسخگویی پیام های شما در پیوی اشون نیست
موقتا اگر سوالی هست بنده در خدمت دوستان هستم
@majid_aghamohamad
9 604
این پست خارج از بحث کانال هست ولی چون این اواخر خیلی بهم پیام داده شده
ترجیح دادم بصورت عمومی توی کانال اعلام کنم!
که حداقل خودتون حواستون رو جمع کنید!
Уже доступно! Исследование Telegram 2025 — ключевые инсайты года 
