آیا می‌دانستید که کدخوانی هم به اندازهٔ کدنویسی باعث پیشرفت شما در برنامه‌نویسی می‌شود؟

یکی از بدیهی‌­ترین راه­‌ها برای این‌­که در کدنویسی پیشرفت کنید، «کدنویسی» است؛ به عبارت دیگر، باید تا می‌­توانید کد بزنید اما اگر می‌­خواهید پیشرفت خیلی سریع­‌تری داشته باشید، باید علاوه بر کدنویسی، «کدخوانی» را هم به برنامۀ آموزشی خود اضافه کنید! یعنی کدهایی که دیگران نوشته‌­اند را بخوانید. این مقاله دربارۀ این است که چه بخوانیم، چگونه بخوانیم، و هنگام خواندن کدها به دنبال چه باشیم؟ در ادامه با سکان آکادمی همراه باشید.

اگر تا‌به‌حال کدهای دیگران را نخوانده‌اید، توصیه می‌کنیم پس از مطالعۀ این مقاله، کدخوانی را شروع کنید و اگر قبلاً تجربهٔ کدخوانی داشته‌اید این مقاله به شما کمک می‌کند تا از تلاش خود نتیجۀ بهتر و موثرتری بگیرید.

چه بخوانیم؟
این‌که چه بخوانیم، تصمیم بزرگ و سختی است. ما نمی‌توانیم مستقیماً به شما توصیه کنیم که شروع به خواندن فلان سورس کد کنید! چراکه همه چیز بستگی به خود شما دارد اما در عین حال می‌توانیم دستورالعمل‌هایی ارائه کنیم تا با دنبال کردن آن‌ها، بتوانید تصمیم بگیرید که چه سورس کدی را برای مطالعه انتخاب کنید.

کدهایی را بخوانید که به آن‌ها متکی هستید: می‌توانید برای شروع، کدهایی را بخوانید که پیش از این آن‌ها را استفاده نموده‌اید؛ مثل پلاگین‌های مورد علاقۀ‌تان در وردپرس، یک به‌اصطلاح gem زبان روبی که از نظر شما خوب و کاربردی است و  یا یک پلاگین جی‌کوئری. همۀ این موارد انتخاب‌های خوبی برای یادگیری‌ هستند، زیرا آشنایی قبلی شما با آن‌ها می‌تواند درک کدها را برای شما آسان‌تر کند. همچنین به عنوان یک توسعه‌دهنده، می‌توانید اسناد و اجزا جدیدی را به آن‌ها اضافه نموده و به نحوی آن‌ها را توسعه دهید و صرفا یک مصرف‌کننده نباشید!

کدهایی را بخوانید که شما را تحت تاثیر قرار می‌دهند: اگر به اپلیکیشن، بازی یا برنامۀ خاصی علاقۀ ویژه‌ای دارید، به احتمال زیاد سورس آن نیز برای شما -به عنوان یک کدنویس- جذاب خواهد بود. بنابراین اگر به سورس کد برنامۀ مورد علاقۀ خود دسترسی دارید، به منظور یادگیری و پیشرفت هرچه سریع‌تر، حتماً آن را بخوانید.

کدهایی را بخوانید که برای توسعه‌دهندهٔ آن احترام قائلید: اگر تا به حال در یک پروژۀ اپن‌ سورس کد زده باشید، به احتمال زیاد خیلی زود افرادی نظر شما را به خود جلب نموده‌اند، کدهای آن‌ها مورد تحسین شما قرار گرفته و یا حتی شاید حسادت شما را برانگیخته باشند. بنابراین خواندن کدهای این افراد می‌تواند برای شما جذاب باشد (اگر واقعاً تاکنون به توانایی و مهارت هیچ کدنویسی غبطه نخورده‌اید و هیچ کس شما را به حیرت وادار نکرده است، بهتر است دست به ‌کار شده و در میان توسعه‌دهندگان کدهای عالی و کاربردی به دنبال چنین شخصی بگردید. کسی را بیابید که به نحوی بتواند قهرمان و الگوی شما باشد.)

کدهایی را بخوانید که برای شما قابل درک هستند: اغلب کدخوان‌های ماجراجو به سراغ پروژه‌های بزرگی مانند Ruby on Rails، Drupal و یا jQuery می‌روند اما توصیۀ ما این است که خواندن چنین پروژه‌های بزرگی را به بعد موکول کنید، مگر این‌که یک کدخوان باتجربه باشید.

