برای اینکه از یک برنامه نویس Mid-Level به یک برنامه نویس Senior تبدیل شوید نیاز است که به تواناییها و تجربیات بسیار زیادی دست پیدا کنید. از آنجایی که توسعهدهندگان Back-End یکی از حیاتیترین قسمتهای توسعه یک اپلیکیشن را بر عهده دارند، بسیار مهم است تا بتوانند در مواجه با چالشهای مختلف به خوبی عمل کرده و بتوانند تسکهای مختلفی را انجام دهند.
همانطور که پیشتر در راکت گفته بودیم، یکی از المانهای بسیار مهم برای تبدیل شدن به یک برنامه نویس سنیور، تجربه کار با سیستمها و مشکلات مختلف است. شما به عنوان یک برنامه نویس سمت سرور باید با مفاهیم پیچیده و مختلف دنیای Back-End آشنا باشید و بتوانید از آنها در مواجه با مشکلات و مسائل مختلف استفاده کنید. برای اینکه درک بهتری از مسیر تبدیل شدن به Senior Developer داشته باشید میتوانید مقاله «چند سال طول میکشد تا سنیور شویم؟» را مطالعه کنید.
در این مطلب از وبسایت راکت قصد داریم شما را با پروژهها و چالشهایی در دنیای توسعه سمت سرور آشنا کنیم که با انجام دادن و حل کردن آنها میتوانید مسیر تبدیل شدن به یک برنامه نویس سمت سرور سنیور را برای خودتان هموارتر کنید. این ۶ پروژه عبارت از موارد زیر است که در ادامه راجع به هر کدام توضیحاتی ارائه خواهیم داد:
- توسعه RESTful API و پیادهسازی اعتبارسنجی و احراز هویت
- زمانبندی تسکها و پیادهسازی Background Jobs با استفاده از یک Job Queue
- وب اپلیکیشن بلادرنگ چت با استفاده از WebSockets
- پیادهسازی معماری میکروسرویس
- خزنده وب
- موتور جستجوگر
پروژه اول: ایجاد RESTful API
مطمئنا ایجاد RESTful API موضوعی نیست که شما حال که میخواهید به یک سنیور تبدیل شوید باید آن را مد نظر بگیرید چرا که این مسئله به سطح جونیور برمیگردد. اما در این پروژه تنها قصد نداریم که یکسری Endpoint ایجاد کنیم! هدف از این پروژه در مرحله اول، شناسایی بهترین ابزار برای توسعه RESTful API در میان Tech Stack خودتان است. برای مثال اگر شما یک توسعه دهنده پایتون هستید، در بین فریمورکها و کتابخانههای پایتون به دنبال یک تکنولوژی سریع و پایدار باشید تا بتوانید با یک رویکرد جدید، یک RESTful API جدید را ایجاد کنید.
همچنین در قدم بعدی نیاز است که با ایجاد سیستمهای احراز هویت و اعتبار سنجی، از EndPointهای خود محافظت کنید. بنابراین هدف این پروژه تنها ایجاد یک REST API ساده و تحویل یکسری داده از طریق قالب JSON نیست. بلکه شما باید تلاش کنید تا با به کارگیری بهترین و پایدارترین ابزارها، یک RESTful API قدرتمند و سازمانی را ایجاد کنید.
پروژه دوم: Task Scheduling
کار با تکنولوژی مانند RabbitMQ یکی از توانمندیهای بسیار مهمیست که یک توسعه دهنده سمت سرور سنیور باشید داشته باشد. شما با استفاده از این تکنولوژی میتوانید فرایندهای اجرایی ناهمزمان یا نامتقارن را پیادهسازی کرده و پردازشهای سنگین را حل کنید.
البته RabbitMQ تنها یکی از سرویسهاییست که امکان ایجاد Job Queue را برای شما فراهم میکند، Kafka یکی دیگر از ابزارهاییست که برای این منظور میتوانید از آن استفاده کنید. هدف کلی این پروژه در نهایت این است که شما بتوانید یک سیستم زمانبندی تسکها را پیادهسازی کنید و در این کار سراغ پردازشهای Background Jobs بروید.
پروژه سوم: اپلیکیشن بلادرنگ چت یا Real-Time Chat Application
یکی از پروژههای چالش برانگیز برای توسعه دهندگان بک-اند ایجاد اپلیکیشنهای بلادرنگ است. دلیل این موضوع نیز این است که در این مسیر شما باید از ابزارهای دیگری بجز فریمورک اصلی خودتان استفاده کنید. اصلیترین این ابزارها نیز یک سرویس مشترک به نام Web Sockets دارند.
خوشبختانه برای بسیاری از زبانهای برنامه نویسی محبوب یک کتابخانه یا فریمورک بهینهسازی شده برای انجام این کار پیادهسازی شده است. برای مثال اگر شما از پایتون استفاده میکنید میتوانید از کتابخانه Django Channels استفاده کنید، توسعه دهندگان جاوا اسکریپت نیز میتوانند از طریق Socket.io این پروژه را پیادهسازی کنند.
پروژه چهارم: معماری میکروسرویس
بیشتر شرکتها و اپلیکیشنهای امروزی از معماری یکپارچه یا Monolith فاصله گرفته و تصمیم دارند تا از معماری میکروسرویس استفاده کنند. این معماری مزیتهای بسیار زیادی را به ارمغان آورده و اپلیکیشنی پایدارتر را ارائه میدهد. اگر قصد دارید به صورت کامل با مزایا و معماری Microservice آشنا شوید مقاله « Monolith یا Microservice - کدام گزینه برای شما بهترین است؟» را مطالعه کنید.
برای پروژه چهارم میتوانید یک وب اپلیکیشن (وبلاگ، فروشگاه، شبکه اجتماعی و...) را براساس معماری میکروسرویس و با استفاده از تکنولوژیهای مرتبط با آن پیادهسازی کنید. همچنین در این مسیر بهتر است کار با داکر را یاد گرفته و در استقرار اپلیکیشن از آن استفاده کنید. مطمئنا پیادهسازی معماری میکروسرویس موضوعات و نکات بسیار زیادی را به شما یاد خواهد داد.
پروژه پنجم: خزنده وب
پروژه پنجم کمی چالش برانگیزتر از پروژههای قبلی است دلیل آن نیز این است که مستقیما این پروژه به توسعه سمت سرور ارتباطی ندارد اما چند نکته مهم در آن وجود دارد که به شما کمک میکند تا با تکنولوژیهای مختلف آشنا شوید.
اگر از زبان برنامه نویسی پایتون یا جاوا اسکریپت استفاده میکنید روند پیادهسازی این پروژه چالش کمتری برای شما خواهد داشت چرا که ابزارهای بسیاری برای این دو زبان در جهت ایجاد چنین پروژهای ساخته شده است. اگر بتوانید یک خزنده وب پیشرفته ایجاد کنید، در مسیر ساخت آن با موضوعاتی مانند Service Worker، CORS و بهینهسازی و امن کردن دیتابیس آشنا میشوید.
پروژه ششم: ایجاد یک موتور جستجوگر
پروژه آخری که به شما معرفی میکنیم نسبتا یک پروژه سخت بوده و پیادهسازی آن میتواند کار مشکلی باشد. برای اینکه یک موتور جستجوگر ایجاد کنید ابتدا یک وبسایت با دادههای زیاد را در نظر بگیرید. برای مثال Stackoverflow. حال با استفاده از پروژه پنجم، سعی کنید کوئریهایی که از کاربران دریافت میکنید را به سمت مرتبطترین دادهها هدایت نمایید.
همچنین اگر به دادههای یک وبسایت و بانک اطلاعاتی آن دسترسی دارید میتوانید در پیادهسازی فرم «جستجو» آن مشارکت کرده و آن را توسعه دهید.
در پایان
برای تبدیل شدن به یک توسعه دهنده ارشد یا سنیور تنها راهکار شما کسب کردن تجربه بیشتر و مواجه با مسائل و چالشهای متفاوت است. هدف از انجام چنین کارهایی این است که تجربه بیشتری کسب کرده و در یک شرکت یا تیم برنامه نویسی بتوانید برای هر مسئله یا مشکلی یک راهحل داشته باشید.
در این مقاله از وبسایت راکت ما شش ایده برای ایجاد پروژههایی را مطرح کردیم که به شما کمک میکند به سنیور شدن در توسعه سمت سرور نزدیکتر شوید.
دیدگاه و پرسش
در حال دریافت نظرات از سرور، لطفا منتظر بمانید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید