یکی از بدیهیترین راهها برای اینکه در کدنویسی پیشرفت کنید، «کدنویسی» است؛ به عبارت دیگر، باید تا میتوانید کد بزنید اما اگر میخواهید پیشرفت خیلی سریعتری داشته باشید، باید علاوه بر کدنویسی، «کدخوانی» را هم به برنامۀ آموزشی خود اضافه کنید! یعنی کدهایی که دیگران نوشتهاند را بخوانید. این مقاله دربارۀ این است که چه بخوانیم، چگونه بخوانیم، و هنگام خواندن کدها به دنبال چه باشیم؟
چه بخوانیم؟
اینکه چه بخوانیم، تصمیم بزرگ و سختی است. ما نمیتوانیم مستقیماً به شما توصیه کنیم که شروع به خواندن فلان سورس کد کنید! چراکه همه چیز بستگی به خود شما دارد اما در عین حال میتوانیم دستورالعملهایی ارائه کنیم تا با دنبال کردن آنها، بتوانید تصمیم بگیرید که چه سورس کدی را برای مطالعه انتخاب کنید.
کدهایی را بخوانید که به آنها متکی هستید: میتوانید برای شروع، کدهایی را بخوانید که پیش از این آنها را استفاده نمودهاید؛ مثل پلاگینهای مورد علاقۀتان در وردپرس، یک بهاصطلاح gem زبان روبی که از نظر شما خوب و کاربردی است و یا یک پلاگین جیکوئری. همۀ این موارد انتخابهای خوبی برای یادگیری هستند، زیرا آشنایی قبلی شما با آنها میتواند درک کدها را برای شما آسانتر کند. همچنین به عنوان یک توسعهدهنده، میتوانید اسناد و اجزا جدیدی را به آنها اضافه نموده و به نحوی آنها را توسعه دهید و صرفا یک مصرفکننده نباشید!
کدهایی را بخوانید که شما را تحت تاثیر قرار میدهند: اگر به اپلیکیشن، بازی یا برنامۀ خاصی علاقۀ ویژهای دارید، به احتمال زیاد سورس آن نیز برای شما -به عنوان یک کدنویس- جذاب خواهد بود. بنابراین اگر به سورس کد برنامۀ مورد علاقۀ خود دسترسی دارید، به منظور یادگیری و پیشرفت هرچه سریعتر، حتماً آن را بخوانید.
کدهایی را بخوانید که برای توسعهدهندهٔ آن احترام قائلید: اگر تا به حال در یک پروژۀ اپن سورس کد زده باشید، به احتمال زیاد خیلی زود افرادی نظر شما را به خود جلب نمودهاند، کدهای آنها مورد تحسین شما قرار گرفته و یا حتی شاید حسادت شما را برانگیخته باشند. بنابراین خواندن کدهای این افراد میتواند برای شما جذاب باشد (اگر واقعاً تاکنون به توانایی و مهارت هیچ کدنویسی غبطه نخوردهاید و هیچ کس شما را به حیرت وادار نکرده است، بهتر است دست به کار شده و در میان توسعهدهندگان کدهای عالی و کاربردی به دنبال چنین شخصی بگردید. کسی را بیابید که به نحوی بتواند قهرمان و الگوی شما باشد.)
کدهایی را بخوانید که برای شما قابل درک هستند: اغلب کدخوانهای ماجراجو به سراغ پروژههای بزرگی مانند Ruby on Rails، Drupal و یا jQuery میروند اما توصیۀ ما این است که خواندن چنین پروژههای بزرگی را به بعد موکول کنید، مگر اینکه یک کدخوان باتجربه باشید.
پروژههای بزرگ، اجزا بیشتری هم دارند و بنابراین ممکن است علیرغم تلاش زیاد، موفق به درک همۀ اجزای آن نشده و سردرگم شوید.؛سردرگمی به تدریج باعث ناامیدی خواهد شد و ممکن است برای همیشه خواندن سورس کد را کنار بگذارید. مزیت پروژههای کوچک این است که کل پروژه را میتوانید همزمان در ذهن خود نگه دارید. بنابراین تنها چالش پیش روی شما درک جزئیات پروژه و درس گرفتن از آنها خواهد بود.
چگونه بخوانیم؟
حال که کد مورد نظر خود را برای خواندن انتخاب نمودهاید، سوال این است که «کد را چگونه بخوانیم؟» و از آن مهمتر اینکه «از خواندن این کد قرار است چه چیزی به دست آوریم؟» به طور کلی، برای افزایش بهرهوری در خواندن سورس کد، چند توصیه داریم که عبارتند از:
سعی کنید از طرح کلی پروژه سر در بیاورید: همهٔ پروژهها از اجزائی تشکیل شدهاند و کم یا زیاد بودن این اجزا به بزرگی پروژه بستگی دارد؛ اما در ابتدای خواندن پروژه، هدف اصلی پرداختن به جزئیات آن نیست. سعی کنید در ابتدا نگاهی کلی به پروژه داشته باشید و ساختار آن را درک کنید. هدف از این مرحله این است که با کل پروژه آشنا شده و بخشهای اصلی و ضروریات پروژه را بیابید سپس میتوانید وارد جزئیات شوید.
یافتههای خود را ثبت کنید: در هنگام کدخوانی، منفعل نباشید! به عبارت دیگر، توصیه میکنیم همچنان که به خواندن کدها ادامه میدهید، نظرات خود را به صورت کامنتهایی به سورس کد اضافه نموده و ثبت کنید. نگران نباشید چراکه اصلا نیازی نیست حتماً از همان ابتدا کامنتهای حرفهای بنویسید. شاید در اوایل کار کامنتهای شما چیزی شبیه موارد زیر باشد:
- فکر میکنم این فانکشن پس از «مقدار دهی اولیه» فراخوانی شده است.
- این رابطه (Equation) فلان کار را انجام میدهد؟
- تقریباً مطمئنم که این متغییر پس از خط 17، دیگر کاربردی ندارد.
پس از اینکه درک کاملتری از پروژه به دست آوردید، میتوانید کامنتهای غیرحرفهای خود را حذف نموده و کامنتهای بهتر و دقیقتری بنویسید. کامنتهایی که حتی ممکن است بتواند به بهبود پروژه نیز کمک کند.
از تستها استفاده کنید: امیدواریم که پروژهای که برای خواندن انتخاب نمودهاید، Test Suite داشته باشد. اگر ندارد، میتوانید از این مرحله صرفنظر کنید (یا پروژۀ دیگری را انتخاب کنید که از این ماژول برخوردار باشد.)
وقتی میخواهید کدهای شخص دیگری را بخوانید، Test میتواند بخش بسیار خوبی برای شروع باشد زیرا توسعهدهندهٔ کدها در بخش تست بیان کرده است که انتظار دارد که این کد چه کاری انجام دهد. بعضی تستها اطلاعات زیادی را در اختیار شما قرار میدهند و برخی کمتر. اما مهم نیست تستها چطور نوشته شده باشند، مهم این است که به هر حال درک منظور و هدف توسعهدهنده از تست راحتتر از درک آن از خود کدها است.
همچنان که به خواندن ادامه میدهید، از تستها استفاده کنید و بررسی کنید که آیا کدها کار مورد نظر را به درستی انجام میدهند یا خیر؛ این کار میتواند شما را مطمئن کند که تنظیمات محیط کدنویسی خود را به درستی انجام دادهاید و همچنین برای اعمال تغییرات در کد اصلی به شما اعتماد به نفس میدهد.
اجرا کنید، بخشهایی را تغییر دهید و دوباره اجرا کنید: خواندن به این معنا نیست که چیزی ننویسید یا کاری نکنید. هنگامی حقیقتاً چیزی را میفهمید که اجزا آن را از هم جدا نموده و دوباره سر جای خود قرار دهید. همانطور که در بخش قبل گفتیم، تستها میتوانند به شما در این زمینه کمک کنند. برای تمرین میتوانید کدها را طوری تغییر دهید که درست کار نکنند، چیزی را اضافه کنید، عملکرد کدی را تغییر دهید. شاید با خود بگویید این که دیگر خواندن نیست! اما در واقع این هم خواندن است، مثل خواندن یک داستان ماجراجویانه که در آن خود شما قهرمان داستان هستید و این چیز خوبی است.
در واقع با اینکار، شما به صورت عمدی منجر به ایجاد اکسپشنها میشوید و خواهید دانست که اگر در آینده فلان اکشپشن رخ داد، به احتمال زیاد مربوط به کجای سورس کد میتواند باشد.
فرآیند خواندن را تکرار کنید: وقتی خواندن کدهای یک پروژه تمام شد، خواندن پروژۀ دیگری را شروع نموده و همۀ این مراحل را دوباره تکرار کنید. هر چقدر بیشتر کد بخوانید، کدخوانی شما بهتر شده و بر مفاهیم و ساختارها مسلطتر میشوید و خواهید توانست اینکار را با سرعت بیشتری انجام دهید (دقیقا همانند یک کتابخوان حرفهای!)
از کجا شروع کنیم؟
هر جایی که بتوانید به پروژههای اپن سورس دسترسی داشته باشید، برای این کار مناسب است. به عنوان مثال میتوانید از گیتهاب استفاده کنید. این سایت یافتن پروژههای جدید و کدنویسهای خوب را برایمان آسانتر کرده است. جستجو کنید، پروژۀ مناسب خود را بیابید و کدخوانی را شروع کنید.
نظرات شما عزیزان: