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

فهرست مطالب این نوشته

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

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

نقشه راه برنامه نویسی بک اند چیست؟

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

اهداف نقشه راه برنامه نویسی بک اند را در ادامه آورده‌ایم.

  • نقشه راه برنامه نویسی بک اند به شما توصیه می‌کند تا زبان‌های برنامه‌نویسی محبوبی نظیر پایتون، جاوا، جاوا اسکریپت و غیره را یاد بگیرید و همچنین با پایگاه‌های داده‌هایی همچون MySQL ،PostgreSQL و MongoDB آشنا شوید.
  • نقشه راه بک اند همچنین، روی اهمیت آموختن فریمورک‌های مخصوص وب نظیر جنگو، Spring Boot و Express.js تأکید دارد تا به‌کمک آن‌ها بتوانید وب‌اپلیکیشن بهینه و مقیاس‌پذیری را توسعه دهید.
  • نقشه راه برنامه‌نویسی بک‌اند، افزون بر مهارت‌های فنی و تخصصی اشاره شده، الزام آشنایی و درک روش‌های دِوآپس نظیر کانتینرسازی، یکپارچه‌سازی مداوم و استقرار پیوسته یا «CI/CD» و «زیرساخت به‌عنوان کد» یا «IaC» را بیان می‌کند.
  • در آخر، می‌توانیم بگوییم که نقشه راه بک اند اهمیت دانستن مفاهیم امنیتی و روش‌های اطمینان از امن بودن و یکپارچگی داده‌ها و سیستم‌ها را برای شما بر جسته می‌کند.
توسعه دهنده بک‌اند در حال کدنویسی

نقشه راه برنامه نویسی بک‌اند با فرادرس

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

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

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

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

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

آشنایی با اصول پایه ای

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

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

دانستن راهکارهای دوآپس نظیر کانتیرسازی و CI/CD و مفاهیم امنیتی مانند رمزنگاری و احراز هویت برای در امان نگه داشتن داده‌های کاربر نیز اهمیت زیادی دارد. این موارد به کمک شما می‌آیند تا اصول مهم برنامه‌نویسی بک‌اند را به‌خوبی درک کنید.

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

یادگیری نحوه کار وب یا اینترنت

فعالیت‌های مربوط به وب شامل مواردی نظیر آشنایی با فناوری‌ها و پروتکل‌های مهمی می‌شود که ارتباطات و تبادل داده‌ها بین وب‌سرور‌ها و کلاینت‌ها را امکان‌پذیر می‌سازد. مواردی نظیر URL-ها، پروتکل HTTP، «سامانه نام دامنه» یا DNS و مرورگرهای وب – همچون گوگل‌کروم، موزیلا فایرفاکس، سافاری، مایکروسافت بینگ و غیره – از همین موارد محسوب می‌شوند.

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

آموختن مفاهیم بنیادین علوم کامپیوتر

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

توسعه دهنده اپلیکیشن در مقابل چند مانیتور

برای تسط بیشتر و تمرین عملی این مفاهیم می‌توانید از فیلم‌های آموزش آورده شده در ادامه استفاده کنید.

به افرادی که در پی یافتن شغلی در حوزه توسعه وب‌اپلیکیشن‌ها هستند و می‌خواهند در این حوزه به فعالیت بپردازند توصیه می‌شود تا به این زمینه‌ها مسلط باشند زیرا این موارد جزو ابزارهای اصلی مورد نیاز برای حل مسائل پیچیده و توسعه سیستم‌های نرم‌افزاری مؤثر و مقیاس‌پذیر محسوب می‌شوند.

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

یادگیری زبان های برنامه نویسی و فریمورک های بک اند

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

  • پایتون
  • جاوا
  • PHP
  • روبی
  • جاوا اسکریپت
  • سی‌شارپ

در ادامه، بیشتر با زبان‌های برنامه‌نویسی گفته شده و همچنین فریمورک‌هایی که برای برنامه نویسی بک‌اند ارائه می‌دهند، آشنا خواهید شد.

برنامه نویسی بک اند با پایتون

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

پایتون، موارد استفاده مختلفی نظیر ماشین لرنینگ، اتوماسیون کارها، تحلیل داده‌ها، توسعه وب‌سایت‌ها و تست نرم‌افزار را شامل می‌شود. Python همچنین به‌عنوان یک زبان‌ برنامه‌نویسی می‌تواند با هدف پردازش داده‌ها، ذخیره، بازیابی یا به‌روزرسانی اطلاعات در سیستم مدیریت پایگاه داده، مسیریابی URL-ها و تست برنامه‌ها مورد استفاده قرار گیرد.

پایتون یکی از بهترین انتخاب‌ها در نقشه راه برنامه نویسی بک اند برای برنامه‌نویسان این حوزه است و با به‌کارگیری پایتون، اجرای راهکارهای مدرن برنامه‌نویسی ساده می‌شود.

توسعه دهنده در حال فکر به حل مسئله کدنویسی

از دلایلی که که کسب و کارها، زبان پایتون را برای توسعه بک‌اند خود انتخاب می‌کنند می‌توان به موارد آورده شده در ادامه اشاره کرد.

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

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

توسعه‌دهندگان نرم‌افزار که در حال یادگیری با نقشه راه برنامه نویسی بک اند هستند این زبان را در توسعه وب برای قسمت سمت سرور یا بک‌اند یک وب‌سایت یا وب‌اپلیکیشن به‌کار می‌برند. از فریمورک‌های شناخته شده زبان برنامه‌نویسی پایتون برای توسعه وب می‌توان به Django و Flask اشاره کرد.

فریمورک جنگو برای برنامه نویسی بک اند با پایتون

«جنگو» (Django) یکی از فریمورک‌های معروف پایتون برای توسعه بک‌اند وب‌سایت است که روی یک وب‌سرور اجرا می‌شود. این فریمورک رایگان و اپن سورس بر مبنای الگوی معماری MTV یا «مدل-الگو-نماها» (Model–Template–Views) کار می‌کند و توسط بنیاد نرم‌افزاری جنگو نگهداری می‌شود.

برنامه نویس و لپتاپ

هدفی که جنگو در نقشه راه برنامه نویسی بک اند به دنبال آن است، تسهیل فرایند ساخت سایت‌های پیچیده‌ و شامل پایگاه داده است. تأکید این فریمورک روی مواردی نظیر قابلیت استفاده دوباره و «قابلیت اتصال» (Pluggability) کامپوننت‌ها، کدهای کمتر، اتصال ضعیف، توسعه سریع و همچنین اصل برنامه‌نویسی «خودت را تکرار نکن» یا DRY است.

پایتون در کل این فرایند حتی برای تنظیمات، فایل‌ها و مدل‌های داده‌ای، مورد استفاده قرار می‌گیرد. جنگو همچنین رابط مدیریتی – قابل انتخابی – را شامل ایجاد، به‌روز‌رسانی، حذف و خواندن داده‌ها برای شما فراهم کرده که با مدل‌های مدیریتی پیکربندی می‌شود.

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

فریمورک فلسک برای برنامه نویسی بک اند با پایتون

«فلسک» (Flask) میکروفریمورکی برای توسعه وب محسوب می‌شود که بر مبنای پایتون ایجاد شده است. به‌این دلیل جزو میکروفریمورک‌ها دسته‌بندی می‌شود که به کتابخانه یا ابزار مخصوصی نیاز ندارد. فلسک فاقد هرگونه لایه انتزاعی پایگاه داده، اعتبارسنجی فرم یا سایر مؤلفه‌هایی است که کتابخانه‌های شخص ثالث موجود فراهم می‌کنند. با این وجود، فلسک از افزونه‌هایی پشتیبانی می‌کند که توانایی افزودن امکانات کاربردی را دارند. منظور، افزونه‌هایی نظیر ORM، اعتبارسنجی فرم، مدیریت آپلود‌ها، تکنولوژی‌های گوناگون احراز هویت و ابزارهای رایج مرتبط با فریمورک است.

