tgoop.com/djangolearn_ir/643
Last Update:
توی شرکت روی پروژه شرکت مثال زدم؛ عذر میخوام اگر توی تصویر بالا مثال خیلی کاربردی نیست
جایی رو ندیدم مثال خوب / واقعی بزنه یا زده باشه سعی کردم ی مورد مشابه رو مثال بزنم
فرض کنید ما ۳ نوع فایل داریم که خیلی برامون مهم هست :
1- لاگها ؛ خطاهای سرویسها - دیتابیس و ... توی این فایلها نوشته میشه و وجودش برای پروژه بسیار بسیار مهم هست
پس اگر فایل لاگ وجود نداشت پروژه به هیچ وجه نباید روی پروداکشن بره
2- فایلهای کمکی؛ وجودشون مهم هست اما نه اونقدری که نذاریم پروژه بره روی پروداکشن
بعنوان مثال تصویر لوگوی شرکت
3- یک سری گذارشات روزانه مثلا و.ضعیت پرداختها و ...
که بصورت اتوماتیک انتهای ساعت کاری هر روز درست میشه؛ اما اگر یکی از ادمینها یا مشتریها وسط روز بخواد خروجی بگیره ممکنه نداشته باشم.
توی مثال بالا بصورت دیفالت هر ۳ فایل یک ارور رو بر میگردونه :FileNotFoundError
که اگر بخوایم exception handler
بنویسیم باید حتما توی داخلی ترین تابع پردازش نوشته بشه و حتما باید بررسی کنیم که توی یک تابع یا متد بصورت همزمان وجود بیش از ۱ مورد از فایلهای بالا بررسی نشه چون در اون صورت نمیدونیم ارور مربوط به عدم وجود کدوم فایل بوده و نمیتونیم تصمیم بگیریم آیا ابزار باید روی پروداکشن بره یا خیر یا ...
اهمیت custom exception
نوشتن همینجا مشخص میشه؛
شما میتونید هرجایی که دلتون خواست و هر نوع فایلی که دلتون خواست رو بررسی کنید.
برنامهنویسهای تیم شما آزادی عمل بیشتری دارند و این یعنی تصمیمات بهتری میتونند بگیرند
دیباگ کردن بسیار راحت تر خواهد بود؛ چرا که به لطف خطاهای مشخص میتونید درجا سروقت تابع یا متدی برید که وظیفه بررسی اون خطا رو داره
جداسازی مفاهیم مختلف؛ مثل بررسی لاگ و اعمالش یا بررسی و برخورد با گزارشات روزانه و ... باعث میشه شما بتونید کد رو به راحتی به افراد مختلف بسپارید و این یعنی کار کردن به صورت پارالل به راحتی قابل انجام هست پس سرعت توسعه کد قطعا بیشتر خواهد بود.
و ...
اتفاقی که امروز افتاد: برای ما روی یک پکیج حیاتی و بسیار بزرگ بود که پیدا کردن باگ داخلش میتونه حتی هفتهها طول بکشه
اما اگر پروژه شما انقدر گسترده نیست میتونید این مورد رو چشم پوشی کنید.
ولی در نظر بگیرید:
هیچ کس از رعایت best practice ها متضرر نشده و نمیشه.
BY جنگولرن
Share with your friend now:
tgoop.com/djangolearn_ir/643