فرض کنید که ماموریت شما حفر کردن زمینه به مساحت زیاد است , شما دو انتخاب دارید :
1. چند کارگر بگیرید و با آنها مشغول کار شوید.
2. یک دستگاه بیل مکانیکی بگیرید و کار را شروع کنید.
کتابخانه ها مثل کارگر ها عمل می کنند , شما هر زمان که بخواهید می تواند آنها را فراخوانی کنید و اگر احساس کردید که کار بلد نیستند می تونید آنها کنار بزنید و خودتان کار درست را انجام بدهید ( بعضی مواقع واقعا لازمه ! ) و یا حتی مسئولیت اونها رو کم یا زیاد کنید.
از طرفی دیگر شما در دستگاه بیل مکانیکی شما نمی توانید قوانین خودتون را داشته باشید , شما نمی تونید عملکرد یک اهرم فرمان را نادیده بگیرید , شما باید امکاناتی که این دستگاه به شما می ده آگاه باشید.
مثلا : به حرکت در آوردن ماشین , عوض کردن کلاج , بالا بردن فشار روغن هیدرولیک و ...
شما نمی توانید از دستگاه پیاده بشید و ریل ها رو هل بدید تا دستگاه حرکت کند و این کار فقط باعث می شه که زمان و انرژی خودتان را هدر بدید , شما باید به اهرم های فرمان دستگاه مسلط بشید.
خبر خوب اینکه اکثر فریم ورک ها طوری معماری و طراحی شده اند که امکان استفاده از کتابخانه های دیگر را هم دارند و برنامه نویس می تواند فریم ورک توسط توسعه دهد.
شما فرض کنید با بیل مکانیک می خواهید دور یک لوله گاز رو گود برداری کنید , در یک قسمت کار باید از بیل مکانیکی استفاده بشه و در قسمتی دیگر کارگران باید مشغول کار شوند و یا حتی کارگری به بیل مکانیکی راهنمایی بده.
اگر دیده باشید کسانی که با ماشین های سنگین کار می کنند رفته رفته نسبت با طرز عملکردن ماشین هم تجربه ای بدست می آورند و اگر واقعا با تجربه باشند راحت می تونن کل ماشین رو باز و جدا کنند و دوباره سرهمش کنند و مثل ساعت کار کند.
کسی که با یک فریم ورک یا کتابخانه سالها کار کند می تواند بهترین استفاده از اون امکانات ببره و حتی چیز های جدیدی تولید کنه و بهتر از اون می تونه در تیم توسعه کتابخانه و یا فریم ورک مشارکت کنه.
شاد و پیروز باشید و
#در _خانه_بمانید