اپلیکیشن‌هایی نظیر Pinterest و LinkedIn از میکروفریمورک فلسک استفاده کرده‌اند.

در فیلم آموزش میکروفریمورک فلسک در پایتون و طراحی وب اپلیکیشن با Flask در فرادرس ضمن آشنایی با این فریمورک، مباحثی نظیر Template ،Jinja ،Method، کوکی‌‌ها و جلسات، پایگاه داده‌ SQLite و غیره را به‌صورت عملی یاد خواهید گرفت.

برنامه نویسی بک اند با جاوا

جاوا، زبان برنامه‌نویسی دیگری برای بک‌اند است که برای توسعه سمت سرور وب‌اپلیکيشن‌های بزرگ، اپ‌های موبایلی و غیره مورد استفاده قرار می‌گیرد. یکی از مهم‌ترین مزیت‌های جاوا، کاربردهای زیاد آن است که این زبان را به یکی از بهترین‌ها برای پروژه‌های نیازمند به بهره‌وری بالا و تغییرات سریع تبدیل کرده است.

در ادامه، عناوین برخی کارها را فهرست کرده‌ایم که جاوا برای انجام آن‌ها گزینه مناسبی است.

  • ساخت وب‌اپلیکیشن‌های بزرگ و پیچیده
  • توسعه اپلیکیشن‌های ابری توسعه‌پذیر
  • برنامه‌نویسی بک‌اند اپ‌های موبایل
  • ایجاد چت‌بات‌ها و سایر ابزارهای بازاریابی آنلاین
  • دستگاه‌های سیستم اینترنت اشیا و هوش مصنوعی

خصوصیات زبان جاوا را در ادامه آورده‌ایم.

  • چندمنظوره بودن
  • کاربرپسند بودن
  • قدرت
  • انعطاف‌پذیری
  • کامیونیتی بزرگ
  • اپن سورس بودن

زبان برنامه‌نویسی جاوا به‌دلیل چند‌منظوره، مقیاس‌پذیر و قدرتمند بودن و همچنین سرعت بالا، انتخاب رایجی برای توسعه بک‌اند محسوب می‌شود. از نمونه فریمورک‌هایی که توسط این زبان برای ساخت وب‌اپلیکیشن‌ها ارائه شده می‌توان مواردی نظیر اسپرینگ، Struts، هایبرنِیت، آپاچی و JSF را نام برد.

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

برنامه نویسی بک اند با PHP

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

بر خلاف زبان‌های فرانت‌اند – که روی کلاینت اجرا می‌شوند – زبان PHP روی سرور راه‌اندازی شده و هنگام ساخت بک‌اند وب‌سایت‌ها، قابلیت برقراری ارتباط با پایگاه داده را فراهم می‌کند. وقتی‌که یک سرور، اسکریپتی را دریافت می‌کند، درخواست را پردازش کرده و نتیجه یا خروجی را در مرورگر و در قالب سند HTML به کاربر نمایش می‌دهد. با تلفیق SQL و این زبان، شما می‌توانید اطلاعات را درون پایگاه داده خود ذخیره، بازیابی یا به‌روزرسانی کنید. و با این کار – نمایش اطلاعات از پایگاه داده در مرورگر – وب‌سایت خود را داینامیک کنید.

کدنویسی درون لپتاپ توسط توسعه دهنده جوان

در ادامه، برخی از خصوصیات PHP را بیان کرده‌ایم.

  • مناسب بودن برای مبتدیان
  • سرعت
  • همه منظوره بودن
  • پشتیبانی
  • اپن سورس

هنگام توسعه برنامه‌های PHP به یک وب‌سرور نیاز دارید تا محیطی را برای اجرای فایل‌های PHP فراهم کرده و بتواند برنامه‌های نوشته شده با این زبان را به‌صورت صفحات وب در مرور اجرا کند. فیلم آموزش رایگان نصب و کار با WAMP و XAMPP، اجرای فایل‌های PHP با ۲ نرم‌افزار WAMP و XAMPP را آموزش می‌دهد.

