همۀ ما دوست داریم در کاری که انجام میدهیم به خوبی رشد کنیم و کسانی هم که در حوزهٔ طراحی و توسعهٔ نرمافزار -از طراحی وبسایت گرفته تا اپ موبایل و غیره- فعالیت میکنند، از این قاعده مستثنی نیستند اما نکتهای که به خوبی باید به آن توجه کرد این است که برای پیشرفت در هر حرفهای، نیاز داریم تا یکسری به اصطلاح Best Practice (قوانین و راهکارهای بهینهٔ استفاده از چیزی) همان حرفه را فرا گرفته و راهی را دنبال کنیم که افراد فعال -و در عین حال- موفق آن حوزه پیمودهاند. در همین راستا، در این مقاله قصد داریم تا یکسری استراتژیهای کاربری را معرفی کنیم تا بتوانید با دنبال کردن آنها، مهارتهای خود را افزایش داده و به توسعهدهندهٔ وب به مراتب بهتری مبدل شوید.
در آن واحد صرفاً روی یک زبان برنامهنویسی تمرکز کنید
اگر به طراحی و ساخت وبسایت مشغول هستید، چند زبان مختلف وجود دارد که باید آنها را یاد بگیرید. با در نظر گرفتن ارتباط متقابل بین این زبانها، ممکن است وسوسه شوید تا همۀ آنها را به طور همزمان یاد بگیرید. گرچه این مسئله تا حدی اجتنابناپذیر است، اما اگر واقعاً میخواهید در کمترین زمان، بیشترین میزان پیشرفت را داشته باشید، توصیه میکنیم فقط روی یک مهارت مشخص در آن واحد تمرکز کنید.
میخواهید کار با CSS را بهتر یاد بگیرید؟ پس تمرکز خود را روی همان بگذارید؛ سعی کنید فقط با استفاده از استایل، طرحهای مختلفی را در یک فایل HTML ایجاد کنید. برای تمرین بیشتر، میتوانید لیستی از طرحهای دلخواه خود را تهیه کرده و روی کار با آنها تمرکز کنید. مثلاً اگر کار با CSS2 برای شما راحت است اما میخواهید قابلیتهای CSS3 را بهتر بشناسید، میتوانید ویژگیهای CSS3 را مطالعه کرده و روی آنها کار کنید. با هر کدام از آنها کار کنید و ببینید چه محدودیتها و قابلیتهایی در مرورگرهای مختلف دارند.
دوست دارید در کار با وردپرس حرفهای شوید؟ تعداد زیادی فایل آموزشی دربارهٔ این سیستم مدیریت محتوای محبوب وجود دارد. میخواهید ویرایش عکس روی سرور را بیشتر یاد بگیرید؟ برای این مورد هم آموزشهای متعددی روی وب وجود دارد فقط کافی است این آموزشها را پیدا کرده و دست به کد شوید!
به طور کلی، آموزشهای مختلف مانند CSS و HTML یا هر زبان دیگر را همزمان انجام ندهید تا تمرکز خود را از دست ندهید؛ به عبارت دیگر، یکی را انتخاب کنید و ادامه دهید تا ملکهٔ ذهنتان شود، سپس سراغ بعدی بروید.
روش و منطق کدنویسی خود را به صورت کامنت بنویسید
در کدنویسی، اصول و قواعد زیادی وجود دارد که به آن پایبند هستیم. یکی از این اصول، این است که 95٪ کدنویسی را منطق تشکیل میدهد. یک اصل دیگر این است که منطق همیشه ثابت است؛ چه در صنعت توسعهٔ نرمافزار و چه در زندگی روزمره! به عبارت دیگر، اگر چیزی را بتوان به زبان ماشین نوشت، پس میشود همان مفهوم را به زبان محاوره مثل انگلیسی یا فارسی نیز نوشت.
مثلاً فرض کنید میخواهیم یک فانکشن بنویسیم که بسته به ساعت، یک چیزی را قفل یا باز کند (دلیلش را نپرسید!) به جای اینکه مستقیم برویم سراغ نوشتن سورسکد فانکشن مد نظر، میتوانیم یک گام به عقب رفته و منطق آن فانکشن را به زبان ساده در قالب کامنتی بنویسیم؛ به طور مثال:
/*
* Function: Lock On Time
* This function will accept two time values, indicating
* the range through which it should return an unlocked status.
*/
// Create a new data object
// Using the data object, get the current time
// IF the current time falls within the range passed to the function
// Return false; meaning that we are currently unlocked
// ELSE
// Return true – meaning that we are currently locked.
حال، یک ساختار منطقی کامل برای فانکشن مد نظر خود داریم که تقریباً شبیه به یک نقشۀ اولیه برای ساختن مثلاً یک خانه است؛ از اینجای کار به بعد، میتوانیم با استفاده از راهنمایی کامنتها، کدنویسی را شروع کنیم.
البته این یک مثال خیلی ساده بود و این در حالی است که میتوانیم از این ترفند برای ساختن فانکشنهای بسیار پیچیدهتر نیز استفاده کنیم. با این روش، میتوانیم تمام اجزای منطق را در نظر بگیریم و اصلاحات لازم را قبل از نوشتن کد انجام دهیم. تجربه نشان داده که این روش، عادت بسیار خوبی برای جلوگیری از تولید باگ است (برای آشنایی بیشتر با اصطلاح Bug، به مقالهٔ آشنايى با دريابان گريس مارى هوپر، کسی که برای اولین بار اصطلاح Bug را باب کرد! مراجعه نمایید).
یک مزیت دیگر این روش، این است که کد خود را در بین کامنتها قرار میدهید و بدون نیاز به کامنت و توضیح دادن مجدد مراحل کدنویسی، دیگران خیلی راحت میتوانند منطق کدنویسی شما را متوجه شوند. یا حتی اگر خودتان مجبور شوید، پس از ماهها یا سالها دوباره روی همان فانکشن کار کنید، مشکلی در درک منطق به کار رفته نخواهید داشت.
پلاگینها، سورس کد، و کدهای اپنسورس را به دقت بررسی کنید
وب -بهویژه در حوزهٔ طراحی و توسعه- فضایی باز است. برای کسی که بخواهد در کدنویسی قویتر شود، این خاصیت وب ارزش بسیار زیادی دارد. مثلاً اگر با HTML فقط در سطح ابتدایی آشنا هستید، میتوانید هر نمونهای که رایگان در اینترنت پیدا میکنید را دانلود کنید، یا مارکاپ هر سایتی که نظر شما را به خود جلب میکند، بررسی کنید. با تگها و ساختار فایلها بازی کنید تا آنها را بهتر بفهمید. کدها را جابهجا کنید و ببینید با تغییر کد یک استایل، چه اتفاقی میافتد.
علاوه بر این، شدیداً توصیه میکنیم در کنار این آزمایشها و آزمون و خطاها، به منابع معتبری که در ارتباط با قوانین و راهکارهای بهینهٔ استفاده از زبانهای مختلف نوشته شدهاند نیز مراجعه کرده تا از نهادینه شدن عادتهای بد کدنویسی جلوگیری کنید (این روش برای زبانهایی مانند JavaScript یا PHP مناسبتتر است، که از نظر وسعت و منطق پیچیدهتر از HTML و CSS هستند).
به طور مثال، یک سیستم مدیریت محتوا مانند WordPress عمدتاً از اسکریپتهای مختلف به زبان PHP ساخته شده است. این پلتفرم، از یک معماری وسیع و قدرتمند برخوردار است که میتوانید با دانلود و نصب پلاگینهای مختلف با قابلیتهای جالب، کاربردهای اصلی آن را توسعه دهید.
خوشبختانه WordPress و بسیاری از پلاگینهای آن کاملاً اپنسورس هستند؛ یعنی به سورسکد آنها دسترسی کامل دارید. پس از این موقعیت استفاده کنید و هر طوری که میخواهید با کدها بازی کنید و آنها را تغییر دهید. این یک فرصت عالی دیگر برای یادگیری است (اگر از علاقمندان به سیاماس وردپرس هستید، توصیه میکنیم مقالهٔ با استفاده از این پلاگینها، از یک سایت وردپرسی حرفهای برخوردار شوید را از دست ندهید زیرا در این مقاله به افزونههایی که هر وبسایت وردپرسی باید از آنها برخوردار باشد، اشاره شده است).
نصیحت آخر برای چنین عادت خوبی اینکه هرگز ساختارها و ترفندهایی که در کد دیگران میبینید را قطعی، استاندارد و وحی مُنزل در نظر نگیرید! صرفاً کد دیگران را کپی نکنید، بلکه سعی کنید آنها را بفهمید. همیشه بپرسید چرا کدها این شکلی هستند و همیشه کد را در ارتباط با استانداردها و فرآیندهای مورد تأیید آن زبان در نظر بگیرید تا دچار عادتهای بد نشوید و همواره این نکته را هم مد نظر داشته باشید که تمامی برنامهنویسان -فارغ از اینکه روی چه پروژهای کار میکنند- میتوانند مرتکب اشتباه شوند!
کتاب بخوانید
با اینکه اطلاعات زیادی در وبلاگهای مختلف -مثل همین سکان آکادمی- در اینترنت وجود دارد، اما هنوز هیچ چیز مثل خواندن یک کتاب، اثربخش نیست. وبلاگها برای مقالات و آموزش دربارۀ موضوعات خاص و ترفندهای کوتاه عالی هستند، اما برای ایجاد یک پایهٔ قوی در موضوع وسیعتر، هیچ چیزی جای یک کتاب خوب را نمیگیرد (به صفت خوب دقت کنید).
به طور مثال، برای یادگیری CSS شاید بتوان تکهتکه و آهسته از وبلاگهای مختلف اطلاعاتی را جمعآوری کرده و یاد بگیریم تا یک تصویر کلی و جامع از CSS داشته باشیم اما این کار زمان زیادی میبرد و به همین دلیل، باید به دنبال یک راه مؤثرتر بود و این راه مؤثرتر چیزی نیست جز انتخاب یک کتاب مرجع در زمینهٔ CSS. به طور کلی، بهترین راه برای یاد گرفتن یک تکنولوژی جدید از صفر، خواندن یک کتاب خوب است!
آزمایش کنید
آخرین عادت پیشنهادی ما به شما این است که آزمایش و امتحان کنید و از نتیجهٔ آن لذت ببرید تا ببینید خودتان به تنهایی به چه ایدههایی میرسید. در حال حاضر، این روش در کار با CSS3 خیلی رایج شده است؛ طراحان از نهایت قابلیتهای این تکنولوژی استفاده میکنند تا مشخص شود واقعاً تا چه حد توانایی دارند و در چه نوع پروژههایی میتوان از این قابلیتها استفاده کرد.
توجه داشته باشیم که صرفاً خواندن کتاب کمکی به ما در درک یک موضوع نمیکند بلکه باید آموختههای خود را به صورت عملی نیز تست کنیم. خواه تصمیم به یادگیری زبانهایی همچون HTML یا CSS گرفته باشیم و خواه قصد آموختن زبانهایی همچون JS یا PHP را داشته باشیم، تست کردن کمک زیادی به ما در درک موضوع خواهد کرد. مثلاً با خواندن مقالهای در یک وبلاگ یا فصلی از یک کتاب، به خوبی میتوان متوجه تفاوتهای کلیدواژگانی همچون public ،private و protected در زبان PHP شد اما تا در عمل آنها را تست نکنیم، ماهیت واقعی آنها را به خوبی درک نخواهیم کرد.
کلام آخر
این بود پنج عادت مختلف برای تقویت قدرت کدنویسی وب؛ گرچه ممکن است همۀ موارد مورد بحث برای همهٔ برنامهنویسان، طراحان و توسعهدهندگان مناسب نباشند، اما امیدواریم حداقل یکی از این موارد به حرفهایتر شدن شما کمک کند. به خاطر داشته باشید این فضایی که به آن وب میگویند، همیشه در حال رشد و تکامل است. تبدیل شدن به یک برنامهنویس خوب، مستلزم یک عمر یادگیری و رشد است!
حال نوبت به نظرات شما میرسد. شما چه عادتهای دیگری برای دولوپرهای وب پیشنهاد میکنید و آیا فکر میکنید موارد طرح شده در این مقاله، کاربردی هستند یا خیر؟ نظرات، دیدگاهها و تجربیات خود را با سایر کاربران سکان آکادمی به اشتراک بگذارید.