فرق بین usecase و service method چیه؟ برنامه ی ما یک تعداد متود دارن که یک کار کوچک رو انجام میدن مثلا create_user, create_referrer, send_bonus_email که هرکدوم یک کار مشخص و مستقل رو انجام میدن مثلا اولی کاربر میسازه. دومی یک رفرال میسازه و بعدی هم یک ایمیل کمسیون برای معرف میفرسته. اینها به تنهایی استفاده ای ندارن و باید باهم استفاده بشن. متودی که این service متود هارو کال میکنه بهش میگیم usecase. مثلا:
def register_user(...):
with db:
create_user(...)
create_refeerrer(...)
send_bonus_email(...)
پس این usecase هست که تصمیم میگیره کی commit انجام بشه. متود های سرویس ویا ریپازیتوری نباید commit انجام بدن.
-حالا این وسط من یه کلاس دیگه ای دارم به اسم checkout
که این کلاس بجای ریپو سرویس هارو میگیره
این چندتا کارو هم میکنه
create_new_purchase
create_renewal
create_credit_charge
apply_discount
pay
مثلا توی create ها از تنظیمات چک میکنه ایا فروش بازه یا نه. توی renewal چک میکنه ایا همچین subscription ا
usecase = orchestration layer
Rezaسلام
ممنون میشم نظر بدید
https://github.com/m-mounesi/fastapi-crm
نکته ی بعدی در مورد کامنت ها هست.
# CREATE Customer
@router.post("/", response_model=CustomerResponse, status_code=201)
def create_customer(...):
در اینجا کد خودش داره میگه چه کاری انجام میده clean نوشته شده و self explanatory هست. تنها چیزی که مشکل داره و اضافی هست کانت CREATE Customer هست. کامنت ها باید در مورد why صحبت کنن نه what.
یعنی کامنت باید بگه چرا این کارو در کد انجام دادم تا بعدا اگه یادت رفت کامنت رو بخونی و یادت بیاد که اها به این دلیل همچین کدی نوشتم. ولی اگه کامنتی بنویسی که کد چه کاری رو داره انجام میده ممکنه اشتباهه چون این خود کد هست که باید بگه "چه" کاری رو انجام میده اینکه "چرا" داره اون کار رو انجام میده وظیفه کامنت هست که بگه
موضوعات دیگه ای هم هست. که فکر میکنم نیاز به یک پروژه example داشته باشه توضیح دادنش طولانیه.
این چندتا نکته ای که گفتم تا جای خیلی زیادی مشکل coupling رو حل میکنه. نیازی به استفاده از پترن های پیچیده معماری ندارید.
در شروع اصلا پروژه نیاز به معماری نداره چون اصلا مشخص نیست این پروژه ارزششو داره یا نه یا اصلا موفق میشه یا نه پس بجای اینکه وقت بزارید رو معماری تمیز بهتره کد رو تمیز بنویسید و به صورت ساده کد سطح وابستگی رو پایین نگهدارید. بعدا اگه نیاز شد میتونید برید سمت پترن های معماری پیچیده تر. البته برای تمرین کردن اوکیه مشکلی نداره ولی تا زمانی که ندونید یک راه حل چرا وجود داره بنظرم سخته درکش کنید یعنی کسی که تو کدش واقعا با big ball of mud مواجه نشده باشه به سختی میتونه استفاده از پترن هایی که برای حل کردنش بوجود اومدن رو یاد بگیره و درک کنه و در جای درست ازشون استفاده کنه. البته همه ی این پترن ها به coupling ربطی ندارن همون layered architecture تا حد زیادی این مشکل رو حل میکنه. بقیش ربط داره به تست و تراکنش و این چیزا.
R خیلی ممنونم که اینقدر با حوصله پروژه رو بررسی کردی و نکاتت رو با جزئیات توضیح دادی. حتما همه موارد رو با دقت مطالعه میکنم و کد پروژه رو با این دید دوباره بازبینی میکنم. نکاتی که درباره تمرکز روی حل مسئله و تمیز نگه داشتن کد، بهجای پیچیده کردن زودهنگام معماری گفتی، خیلی برام مهم بود. فکر میکنم این بازبینی کمک میکنه اولویتبندی بهتری برای یادگیری و بهبود کد داشته باشم. 👍 به نکات زیادی اشاره کردی که برای درک و بهکارگیریشون باید وقت بذارم. ممنون بابت وقتی که گذاشتی و تجربهات رو باهام به اشتراک گذاشتی 🙏🌹S
Link
clique para mostrar
clique para mostrar
https://azadlug.ir/community/it-career-path-guide/
تست آنلاین برای ورود به حوزه IT
میگه چه شغل هایی احتمالا مناسب با سلیقه و خواسته های شما هستش
۸۷ شغل ثبت شده تا الان
Hey everyone!
I'm looking for a good LLM for coding, mainly considering performance and inference speed.
I have two machines:
- Server: RTX 4090 (24GB VRAM), 300GB RAM
- Local PC: GTX 1660 Ti (6GB VRAM), 16GB RAM
I've tried Qwen 3.8 27B quantized on the 4090, but the speed wasn't great.
I'm open to local models, free APIs, or even a combination of both (e.g. using a local model with a free API as fallback).
I don't want to spend money on API subscriptions or usage.
What would you recommend for each machine? Are there any good free API providers worth trying?
من به یه مشکلی دارم برمیخورم توی ai ببینید شما براش راه حلی دارید
من یه تعد نسبتا خوبی چت دارم شاید روزی ۱۰ تا از موضوعات مختلف و این از هر کدوم یه مموری ذخیره کرده و رسما از همون پیامای اول شروع میکنه به هلوسینیت کردن اصلا راجع به یه چیز دیگه ای پرسیدم الکی یسری مزخرف جنریت میکنه میکنه که به ۱۰ تا چت دیگه ای که داشتم یه ربطی ایجاد کنه در نتیجه جواباش به درد جرز دیوار میخوره
در واقع مموریه به جای این که کمک کننده باشه بیشتر ازار دهندست ولی نمیخوام هم ۰ باشه
سعی کردم خودم مموریشو درست کنم ولی اون بخشی از مموریش که قابل اصلاح کردنه و من میبینم چیز خاصی نداره
فکر میکنم خیلی مشکل بنیادی برای خود gpt باشه اما الان دنبال یه work around دارم میگردم
مدلی که استفاده میکنم معمولا sol 6.1 high عه
A Y M Arquivo
PROJECT_CONTEXT.en.md · 342 KB · clique para mostrarاین چیزیه که ساختم برای ادامه یک پروژه از چت قبلی به چت بعدی هوش مصنوعی . کافیه به هوش مصنوعی بدید و بگید میخواهید پروژه بسازید یا قبلی که دارید رو ادامه بدید. با این فایل میشه حتی با چت ساده و کاملا رایگان دیپ سیک بدون یک خط کد نویسی برنامه ساخت چون هر چت هم لیمیت میخورده کاربر همین فایل رو که در روت پروژه ش بوده و هر بار به روز شده خودکار به چت جدید هوش مصنوعی میده و ادامه پروژه . این بهترین روش برای اتصال بین چت های هر هوش مصنوعیه ؛ برای هر موضوعی باید ساخته بشه اینو حالا من برای کد نویسی ساختم و میشه هر کسی بسازه ولی کلی فکر و تجربه سنجی هم نیاز داره در عمل اگر کسی چیزی جدید برای موضوعات جدید غیر از کدنویسی ساخت.👍1A من فکر کنم شما از این cli دارید استفاده میکنید اون مشکلی نداره من مشکلم با چت خود سایتشه که ناخواسته هم به مموری اطلاعات میده هم از مموری میخونه مثلا یبار رزومه دوستمو گذاشتم براش اصلاح کنه از اون موقع تجربیات تو رزومه اونو هییییی میاره تو تمام چت های بعدی یا مثلا یبار یه چیزی توی محیط sqlserver و powerbi پرسیدم حالا ول نمیکنه هر چتی میرم هی همه چی رو مایکروسافتی توضیح میده یبار یه سوال از دامنه مثلا بیمه پرسیدم دیگه ول نمیکنه بیمه رو میخوام لباس بخرم رنگ لباس میپرسم هی یجوری ربطش میده به بیمهY S
M سلام باید حتما هر چت مجزا باشه از چت دیگه چون شما کانتکست چتتون اگر کلاد هم باشه یک میلیون توکن بیشتر نمیشه و همیشه محدودیت داره باید مجزا باشه شما باید دنبال گروه بندی موضوعی چت ها باشید نه اینکه بخواهید بین همشون یک مموری ثابت بذارید اشتباهه این روش من برای حل این مشکل بین چت های برنامه نویسی روش هایی گذاشتم و حلش کردم و یک چت بعدی ادامه چت قبلی شده با روشی که بعد مدت ها تجربه و فکر بدست آوردم و اون یک فایل کانتکست هست که اگر خواستی میفرستمش اینجا اگر گروه فایل مسدود نبود
سلام دوستان
وقتتون بخیر
من میخوام اکانت Github بسازم
(ایران زندگی میکنم)
یک قسمتی هست موقع sign up
که باید Country/Region رو انتخاب کنیم
میخواستم بپرسم
بهتره ایران رو انتخاب کنیم ؟
و واقعیت رو بگیم
یا یه لوکیشن خارجی رو مثل امریکا رو انتخاب کنیم؟
ممنون میشم
دوستانی که با تجربه هستن
راهنماییم کنن
و بگن بهترین انتخاب
برای کسی که داخل ایران هست چیه