فیلم‌های آموزشی آورده شده در ادامه نیز به شما کمک می‌کنند تا بک‌اند وب‌سایت‌ها را به کمک PHP توسعه دهید.

PHP فریمورک‌های متعددی نظیر لاراول، سیمفونی، Zend ،CakePHP و غیره را برای برنامه‌نویسی سایت ارائه داده که در نقشه راه بک اند می‌توانید آن را یاد بگیرید و مورد استفاده قرار دهید.

برنامه نویس در حال کدنویسی درون کامپیوتر در محل کار خود

همچنین دوره‌های پروژه‌محور آورده شده در ادامه می‌توانند مهارت‌های شما در توسعه بک‌اند وب با لاراول را تقویت کنند.

برای یادگیری فریمورک کدایگنایتر نیز می‌توانید از فیلم آموزش فریمورک CodeIgniter فرادرس استفاده کنید و مهارت‌ خود در این فریمورک را با فیلم آموزش ساخت فروشگاه اینترنتی با فریمورک CodeIgniter در فرادرس گسترش دهید.

برنامه نویسی بک اند با Ruby

روبی یک زبان برنامه‌نویسی همه‌منظوره، سطح بالا و مفسری است که با هدف کارآمدی و سادگی برنامه نویسی، طراحی و ساخته شده است. مؤلفه‌های گوناگون در زبان روبی نظیر نوع داده‌های اصلی، «شی» محسوب می‌شوند. این زبان در اواسط دهه ۹۰ میلادی توسط آقای «Matz» در ژاپن توسعه داده شد.

Ruby on Rails نام فریمورک روبی در حوزه برنامه‌نویسی بک‌اند است. این فریمورک سمت سرور وب‌اپلیکیشن، از الگوی MVC پیروی کرده و ساختارهای پیش‌فرضی را برای صفحات وب، وب‌سرویس‌ها و پایگاه داده ارائه می‌دهد. این فریمورک، به‌کارگیری استانداردهای وب نظیر JSON یا XML را برای انتقال داده‌ها و HTML ،CSS و جاوا اسکریپت را برای ایجاد رابط کاربری رواج داده و ساده می‌کند. Rails افزون بر MVC روی به‌کارگیری سایر پارادایم‌ها و الگوهای شناخته شده مهندسی نرم‌افزار نظیر DRY، CoC تأکید دارد.

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

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

برنامه نویسی بک اند با جاوا اسکریپت

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

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

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

با اینکه جاوا اسکریپت بیشتر به‌عنوان یک زبان سمت کلاینت و فرانت‌اند شناخته می‌شود اما کاربرد آن به همین‌جا محدود نشده و برنامه‌نویسان می‌توانند برای برنامه‌نویسی بک‌اند نیز آن را مورد استفاده قرار دهند. «نود جی اس» (Node.js یا NodeJS) یک محیط اجرای اپن سورس و چندپلتفرمی است که با استفاده از آن می‌توانید سمت سرور اپلیکیشن‌ها را با زبان جاوا اسکریپت توسعه دهید.

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

  • مناسب برای مبتدیان: افراد تازه‌کار در صورت آشنایی با زبان جاوا اسکریپت می‌توانند خیلی سریع یادگیری نود جی اس را شروع کنند. با وجود پشتیبانی‌های متعدد از سوی کامیونیتی، شروع کار با NodeJS به نسبت ساده است.
  • توسعه‌پذیری: نود جی اس می‌تواند تعداد زیادی از اتصال‌های همزمان را به‌طرز مؤثری مدیریت کند و خروجی مناسبی را ارائه دهد. این مورد می‌تواند مقیاس‌پذیری بالایی را برای اپلیکیشن‌ها امکان‌پذیر کند.
  • سریع بودن: نود جی اس دارای خصوصیت «non-Blocking» است که آن را برای توسعه بک‌اند، سریع‌تر و بهینه‌تر می‌سازد.
  • چندپلتفرمی: این محیط اجرا از قابلیت چندپلتفرمی پشتیبانی کرده که ایجاد برنامه‌های دسکتاپ، اپ‌های موبایلی و وب‌سایت‌های SaaS را برای شما امکان‌پذیر می‌کند.
  • نگهداری آسان: هر ۲ قسمت فرانت‌اند و بک‌اند را می‌توان با یک زبان یعنی جاوا اسکریپت مدیریت کرد که این ويژگی نگهداری ساده محصول را به‌دنبال دارد و باعث می‌شود تا برنامه‌نویسان، NodeJS را جزو انتخاب‌های خود قرار دهند.
  • «کَش» (Cache): نود جی اس امکان نهان‌سازی یا کش هر یک از ماژول‌ها را در حافظه اپلیکیشن فراهم می‌کند. به‌همین، دلیل نیاز به اجرای دوباره کدها نخواهید داشت.

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

