پردازش فایل و داده
DEVNU / TECHNOLOGY / PYTHON
Python را وقتی انتخاب میکنیم که اکوسیستمش بخشی از راهحل باشد، نه صرفاً چون syntax کوتاه است.
Python برای data processing، automation، computer vision و ابزارهای علمی کتابخانههای بالغی دارد. در معماری چندسرویسی میتواند کنار backend TypeScript قرار بگیرد و مسئول یک workload مشخص باشد.
Python در پروژه چه مسئولیتی دارد؟
در DEVNU، Python را بیشتر برای worker، پردازش فایل، automation و سرویس تخصصی در نظر میگیریم. API عمومی اصلی فقط زمانی Python میشود که ecosystem، تیم یا workload آن را توجیه کند.
جایی که استفاده از آن باید یک مسئله مشخص را حل کند.
automation و scheduled jobs
Computer vision و OpenCV
ETL و data cleanup
integration با ابزارهای علمی
سرویس تخصصی پشت queue یا API
چه زمانی انتخابش میکنیم
پردازش داده، ETL سبک، scraping قانونی و کنترلشده، image processing، scriptهای عملیاتی و integration با ابزارهای علمی fit طبیعی هستند.
چه زمانی انتخابش نمیکنیم
اگر کل محصول TypeScript است و سرویس جدید فقط چند endpoint ساده همان domain را تکرار میکند، اضافهکردن runtime دوم هزینه deployment، observability و skill set را بالا میبرد بدون مزیت روشن.
استفاده از ابزار مهم نیست؛ نحوه نگهداری آن مهم است.
- 01virtual environment و dependency pinning
- 02type hints در مرزهای مهم
- 03worker isolation برای jobهای سنگین
- 04timeout و retry محدود برای integration
- 05structured logging
- 06ورودی و خروجی قراردادی بین Python و سرویسهای دیگر
چند سؤال مهمتر از اسم stack هستند.
Python یا Node.js؟
برای ecosystem علمی و پردازش داده Python غالباً مزیت دارد؛ برای APIهای TypeScript و integrationهای وب Node.js friction کمتری ایجاد میکند.
Script یا service؟
اگر کار زمانبندی، retry، state یا چند مصرفکننده دارد، script تکفایل بهسرعت تبدیل به dependency نامرئی میشود و باید service boundary روشن بگیرد.
Sync یا queue؟
پردازش کند یا failure-prone را از request کاربر جدا میکنیم تا timeout یک سرویس تخصصی کل تجربه را متوقف نکند.
پروژههایی که Python در stack آنها ثبت شده است.
پاسارگارد؛ فروشگاه و پنل عملیاتی تلگرام
محصول شخصی برای جمعکردن ثبت سفارش، کیف پول، تحویل سرویس و مدیریت نمایندگان در یک جریان واحد داخل ربات و Mini App تلگرام.
- Telegram
- React
- TypeScript
- FastAPI
- PostgreSQL
- Redis
- Docker
- Nginx
فناوری درون یک خروجی واقعی معنا پیدا میکند.
پرسشهای متداول درباره Python
01آیا DEVNU با FastAPI هم کار میکند؟+
برای سرویسهای Python که API سبک و typed نیاز دارند FastAPI گزینه قابل بررسی است، اما انتخاب framework بعد از مشخصشدن workload انجام میشود.
02Python را کنار NestJS میشود استفاده کرد؟+
بله. یک سرویس Python میتواند مسئول پردازش تخصصی باشد و از طریق queue یا API با backend اصلی NestJS ارتباط بگیرد.
09 / NEXT STEP
اول مسئله را ببینیم، بعد stack را انتخاب کنیم.
اگر پروژه به این فناوری نیاز داشته باشد، دلیلش باید در معماری، عملکرد، تجربه کاربر یا هزینه نگهداری قابل توضیح باشد.
شرح پروژه