(14-07-1394، 02:59 ب.ظ)ADMIN نوشته: شما اکثر پروژه هایی که انجام دادین (تقریباً تمامشون) تا جایی که اطلاع دارم برای مصارف شخصی و استفاده توی مقیاسهای کوچک و تک کاربره بوده. وقتی توی پروژه مقیاس بزرگ کار کنید، اهمیت این وسواس در مصرف حافظه و پردازنده رو درک میکنید.بله خب اینطور بوده حرفی نیست!
ولی با این حال بنظر من بازم حرفهای بنده در خیلی موارد درسته و خیلی ها بیش از حد روی بهینه سازی تصور اغراق آمیز و رفتار افراطی دارن. من فقط میخوام این وسواس ها و افراطهای بیش از حد و اغراق ها رو که میدونم بیان کنم و نسبت بهشون هشدار بدم و اینکه طرز تفکر منطقی در این زمینه رو آموزش بدم. بنا به مطالعات و صلاحیت دانشیک که در خودم میبینم و به پشتوانهء منابعی که دیدم و ارائه دادم!
من یه مطالعات تئوریک در این زمینه داشتم که منابع درست و حسابی داره و افرادی که خودشون برنامه نویسان حرفه ای بودن بعضیاشون کارهای تجاری در مقیاس بزرگ منجمله تحت وب هم کردن. حرفهایی که اینا میزنن برای من کاملا قابل درکه و درست میاد بنظرم عقل و تجربهء شخصی من هم گرچه تجربم کم باشه ولی تایید میکنه. و اصلا بعضی چیزها درک و کشفش از راه تئوریک راحتتره تا بصورت تجربی و عملی. بنده کلا درک مطلب بالایی دارم یه مطلب تخصصی علمی چیزی بخونم تا حداکثری که ممکن باشه کامل و عمیق متوجه منظورش میشم. چیزهایی در نوشته ها در منابع تئوریک هست که بعضا با تجربه عملی ولو سالها خیلی سخته بشه فهمید، بعضی وقتا غیرممکن. مثلا علم امنیت و رمزنگاری از اینطور چیزها زیاد داره. ولی مرد میخواد این منابع رو بخونه و بفهمه؛ سواد و پایه علمی و قدرت تحلیل ذهنی بالایی میخواد. بمب اتمی رو تئوری درست کرد. اگر فقط بصورت تجربی بود شاید تاحالا نه بمب اتمی داشتیم نه انرژی هسته ای! بمب اتمی که قطعا نداشتیم، ولی انرژی هسته ای شاید به زور! پس قدرت تئوری رو دست کم نگیرید. بعضی چیزا کار تجربه و تست عملی صرف نیست!
حالا بله یه مقداری هم ممکنه من زیاده روی بکنم درمواردی ممکنه اشتباه بکنم یا در میزان واقعی چیزها تخمین های بیش از حد دور از واقعیت داشته باشم، قبول دارم و میپذیرم! مثلا من اون داستان count رو تست کردم روی سیستم خودم با حلقهء 100 هزار دیدم حدود یک ثانیه اختلاف زمان ایجاد کرد! حقیقتش انتظار اینقدر زمان رو نداشتم فکر میکردم خیلی کمتر بشه. گرچه بهرصورت بازم حلقه های دور کمتر مثلا 100 تا و هزارتا رو من مشکلی نمیبینم در برنامه ها و مقیاس های عادی اگر کسی count رو توی حلقه گذاشت! چون تا یک صدم ثانیه و این حدود قابل تحمله. فرض گیریم چندتا حلقه اینطوری هم داشته باشه روی هم مثلا میشه یک دهم ثانیه. البته در شرایط ترافیک سنگین بله این یک دهم هم ممکنه بتونه در هندلینگ سایت و بخصوص هاستهای اشتراکی اهمیت پیدا کنه، ولی من اعتقاد ندارم فقط به این خاطر حتما اصرار هست که همیشه همه کس توی همه کدها این مسئله رو رعایت کنن. خیلی وقتا تنها آگاهی هست که ضروری یا کافیه، نه انجام کار خاصی. و در پست قبلی هم اشاره کردم گفتم که آدمها خودشون باید انتخاب کنن کسی جای کس دیگر نیست شرایط برای هر شخص و برنامه میتونه متفاوت باشه. مثلا من سیستم رجیستر و لاگین نوشتم از اول هدفم پرفورمنس بالا و مقیاسهای بزرگ یا پاسخگویی ترافیک سنگین نبود، و این هدف رو عمدا انتخاب کردم بر اساس اولویت ها و علاقمندی های شخصی خودم و یک دلیلش این بود که حجم و پیچیدگی کار رو کاهش بدم اسیر محدودیت های پرفورمنس نباشم تمرکز و وقتم روی این صرف نشه چون اصل کار خودش کار جدید و بقدر کافی گسترده و پیچیده ای بود. هروقت هم بخوام واقعا لازم ببینم میتونم اون برنامه رو مقداری بهینه تر کنم، مشکلی درش نمی بینم، بخصوص الان که بهش احاطهء بیشتری دارم. روی سایت مایت کسی هم نصب نکردم پولی بابتش نگرفتم که بخوام نگران پشتیبانی و تعهدات و اینها باشم.
حالا شما میخواید برنامه تجاری بنویسید روی هاست اشتراکی هم نصب کنید ترافیک بالا هم جواب بده، خب معلومه این مسائل براتون خیلی مهمتر میشه. ولی همه که چنین شرایطی ندارن و بنظرم این حتی در دنیای برنامه نویسان حرفه ای و تجاری هم مشکلی اینقدر بزرگ برای همه نیست. پس نباید کلی و مطلق صحبت کرد بگید آقا همه باید این جزییات رو عادت کنن توی تمام کدها تمام برنامه ها رعایت کنن!