مجموعه فیلم آموزش نود جی اس Node.js – مقدماتی تا پیشرفته
برای مشاهده فیلم‌های آموزش نود جی اس، مقدماتی تا پیشرفته فرادرس، روی تصویر کلیک کنید.

در ادامه برخی از فیلم‌های آموزشی موجود در این مجموعه را آورده‌ایم.

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

  • چت‌های بی‌درنگ: نود جی اس به دلیل ماهیت غیر هم‌زمان تک‌نخی خود برای پردازش ارتبا‌ط‌های بی‌درنگ، گزینه بسیار خوبی محسوب می‌شود که آن را به مؤلفه‌ای ارزشمند برای ساخت چت‌بات‌ها، گفت و گوی چند نفره و «پوش‌نوتیفیکیشن» (Push Notifications) تبدیل می‌کند.
  • استریمینگ داده‌ها: شرکت‌‌های مرتبط با حوزه سرگرمی نظیر نت‌فلیکس از نود جی اس – به‌دلیل سبک و سریع بودن – برای پخش زنده داده‌ها بهره می‌برد.
  • اپلیکیشن‌های تک‌صفحه‌ای یا SPA: «حلقه رویداد» (Event Loop) نود جی اس به شما امکان می‌دهد تا SPA-ها را ایجاد کنید که در آن تمام اپلیکیشن روی یک صفحه بارگزاری می‌شود.
فردی در حال یادگیری بک اند در لپتاپ خود

برنامه نویسی بک اند با سی شارپ

C#‎ زبان برنامه‌نویسی شی‌گرا و همه‌منظوره‌ای است که توسط مایکروسافت توسعه داده شده است. این زبان را می‌توان توسعه‌ای از C++‌‍‎ در نظر گرفت که در فریمورک دات‌نت ویندوز به‌کار می‌رود و فناوری اصلی برای توسعه اپلیکیشن‌های دسکتاپ ویندوزی محسوب می‌شود. برنامه‌نویسان می‌توانند از سی‌شارپ – به‌عنوان زبان برنامه‌نویسی همه‌منظوره مدرن – برای انجام کاری‌های گوناگون در حوزه‌های مختلف استفاده کنند.

