تجاربی از بهینه سازی یک سیستم

مدتی هست که در حال بهینه سازی سرعت یکی از مهمترین نرم افزار های شرکت هستیم.در طول در این مدت تجاربی بدست آوردم که صرفا فنی نیست .با خودم گفتم بد نیست اینجا با شما به اشتراک بگذارم.

۱:نوشتن یک دفتر تلفن با نوشتن یک برنامه با چندین هزار کاربر همزمان خیلی فرق دارد:همه ما این موضوع را می دانیم ولی خیلی از ما وقتی کد می زنیم این موضوع را مد نظر قرار نمی دهیم.
۲:برنامه نویس خوب به جزئیات توجه می کند و این تفاوت برنامه نویس خوب و معمولی است:این جمله خودم نیست ولی واقعا در زمان بهینه سازی متوجه شدم که حتی نام گذاری کردن SPها نیز می تواند مهم باشد و اگر ما به جزئیات توجه کنیم مشکلاتمان به مراتب کمتر است.
۳:مشکل را در برنامه خودتان دنبال کنید نه دنبال باگ در کد SQL Server :به محض اینکه مشکلی خوردیم دنبال باگ در انجین دیتابیس نباشیم به احتمال خیلی زیاد مشکل از سمت ماست.

نمودار زیر مشخص کننده اندازه فوکوس ما زمانی که به مشکل میخوریم هست.

نمودار
۴:اگر یک قسمت از سیستم را  بهینه کنیم و قسمت دیگر را بهینه نکنیم به احتمال زیاد به مشکل بر خواهیم خورد.
۵:زمانی که از یک تکنولوژی برای یک پروژه Enterprise استفاده می کنیم باید واقعا روی آن مسلط باشیم.
۶:زمانی که نیاز به سرعت و همزمانی بالا داریم بهتر است کد را به اندازه ممکن ساده نگه داریم.
۷:تغییر حتی یک خط کد در این دسته از پروژه ها نیاز به لود تست دارد.
۸:در صورتی که Code Review داشته باشیم مشکلات به مراتب کمتر می شود.
۹:طراحی پیچیده جداول و نرمال سازی بیش از اندازه می تواند شما را زمین گیر کند.