پروژه‌های بزرگ، اجزا بیشتری هم دارند و بنابراین ممکن است علیرغم تلاش زیاد، موفق به درک همۀ اجزای آن نشده و سردرگم شوید.؛سردرگمی به تدریج باعث ناامیدی خواهد شد و ممکن است برای همیشه خواندن سورس کد را کنار بگذارید. مزیت پروژه‌های کوچک این است که کل پروژه را می‌توانید همزمان در ذهن خود نگه دارید. بنابراین تنها چالش پیش روی شما درک جزئیات پروژه و درس گرفتن از آن‌ها خواهد بود.

چگونه بخوانیم؟
حال که کد مورد نظر خود را برای خواندن انتخاب نموده‌اید، سوال این است که «کد را چگونه بخوانیم؟» و از آن مهم‌تر این‌که «از خواندن این کد قرار است چه چیزی به دست آوریم؟» به طور کلی، برای افزایش بهره‌وری در خواندن سورس کد، چند توصیه داریم که عبارتند از:

سعی کنید از طرح کلی پروژه سر در بیاورید: همهٔ پروژه‌ها از اجزائی تشکیل شده‌اند و کم یا زیاد بودن این اجزا به بزرگی پروژه بستگی دارد؛ اما در ابتدای خواندن پروژه، هدف اصلی پرداختن به جزئیات آن نیست. سعی کنید در ابتدا نگاهی کلی به پروژه داشته باشید و ساختار آن را درک کنید. هدف از این مرحله این است که با کل پروژه آشنا شده و بخش‌های اصلی و ضروریات پروژه را بیابید سپس می‌توانید وارد جزئیات شوید.

یافته‌های خود را ثبت کنید: در هنگام کدخوانی، منفعل نباشید! به عبارت دیگر، توصیه می‌کنیم همچنان که به خواندن کدها ادامه می‌دهید، نظرات خود را به صورت کامنت‌هایی به سورس کد اضافه نموده و ثبت کنید. نگران نباشید چراکه اصلا نیازی نیست حتماً از همان ابتدا کامنت‌های حرفه‌ای بنویسید. شاید در اوایل کار کامنت‌های شما چیزی شبیه موارد زیر باشد:

- فکر می‌کنم این فانکشن پس از «مقدار دهی اولیه» فراخوانی شده است.  
- این رابطه (Equation) فلان کار را انجام می‌دهد؟
- تقریباً مطمئنم که این متغییر پس از خط 17، دیگر کاربردی ندارد.

پس از این‌که درک کامل‌تری از پروژه به دست آوردید، می‌توانید کامنت‌های غیرحرفه‌ای خود را حذف نموده و کامنت‌های بهتر و دقیق‌تری بنویسید. کامنت‌هایی که حتی ممکن است بتواند به بهبود پروژه نیز کمک کند.

از تست‌ها استفاده کنید: امیدواریم که پروژه‌ای که برای خواندن انتخاب نموده‌اید، Test Suite داشته باشد. اگر ندارد، می‌توانید از این مرحله صرف‌نظر کنید (یا پروژۀ دیگری را انتخاب کنید که از این ماژول برخوردار باشد.)

وقتی می‌خواهید کدهای شخص دیگری را بخوانید، Test می‌تواند بخش بسیار خوبی برای شروع باشد زیرا توسعه‌دهندهٔ کدها در بخش تست بیان کرده است که انتظار دارد که این کد چه کاری انجام دهد. بعضی تست‌ها اطلاعات زیادی را در اختیار شما قرار می‌دهند و برخی کمتر. اما مهم نیست تست‌ها چطور نوشته شده باشند، مهم این است که به هر حال درک منظور و هدف توسعه‌دهنده از تست راحت‌تر از درک آن از خود کدها است.

همچنان که به خواندن ادامه می‌دهید، از تست‌ها استفاده کنید و بررسی کنید که آیا کدها کار مورد نظر را به درستی انجام می‌دهند یا خیر؛ این کار می‌تواند شما را مطمئن کند که تنظیمات محیط کدنویسی خود را به درستی انجام داده‌اید و همچنین برای اعمال تغییرات در کد اصلی به شما اعتماد به نفس می‌دهد.

اجرا کنید، بخش‌هایی را تغییر دهید و دوباره اجرا کنید: خواندن به این معنا نیست که چیزی ننویسید یا کاری نکنید. هنگامی حقیقتاً چیزی را می‌فهمید که اجزا آن را از هم جدا نموده و دوباره سر جای خود قرار دهید. همان‌طور که در بخش قبل گفتیم، تست‌ها می‌توانند به شما در این زمینه کمک کنند. برای تمرین می‌توانید کدها را طوری تغییر دهید که درست کار نکنند، چیزی را اضافه کنید، عملکرد کدی را تغییر دهید. شاید با خود بگویید این که دیگر خواندن نیست! اما در واقع این هم خواندن است، مثل خواندن یک داستان ماجراجویانه که در آن خود شما قهرمان داستان هستید و این چیز خوبی است.

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

فرآیند خواندن را تکرار کنید: وقتی خواندن کدهای یک پروژه‌ تمام شد، خواندن پروژۀ دیگری را شروع نموده و همۀ این مراحل را دوباره تکرار کنید. هر چقدر بیشتر کد بخوانید، کدخوانی شما بهتر شده و بر مفاهیم و ساختارها مسلط‌تر می‌شوید و خواهید توانست این‌کار را با سرعت بیشتری انجام دهید (دقیقا همانند یک کتاب‌خوان حرفه‌ای!)

از کجا شروع کنیم؟
هر جایی که بتوانید به پروژه‌های اپن سورس دسترسی داشته باشید، برای این کار مناسب است. به عنوان مثال می‌توانید از گیت‌هاب استفاده کنید. این سایت یافتن پروژه‌های جدید و کدنویس‌های خوب را برایمان آسان‌تر کرده است. جستجو کنید، پروژۀ مناسب خود را بیابید و کدخوانی را شروع کنید.

نظر شما چیست؟ آیا تا به حال از خواندن کدها به عنوان ابزاری برای پیشرفت استفاده کرده‌اید؟ اخیراً کد خوب و جالبی را خوانده‌اید؟ خواندن کدهای خاصی را به دیگران توصیه می‌کنید؟ نظرات و تجربه‌های خود را با ما و سایر کاربران سکان آکادمی به اشتراک بگذارید.

One Sure-Fire Way to Improve Your Coding

0


رائفه خلیلی

کارشناس‌ارشد تکتونیک هستم اما بیش از هرچیز، به نقاشی و تصویرسازی علاقمندم و در کنار اون‌ها، عاشق ترجمه و برنامه‌نویسی و به تازگی هم شروع به یادگیری زبان برنامه‌نویسی جاوا کرده‌ام و امیدوارم در آینده‌ای نه‌ چندان‌ دور، به تسلط خوبی در این زمینه دست یابم.






  • بهزاد مرادی در تاریخ: 1395/12/02

    سلام
    ممنون از شما سرکار خانم خلیلی عزیز،
    جالبه که در بحث آموزش زبان‌های زنده هم همچون زبان انگلیسی، برخی اساتید بر این باورند که از چهار مهارت اصلی Listening, Speaking, Reading و Writing، دو مهارت هستند که برای دو مهارت دیگر نقش کلیدی‌تری دارند که عبارتند از Listening برای Speaking و Reading برای Writing.
    به عبارت دیگر، اگر ما سرمایه‌‌‌گذاری بیشتری روی دو مهارت کلیدی کنیم، دو مهارت دیگر با سرعت بیشتری پیشرفت خواهند کرد.
    در کدنویسی هم من اعتقاد دارم علاوه بر کدخوانی، باید به نحوهٔ فولدر اسکتراکچر، نامگذاری، کامنت‌گذاری و غیره هم دقت کرد تا در نهایت سورس کد ما «بوی حرفه‌ای» دهد
    ارادت

    رائفه خلیلی در تاریخ: 1395/12/02

    سلام.
    ممنون از شما.
    بله، همینطوره. در یادگیری هر زبانی (چه زبان های انسانی و چه زبان های برنامه نویسی) و کلاً در یادگیری هر موضوعی، نمی توان یک بعدی عمل کرد. چون ابعاد مختلف هر موضوع با هم مرتبط هستند.

  • amin در تاریخ: 1395/12/02

    با سلام و احترام

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

    رائفه خلیلی در تاریخ: 1395/12/03

    سلام.
    موجب خوشحالی ماست که این مقاله مورد توجه شما قرار گرفته.

  • hosein در تاریخ: 1395/12/04

    من که دارم سورس وردپرس را میخونم انشالله موفق بشم البته دارم روی کتاب های انگلیسی و پیشرفته php نیز سرمایه گذاری می کنم

    رائفه خلیلی در تاریخ: 1395/12/05

    موفق باشید ان شاءالله.

از طریق این فرم، می توانید بدون ثبت نام نظر دهید و یا اگر قبلا ثبت نام کرده اید، با ورود ناحیه ی کاربری می توانید علاوه بر ثبت نظر، به مدیریت نظرات خود نیز بپردازید.
(فیلد اجباری)
(فیلد اجباری)
(فیلد اجباری)
(فیلد اجباری)