از زبان سی شارپ می‌توان برای ایجاد اپلیکیشن‌ها و برنامه‌های متعددی نظیر برنامه‌های دسکتاپ و موبایل، سرویس‌های ابری، وب‌سایت‌ها، بازی‌ها و نرم‌افزار‌های سازمانی استفاده کرد. در ادامه این موارد را توضیح داده‌ایم.

  • برنامه نویسی بک‌اند وب: برنامه‌نویسان نرم‌افزار، سی‌شارپ را برای توسعه وب‌سایت‌های داینامیک روی پلتفرم دات‌نت به‌کار می‌برند. به‌دلیل شی‌گرا بودن این زبان، برنامه‌نویسان می‌توانند وب‌سایت‌هایی کارآمد ایجاد کنند که به‌سادگی قابل توسعه و نگهداری باشند.
  • اپلیکیشن‌های ویندوزی: از آن‌جایی‌که این زبان یک محصول نرم‌افزاری از مایکروسافت است می‌توان با آن اپلیکیشن‌های ویندوزی را با استفاده از فریمورک دات‌نت ایجاد کرد.
  • بازی‌سازی: از دیگر موارد استفاده از سی‌شارپ می‌توان به بازی‌سازی اشاره کرد. موتور یونیتی نمونه‌ای از یک پلتفرم توسعه بازی است که از سی‌شارپ استفاده می‌کند. سی‌شارپ به‌خوبی با یونیتی هماهنگ شده و می‌تواند روی گوشی‌های مدرن موبایل با یک فناوری چندپلتفرمی نظیر زامارین به‌کار گرفته شود.
  • C#‎ مقیاس‌پذیری بالایی دارد و نگهداری از آن ساده است. همچنین کامیونیتی بزرگ توسعه‌دهندگان آن پشتیبانی خوبی را ارائه می‌دهند.

با فریمورک‌هایی نظیر ASP.NET MVC ،ASP.NET Core می‌توانید برنامه‌نویسی بک‌اند را انجام دهید. فیلم‌های آموزشی زیر می‌توانند شما را در این زمینه یاری دهند.

فردی پشت مانیتورهای متعدد در حال کدنویسی

برای تقویت مهارت‌های خود نیز می‌توانید فیلم آموزش پروژه‌محور ASP.NET Core و طراحی سایت رزرو هتل را مشاهده کنید.

یادگیری اصول امنیت وب

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

فیلم‌های آموزشی که در ادامه فهرست کرده‌ایم می‌توانند شما را در این زمینه یاری دهند.

سیستم های کنترل نسخه

«سیستم‌های کنترل نسخه» (Version Control Systems | VCS) در واقع، ابزارهای نرم‌افزاری هستند که برنامه‌نویس را در کارهایی نظیر مدیریت و ردیابی تغییراتی که در طول زمان روی سورس کد صورت گرفته، یاری می‌دهد. این ابزارها با ارائه ریپوزیتوری یا مخزنی متمرکز، امکان همکاری چندین برنامه‌نویس با هم را فراهم کرده و آن‌ها را در نگهداری مؤثر پایگاه کد یاری می‌دهد.

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

از VCS-های موجود می‌توان گیت، Subversion ،Mercurial و Perforce را نام برد که گیت یکی از محبوب‌ترین آن‌ها است. گیت به عنوان یک ابزار کنترل نسخه پرکاربرد امکانات متعددی از جمله «شاخه‌بندی» (Branching)، ادغام و Rebasing را برای شما فراهم می‌کند. این سیستم همچنین ابزارهایی را برای همکاری نظیر درخواست‌‌های Pull و بازبینی کدها را فراهم می‌کند تا از این طریق، از کیفیت کدها و رعایت استانداردها اطمینان حاصل شود.

یادگیری مفاهیم اصلی بک اند

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

پایگاه داده ها

با استفاده از پایگاه داده‌‌ها می‌توان اطلاعات را به‌صورت سازمان‌یافته روی سیستم مورد نظر، ذخیره، بازیابی و مدیریت کرد. انواع مختلفی از پایگاه داده‌ها همچون رابطه‌ای، NoSQL، شی‌گرا و غیره وجود دارد.

API ها

اپلیکیشن‌های گوناگون به کمک API-ها می‌توانند با یکدیگر ارتباط برقرار کنند. این مؤلفه‌ها برای ایجاد اپلیکیشن‌های پیچیده ضروری هستند و به‌طور گسترده‌ای برای توسعه برنامه‌های موبایل و وب استفاده می‌شوند. انواع مختلفی از API نظیر RESTful APIs ،SOAP APIs و GraphQL APIs وجود دارند که هر یک مزایا و کاربردهای خود را دارند. با روش استانداردی که API-ها به منظور تبادل داده و عملکرد برای اپلیکیشن فراهم می‌کنند، ادغام و یکپارچه‌سازی پلتفرم‌های گوناگون نرم‌افزاری ساده‌تر می‌شود.

نهان سازی

«نهان‌سازی» (Caching) یا کش کردن به فرایند ذخیره‌سازی داده‌هایی گفته می‌شود که به دفعات به آن‌ها دسترسی دارید. با کش کردن آن‌ داده‌ها، کارایی اپلیکیشن بهبود پیدا می‌کند.

آزمایش یا تست

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

انواع مختلفی از «تست | آزمایش» نظیر تست یونیت یا «تست واحد» (Unit Testing)، «تست ادغام» (Integration Testing)، «تست سیستم» (System Testing) و «تست پذیرش» (Acceptance Testing) وجود دارند که هر یک دارای اهداف و تکنیک‌های خود هستند.

مردی در حال کدنویسی بک اند

ابزارهای تحلیل کد

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

الگوهای معماری

الگوهای معماری، به راهکارهای «قابل استفاده مجدد» برای مشکلات پرتکرار معماری در توسعه اپلیکیشن اشاره دارند.

وب هوک ها

«وب‌هوک» (Webhook) در واقع، راهی است که از طریق آن اپلیکیشن‌ها می‌توانند داده‌ها یا نوتیفیکیشن‌های بی‌درنگی را به سایر سرورها یا اپلیکیشن‌ها ارسال کنند.

ایجاد پرتفوی مناسب با پروژه های خود

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

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

مطمئن شوید که نمونه کدها، مستندات دقیق و اسکرین‌شات‌ها را در پرتفوی خود لحاظ می‌کنید تا از این طریق کارهای خود را به شکلی ساده و قابل فهم در اختیار مخاطبین پرتفوی قرار دهید.

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

انجام کارآموزی

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

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

نقش مدارک آکادمیک و مدت زمان یادگیری توسعه بک اند

ممکن است به این قضیه فکر کرده باشید که برنامه‌نویس بک‌اند حتماً می‌بایست تحصیلات مرتبط داشته باشد. در ادامه این مورد را توضیح داده‌ایم. همچنین مدت زمان لازم برای تبدیل شدن به یک برنامه‌نویس بک‌اند را بیان کرده‌ایم.

نقش مدرک دانشگاهی در نقشه راه برنامه‌نویسی بک‌اند

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

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

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

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

تقاضا برای برنامه نویس بک اند

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

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

جمع‌بندی

فناوری به‌سرعت در حال رشد است و برنامه‌نویسی بک‌اند به‌عنوان یکی از مؤلفه‌های اساسی آن ظاهر شده است که برای ایجاد اپلیکیشن‌های تلفن‌همراه و وب اپلیکیشن‌های مورد استفاده ما به‌کار گرفته می‌شود. این حوزه همچنان با ادامه دادن به گسترش خود در تکنولوژی‌ها، فریمورک‌ها و متدولوژی‌های جدید، وعده ارائه تعریفی نو در نحوه عرضه خدمات دیجیتالی را به همگان می‌دهد.

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

شاید این سوال برایتان پیش بیاید که «بهترین» زبان برنامه‌نویسی بک‌اند کدام است. پاسخ به این سوال، بسته به نوع کار یا پروژه‌ای که قصد انجام آن را دارید می‌تواند بسیار متفاوت باشد. اما می‌توان گفت که زبان‌های پایتون، جاوا و جاوا اسکریپت – توسط Node.js – جزو زبان‌های محبوب و پرتقاضا در نقشه راه بک‌اند محسوب می‌شوند. همچنین، پایتون و جاوا به‌دلیل چند منظورگی، کاربردهای گسترده و فریمورک‌های قدرتمندی که فراهم کرده‌اند، جزو بهترین انتخاب‌ها برای افراد مبتدی و همچنین برنامه‌نویسان حرفه‌ای محسوب می‌شوند.

source

توسط expressjs.ir