هدف مقیاس پذیری چیست و در تلاش است که به چی دست یابد؟

مقیاس پذیری: Kubernetes دقیقاً در تلاش است به چه چیزی دست یابد؟

درک انتزاع پشت گره ها و غلاف ها


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

انجام پروژه در فریلنس پروژه

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

منبع: Unreal Engine 5 Pixel Streaming Overview

سفارش طراحی سایت با بهترین طراحان سایت

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


با در نظر گرفتن این موضوع، بیایید شروع کنیم!

تجسم ابر


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


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

متلب انجام پروژه متلب با متلب دانان

Kubernetes مجموعه ای از ابزارها است که ارکستراسیون را روی شبکه ای از رایانه ها پیاده سازی می کند. به عبارت دیگر - این یک مدیر املاک و مستغلات برای رایانه ها است. در اینجا برخی از موارد استفاده Kubernetes برای مقابله با آنها طراحی شده است:


    پیگیری همه منابع - ببینید چه چیزی در دسترس است، چه چیزی در دسترس نیست و چه چیزی نادرست است.

    اگر یک کامپیوتر به طور ناگهانی کار نمی کند، شاید به دلیل اتصال کوتاه، به دنبال جایگزینی برای جا دادن مستاجرینی باشید که روی آن کامپیوتر میزبانی شده اند.

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

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

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


همه موارد فوق مستلزم سیستمی است که بتواند همه چیز را با پشتکار پیگیری و مدیریت کند. Kubernetes چندین مؤلفه را ارائه می دهد که در کنار هم قرار گرفتن آنها می تواند به هدف مورد نظر دست یابد. در اینجا برخی از این مؤلفه ها وجود دارد که به نظر من درک آنها از نظر مفهومی ساده تر از سایرین است:


    kube-apiserver - یک سرور API REST که می تواند توسط مستاجرین برای ارسال درخواست های استقرار برنامه به ابر استفاده شود.

    kubelet - عاملی که بر روی هر کامپیوتری نصب شده است و اساساً آن را به بخشی از شبکه Kubernetes تبدیل می کند. این مسئول استقرار برنامه های مستاجر و اجرای بررسی های سلامت بر اساس مجموعه ای از دستورالعمل های ارسال شده از apiserver است.

    etcd - یک پایگاه داده کلید-مقدار که متغیرهای مربوط به ابر Kubernetes را ذخیره می کند، به عنوان مثال، پیکربندی ها، و وضعیت هر رایانه و برنامه هایی که باید در آنها اجرا شوند. برای هماهنگی وظایف در سطح سیستم استفاده می شود. به عبارت دیگر - این منبع حقیقت ابر در هر نقطه است.

طراحی لوگو با بهترین طراح لوگو با طراحی لوگو حرفه ای

اگر می‌خواهید به لیست کامل اجزای Kubernetes بروید، نمودار رسمی را به شما ارائه می‌دهم که در وب‌سایت رسمی Kubernetes قابل مشاهده است:

لیست کامل اجزای Kubernetes، از وب سایت رسمی Kubernetes


همانطور که می بینید، مشخصات Kubernetes دوست دارد از انتزاعات در بالای چیزهایی استفاده کند که قبلاً با آنها آشنا هستیم. خوشه به معنای مزرعه یا استخر و گره به معنای رایانه یا ماشین است. در مقطعی از تاریخ، یک گره حتی مینیون نامیده می شد (همانطور که در این شماره GitHub از سال 2014 بحث شد). برای من، نام ها یکی از گیج کننده ترین چیزها در مورد Kubernetes هستند، زیرا تعداد زیادی از آنها وجود دارد، و لزوما معنی زیادی ندارند. اما زمانی که فهمیدم Kubernetes چیزی بیش از یک چارچوب برای مدیریت نیست

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

ذخیره سازی یک مشکل کاملا متفاوت است


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


    یک مستاجر دوست دارد یک بازی با حجم 120 گیگابایت آپلود کند، اما فقط هارد دیسک‌هایی با حداکثر 100 گیگابایت در دسترس هستند.

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

    گسترش / حذف / جایگزینی هارد دیسک بدون وقفه در عملیات روزانه توسط مستاجران.

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


حل این مشکلات بی‌اهمیت نیستند و نیاز به تخصص ویژه در زمینه ذخیره‌سازی و نحوه عملکرد آن دارند. برخی از ارائه دهندگان ابر راه حل های ذخیره سازی مدیریت شده اختصاصی مانند AWS EBS، GCE Disk و Azure Disk را ارائه می دهند. اما اگر برای لحظه‌ای تصور کنیم که شما یک اتاق کامل پر از هارد دیسک دارید و می‌خواهید آن‌ها را به مستاجران بالقوه اجاره کنید - احتمالاً می‌خواهید این کار را با یک راه‌حل منبع باز داده‌های بزرگ مانند Ceph انجام دهید.


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

منبع: Ceph Intro and Architectural Review by Ross Turk


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

این فقط یک سرور HTTP است


برای شروع یک تماس API Kubernetes، باید یک درخواست به kube-apiserver ارسال کنیم. همانطور که قبلا ذکر شد، kube-apiserver یک مؤلفه است که توسط ارائه دهنده ابر نصب شده است و یک سرور REST است. بر این اساس، هر کلاینت HTTP را می توان برای پرس و جو از back-end استفاده کرد، به عنوان مثال، cURL یا axios. با این حال، درخواست‌ها باید مجاز باشند، و پاسخ‌ها باید تجزیه شوند، بنابراین، بسته به زبان و محیطی که استفاده می‌کنید، بسیاری از پیاده‌سازی‌های مشتری Kubernetes را مشاهده خواهید کرد. یکی از واضح ترین و محبوب ترین مشتریان Kubernetes ابزار CLI آن است - kubectl.


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


kubectl دریافت pods --v=6



در حال حاضر، می توانید به pods به عنوان برنامه های کاربردی فکر کنید (خوب، به نوعی). اگر مقاله را مرور کرده باشید، احتمالاً متوجه خواهید شد که آنها می توانند بر روی هر رایانه ای که خودسرانه انتخاب شده است، بسته به آنچه در دسترس بوده اجرا شود.

شبیه سازی درخواست Kubernetes


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


موارد زیر به ما داده می شود:


    یک صف از کاربران.

    یک خوشه Kubernetes.

    یک تصویر Docker با یک بازی نصب شده است.


مشخصات پیشنهادی برای اجرای بازی به شرح زیر است:


    4 هسته.

    رم 16 گیگابایت.

    50 گیگابایت فضای ذخیره سازی.

    RTX A4000.


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


    هنگامی که کاربر به انتهای صف می رسد، درخواستی را با URL تصویر و مشخصات سخت افزاری مورد نظر به kube-apiserver ارسال کنید.

    Kube-apiserver از etcd برای جستجوی رایانه ای با منابع کافی برای میزبانی تصویر استفاده می کند.

    اگر چیزی پیدا شد، kube-apiserver از شناسه گره برای ارسال درخواست استقرار به kubelet مربوطه خود استفاده می کند.

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

    Kube-apiserver پورت بازی را به همراه آدرس IP رایانه مورد نظر به کاربر باز می گرداند.

    کاربر می تواند از http://{IP}:{port} برای اتصال به جریان بازی از طریق مرورگر وب استفاده کند.


شبیه سازی درخواست Kubernetes ساده شده


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



مایکروسافت در حال از بین بردن جاوا اسکریپت است

مایکروسافت تقریباً جاوا اسکریپت را از بین برد

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


در اوایل دهه 2000، مایکروسافت اینترنت اکسپلورر پر استفاده ترین مرورگر جهان بود. رقیب آن، Netscape Navigator چندین درصد عقب افتاد. این دو مرورگر از زبان های برنامه نویسی سمت کلاینت مشابه برای تقویت تعامل استفاده می کردند، جاوا اسکریپت و جی اسکریپت برای شکل دادن به وب در دهه های آینده مبارزه می کردند.

انجام پروژه در فریلنس پروژه

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

مسابقه


    اولین مرورگر وب با رابط کاربری گرافیکی، Mosaic، در سال 1993 منتشر شد. این مرورگر که برای افراد غیر فنی قابل دسترسی بود، نقش برجسته ای در رشد سریع وب جهانی نوپا - ویکی پدیا داشت.


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

سفارش ساخت سایت در فریلنس پروژه

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


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


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

محاصره بی رحمانه


در اوایل دهه 2000، مایکروسافت برنده آشکار بود. از هر 10 نفر 9 نفر از اینترنت اکسپلورر استفاده می کردند. اگرچه نت اسکیپ در اواسط دهه 90 با یک سهم راحت شروع به کار کرده بود، اما این مایکروسافت بود که 96 درصد از بازار را در آغاز دهه 2000 در اختیار داشت. مایکروسافت چگونه چنین شاهکار خارق العاده ای را مدیریت کرد؟

انجام پروژه متلب با بهترین متخصصان

دلایل زیادی چنین دستاوردی را نشان می دهد، تعدادی از آنها بعداً در دادگاه مورد مناقشه قرار گرفتند. به عنوان یک چیز، مایکروسافت قبلاً یک شرکت سهامی عام با منابع مالی گسترده بود که نت اسکیپ در سال 1995 عمومی شد. ارزش بازار مایکروسافت در مقطعی در سال 1996، 10 برابر نت اسکیپ بود.


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


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

ضربه ای که قرار بود کشنده باشد

عکس یوهان والتر بانتز در Unsplash


در سال 1996، یک سال پس از راه اندازی جاوا اسکریپت، نت اسکیپ پیشنهادی را برای استانداردسازی این زبان به ECMA International ارائه کرد. مایکروسافت در روزهای اولیه به این تلاش پیوست. در اواخر دهه 90 و اوایل دهه 2000، مایکروسافت در وضعیت کاملاً متفاوتی نسبت به سال 1996 قرار داشت.


    نادرست نیست اگر بگوییم جاوا اسکریپت یک فناوری اختصاصی شرکت مایکروسافت در اوایل دهه 2000 بود.


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


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


مسیر جاو

چارچوب تست منبع باز از اکوسیستم جاوا اسکریپت

تست های واحد در جاوا اسکریپت با Jest


مقاله پایه تست نرم افزار. مفاهیم پایه و آزمون های واحد به عنوان یک کل چارچوب Jest.


انجام پروژه در فریلنس پروژه

Jest یک چارچوب تست منبع باز از اکوسیستم جاوا اسکریپت است. Jest در حال حاضر محبوب‌ترین فریمورک تست امروزی است که توسط شرکت‌های بزرگی مانند فیس‌بوک، Airbnb، توییتر و اسپاتیفای استفاده می‌شود، همچنین دارای پلاگین‌های متعددی است که به راحتی با تمام فریم‌ورک‌های مدرن چه در قسمت جلویی و چه در سمت باطن (React، Angular، Vue) یکپارچه می‌شوند. ، گره).


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

تست های واحد


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


تست های واحد شامل موارد زیر است:


    کارکرد.

    کلاس ها.

    مواد و روش ها.

    در میان قطعات کوچک دیگر.

سفارش طراحی سایت با بهترین طراحان

مفاهیم کلیدی برای آزمایش با Jest


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


    توضیح دهید: تابعی که به ما کمک می کند بلوک هایی ایجاد کنیم که چندین تست مرتبط را گروه بندی می کنند.

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

    Expect: تابعی که امکان اعتبارسنجی مسابقات را در طول آزمایش فراهم می کند. این منطبق‌ها همان مواردی هستند که Jest با برگرداندن نتایج بر اساس معیارها تأیید می‌کند. تابع انتظار زمانی استفاده می شود که یک مقدار نیاز به اعتبارسنجی داشته باشد. انتظار داشته باشید که در ارتباط با عملکردهای دیگر برای رسیدگی به موارد متعدد کار کند.


در زیر ترتیب سلسله مراتب استفاده آمده است:


describe('set of math test', () => {

test('it is pair', () => {
expect(6 % 2).toEqual(0);
});
test('it is not pair', () => {
expect(7 % 2).not.toEqual(0);
});
});


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

پیکربندی محیط ما

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

قبل از شروع، لازم است Nodejs را در محیط کاری خود نصب کنیم. پس از نصب، دستورات زیر را اجرا کنید:


> mkdir unit-test-with-jest
> cd unit-test-with-jest/
> npm init -y
> npm i jest --save-dev

یک اسکریپت NPM نیز برای اجرای تست های واحد و یک اسکریپت برای تولید گزارش پوشش پیکربندی خواهد شد. package.json را باز کنید و اسکریپت زیر را پیکربندی کنید:


{
"name": "unit-test-with-jest",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "jest",
"coverage": "jest --collect-coverage"
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
"jest": "^29.0.3"
}
}

فایل math.js


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


function sum(a, b) {
return a + b;
}
function sub(a, b) {
return a - b;
}
function mul(a, b) {
return a * b;
}
function div(a, b) {
return a / b;
}
module.exports = {
sum,
sub,
mul,
div
}


فایل math.test.js


مرحله بعدی ایجاد یک فایل جاوا اسکریپت به نام math.test.jst است که شامل تست های واحد هر عملیات وارد شده از math.jsfile است. با تاکید بر اینکه فایل در داخل پوشه ای به نام __tests__ ایجاد خواهد شد.


const { sum, sub, mul, div } = require('../math.js');describe('set of arithmetic operations', () => {

test('sum of numbers', () => {
expect(sum(1, 1)).toBe(2);
});
test('subtraction of numbers', () => {
expect(sub(1, 1)).toBe(0);
});
test('multiply of numbers', () => {
expect(mul(1, 1)).toBe(1);
});
test('divide of numbers', () => {
expect(div(1, 1)).toBe(1);
});
});

توجه: به عنوان یک ملاحظه، Jest به طور پیش‌فرض به دنبال پوشه‌ای به نام __tests__ برای جستجوی تست‌ها می‌گردد و تمام فایل‌هایی را که حاوی نام هستند با انتهای .test.js یا .spec.js پوشش می‌دهد، همچنین به‌طور پیش‌فرض، همه چیز داخل node_modules را نادیده می‌گیرد.

تست ها را اجرا کنید


برای اجرای تست های دقیق، توسط کنسول دستور npm run test را نشان دهید. با این کار، جست بررسی ها را انجام می دهد و نتایج را نشان می دهد.

گزارش پوشش


گزارش های پوشش به شما این امکان را می دهد تا تخمین بزنید که چند درصد کد تست شده است. این گزارش ها معیارهای کلی را برای تجزیه و تحلیل بیشتر ارائه می دهند. برای اجرای گزارش پوشش، دستور npm run covergare را از طریق کنسول نشان دهید. با این Jest معیارها را هم توسط کنسول و هم گزارش‌های HTML تولید شده در فهرست فعلی ارائه می‌کند.

منابع جاوا اسکریپت شوخی


    Home web Jest: وب سایت اصلی، راهنما، وبلاگ و مستندات.

    کتابچه راهنمای کاربر Jest: مراحل اولیه، نصب و نمونه‌ها.

    Jest CLI: خط فرمان Jest، گزینه‌ها و موارد دیگر.

    Jest documentation API: استفاده از API، متدها و kickstarters.

    GitHub Jest: مخزن رسمی منبع باز.


پایان یافتن


در این مقاله به مفاهیم اساسی فریم می پردازیم

ework، به یاد داشته باشید که چندین تابع و دستورات CLI وجود دارد که به ما کمک می کند تا همه موارد ممکن را پوشش دهیم. خواندن مستندات برای ادامه گسترش دانش این ابزار توصیه می شود.

طراحی لوگو با بهترین طراحان لوگو

از اینکه تا اینجای کار آمدید متشکریم، اگر این را مفید یافتید، به اشتراک بگذارید. برای دریافت مطالب بیشتر عضو شوید

خطاهای ناخوانا و ناخواسته JS و ردیابی آن ها

اتوماسیون پیوند منبع-نقشه جاوا اسکریپت: نظارت بر مرورگر NewRelic


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

پروژه انجام پروژه در فریلنس پروژه

در محیط تولید اکوسیستم وب، دارایی ها برای ایجاد بسته های JS ترکیب، مبهم و کوچک می شوند. این منجر به خطاهای ناخوانا و ناخواسته JS بدون ردیابی پشته می شود، و رسیدن به علت اصلی مشکل را برای کسی غیرممکن می کند.


چگونه خطاها را ردیابی می کنیم؟


تیم "Creditas" از New Relic برای نظارت بر عملکرد و ردیابی خطا استفاده می کند. New Relic یکی از بهترین برنامه ها در این فضا است، تعداد کمی از برنامه های محبوب دیگر مانند نگهبان، اشکالات و غیره هستند. اطلاعات بیشتر در مورد نظارت بر مرورگر با استفاده از New Relic


از آنجایی که کد کوچک شده است، در زیر یک اسکرین شات از نحوه نشان دادن خطای جدید به طور پیش فرض نشان داده شده است:


این ابزارها به طور پیش‌فرض کد شما را حذف نمی‌کنند و خطای بالا را نشان نمی‌دهند که کاملاً غیرقابل خواندن است

سفارش ساخت سایت در فریلنس پروژه

سپس {“Jadoo” : “Sourcemap” } به فرار می آید.

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

اطلاعات بیشتر در مورد نقشه های منبع


پیوند خودکار نقشه منبع با New Relic


New Relic و سایر ابزارهای اصلی، API ها / اسکریپت ها / بسته های باقی مانده را برای آپلود نقشه های منبع با فایل های JS فراهم می کنند.

ما از بسته @newrelic/publish-sourcemap برای انتشار نقشه منبع در New Relic استفاده کرده ایم.


طراحی لوگو با بهترین طراحان لوگو

//sample snippet to push a source map file corresponding to a javascript linkconst publishSourcemap = require(‘@newrelic/publish-sourcemap’).publishSourcemap;publishSourcemap({    sourcemapPath : jsMapFileAbsolutePath, // js map path on machine
javascriptUrl : jsUrl, // js url reachable by new relic
applicationId: APP_ID, // new relic app id
apiKey: NEW_RELIC_USER_API_KEY, // new relic user key
},(err)=>{console.log('error in pushing::',err)});

آیا می توانید آن را از localhost و تست انجام دهید؟


به طور کلی پاسخ منفی است. لوکال هاست شما از NewRelic قابل دسترسی نخواهد بود و از این رو نمی تواند JS را که نقشه منبع را برای آن آپلود می کنید پیدا کند. اگر فقط می‌خواهید کد را آزمایش کنید، می‌توانید از چند لینک prod/uat برنامه خود در قطعه بالا و تست استفاده کنید.


در چه مرحله ای از استقرار این کار را آغاز می کنید؟


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

انجام پروژه متلب با بهترین متخصصان


آیا واقعاً می خواهید نقشه منبع را در تولید فعال کنید؟


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

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


راه حل: نقشه منبع در دسترس New Relic قرار گرفت و هنوز ناشناس است


در فرآیند ساخت، همه نقشه‌های منبع را از مکان پیش‌فرضشان به یک مکان ناشناس و قابل شناسایی با کد منتقل می‌کنیم. سپس توسط API مرحله post deployment برای خواندن js به jsmap و فشار دادن همان به New Relic استفاده می‌شود.


نتیجه: نمونه عکس فوری خطا در New Relic این فرآیند را ارسال کنید


و در نهایت :


معجزه است! معجزه است :-)

اگر این را مفید یافتید، پیام بذارید

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

توسعه دهنده


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

مرحله 2: تحصیل کنید

سفارش طراحی سایت با سایت دانان قهار

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


تخمین زمان: این مرحله ممکن است بین 12 هفته تا 6 سال طول بکشد، به استثنای زمانی که برای درخواست و انتظار برای شروع یک برنامه صرف می کنید.

مرحله 3: تجربه دنیای واقعی را بدست آورید


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

پروژه انجام پروژه با بهترین متخصصان

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


    گذراندن یک برنامه کارآموزی

    پیوستن به هکاتون ها

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


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


این منابع را بررسی کنید:

طراحی لوگو با بهترین طراحان لوگو

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

    ارتقا رزومه شما

    حفظ پروژه های کدنویسی در مسیر

    کمک به پروژه های منبع باز


شما قطعا باید تلاش های خود را در این تلاش های دنیای واقعی در یک نمونه کار حفظ کنید، که بعداً می توانید آن را به کارفرمایان بالقوه نشان دهید.


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

مرحله 4: دریافت گواهینامه (اختیاری)


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


توسعه دهندگان تمام پشته می توانند گواهینامه های عمومی توسعه نرم افزار زیر را بررسی کنند:


    دارای گواهینامه حرفه ای چرخه حیات نرم افزار امن

    برنامه نویس حرفه ای نرم افزار

    CIW توسعه وب حرفه ای

    GIAC Certified Web Application Defender (GWEB)


علاوه بر این، سایر گواهینامه ها بیشتر به قسمت پشتی مجموعه مهارت ها می پردازند:


    برنامه نویس حرفه ای دارای مدرک C/C++

    گواهینامه های Oracle (به عنوان مثال، SQL، MySQL، توسعه پایگاه داده)

    گواهینامه حرفه ای در برنامه نویسی پایتون 1 گواهینامه


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

مرحله 5: برای جستجوی شغل خود آماده شوید


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


    پورتفولیوی خود را صیقل دهید: با یک حساب رایگان GitHub، می توانید کدهای پروژه های فردی و منبع باز خود را در مخازنی که استخدام کنندگان و کارفرمایان بالقوه می توانند مشاهده کنند، نگهداری کنید. (به عنوان یک مزیت اضافی، تجربه عملی با کنترل نسخه را خواهید داشت که یک مهارت مهم برای هر توسعه دهنده ای است.)

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

    شبکه: اتصال به توسعه دهندگان و شرکت های معتبری که ممکن است برای آنها درخواست بدهید می تواند به شما کمک کند تا در مورد فرآیند مصاحبه، ویژگی های شرکت و نکات دیگر اطلاعات کسب کنید. منابعی مانند گروه های فارغ التحصیل، لینکدین و سایر شبکه های اجتماعی ارتباط را آسان تر می کنند.


تخمین زمان: از سرمایه گذاری چند هفته تا چند ماه در این فعالیت ها پشیمان نخواهید شد.

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


وقتی احساس آمادگی کردید، یک نفس عمیق بکشید و جستجوی شغل خود را شروع کنید. می‌توانید با استفاده از وب‌سایت‌هایی مانند ZipRecruiter، Dice، Glassdoor، Indeed و غیره برای موقعیت‌های باز تحقیق و درخواست کنید. نرم‌افزار کاربردی شغل یا یک صفحه گسترده می‌تواند به شما در ردیابی همه برنامه‌های کاربردی و وضعیت‌های مختلف آنها کمک کند.


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

چقدر طول می کشد تا به یک دیو فول استک تبدیل شوید

عاشق


ممکن است برای تبدیل شدن به یک توسعه دهنده فول استک، از سه ماه تا شش سال زمان نیاز داشته باشید. جدول زمانی شما تحت تأثیر موارد زیر خواهد بود:

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

    آنچه قبلاً می دانید (به ویژه مهارت های فنی)

    چه مشاغلی داشته اید (و ارتباط آنها با این رشته)

    چه تحصیلاتی کسب کرده اید (و ارتباط آن با توسعه وب)

    آرزوهای شغلی شما

    وضعیت بازار کار


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


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


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

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


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

تحصیلات


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

تجربه قابل اجرا

مجری ذیصلاح لیست مجریان نظام مهندسی اراک مجری ساختمان

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


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

    گواهینامه های حرفه ای: مهارت و تعهد خود را با قبولی در امتحانات در موضوعات مختلف توسعه نرم افزار نشان دهید.


مهارتهای فنی


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

مهارت‌های ضروری مقدماتی


    استدلال منطقی

    نحوه کار اینترنت (به عنوان مثال، مشتریان، سرورها، شبکه ها، صفحات وب)

    اصول اولیه HTML، CSS و توسعه وب

    زبان ها و فریم ورک های برنامه نویسی فرانت اند (مانند جاوا اسکریپت، ری اکت، انگولار، جی کوئری)

    سیستم های کنترل نسخه (Git + سرویس های مخزن مانند GitHub)

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

    API ها و سرویس های RESTful

    تست و اشکال زدایی (به عنوان مثال، تست واحد، تست عملکرد، تست قابلیت استفاده، تست عملکرد، تست رگرسیون)

    طراحی گرافیک


مهارت‌های ضروری در پشتیبان


    زبان های انجام پروژه برنامه نویسی پشتیبان (مانند جاوا اسکریپت، پایتون، پی اچ پی، جاوا، سی پلاس پلاس)

    فریمورک‌های وب بک‌اند (مانند Node.js برای جاوا اسکریپت، جنگو و فلاسک برای پایتون، لاراول برای PHP)

    پایگاه داده های رابطه ای (به عنوان مثال، PostgreSQL، MySQL)

    پایگاه های داده NoSQL (به عنوان مثال، MongoDB، Cassandra، Firebase)

    رابط های برنامه نویسی برنامه (API) (به عنوان مثال، REST، API های JSON، SOAP، gRPC)

    ساختار داده ها و الگوریتم ها


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


مهارت های پیشرفته


    سایر فریم ورک های JS (مانند NextJS، Gatsby، NuxtJS)

    دانش پایگاه داده پیشرفته (به عنوان مثال، ORM ها، ACID، تراکنش ها، مشکل N+1، عادی سازی پایگاه داده، نمایه ها، تکرار داده ها، استراتژی های اشتراک گذاری، قضیه CAP)

    یکپارچه سازی مداوم و شیوه های استقرار مداوم (CI/CD).

    الگوهای معماری (به عنوان مثال، برنامه های یکپارچه، میکروسرویس ها، SOA، CQRS و منبع رویداد، بدون سرور)

    مفاهیم طراحی سیستم

    کارگزاران پیام (مانند کافکا، RabbitMQ)

    Containerization در مقابل مجازی سازی (به عنوان مثال، Docker، Kubernetes)

    GraphQL (به عنوان مثال، آپولو، رله مدرن)

    پایگاه داده های گراف (به عنوان مثال، Neo4j)

    سوکت های وب

    سرورهای وب (Apache، NGINX، Caddy، MS IIS)


مهارت ها و کیفیت های نرم


در نهایت، اگر می خواهید در محل کار برتر باشید، نباید از مهارت ها و رفتارهای نرم غافل شوید.

l کیفیت ها شما می توانید این شش ویژگی را برای تبدیل شدن به یک توسعه دهنده برجسته پرورش دهید.


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

    یک طرز فکر تیمی

    مهارت حل مسئله خلاق

    یکدلی

    عزم

    عشق به یادگیری


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

درآمد یک توسعه دهنده فول استک چقدر است؟


شما می توانید به عنوان یک توسعه دهنده تمام پشته، مانند بسیاری از مشاغل پردرآمد در فناوری، درآمد خوبی کسب کنید. اداره آمار کار گزارش می دهد که متوسط ​​دستمزد توسعه دهندگان وب در ایالات متحده در سال 2020 77200 دلار در سال (37.12 دلار در ساعت) بوده است. اینها ارقام متوسط ​​و البته چند ساله هستند، بنابراین حقوق یا دستمزد واقعی شما ممکن است متفاوت باشد. همچنین، به خاطر داشته باشید که حقوق شما می تواند با کسب تجربه، کسب گواهینامه ها و ارتقای شغلی افزایش یابد.


علاوه بر این، آن ارقام BLS ممکن است منعکس کننده کل غرامت برای توسعه دهندگان وب نباشد. به گفته Glassdoor، یک وب‌سایت آمریکایی که اطلاعاتی در مورد مشاغل و حقوق جمع‌آوری می‌کند، کل دستمزد یک توسعه‌دهنده وب در ایالات متحده 110,356 دلار در سال است که بر اساس میانگین حقوق 72,495 دلار است. غرامت باقیمانده می تواند از پاداش نقدی، کمیسیون و تقسیم سود باشد.


جبران خسارت مطمئناً مهم است، اما باید تقاضا برای توسعه دهندگان فول استک را نیز در نظر بگیرید. طبق پیش‌بینی‌های BLS، انتظار می‌رود مشاغل توسعه‌دهنده وب از سال 2020 تا 2030 در ایالات متحده 13 درصد افزایش یابد، که سریع‌تر از میانگین برای همه مشاغل است. همچنین می‌توانید «شغل‌های توسعه‌دهنده کامل» را در Indeed، Glassdoor، Dice، Zip Recruiter و غیره جستجو کنید تا انواع موقعیت‌های موجود را ببینید. نتایج جستجوی شما تقریباً به اندازه داده‌های دولت جامع نخواهد بود، اما در عین حال شرح شغل در دنیای واقعی را مشاهده خواهید کرد. علاوه بر این، Glassdoor با استفاده از داده‌های ناشناس از کارکنان فعلی و سابق، برآوردهای حقوق و دستمزد شرکت‌های خاص را ارائه می‌کند.

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


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


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


موفقیت شما به‌عنوان یک توسعه‌دهنده فول استک به تسلط بر مهارت‌های بخش جلویی و پشتی وب‌سایت‌ها و برنامه‌های کاربردی وب بستگی دارد. برای کمک به شما در یادگیری مهارت‌های front-end، مسیر یادگیری Become a Front-End Developer را ایجاد کرده‌ایم که نشانه‌گذاری و استایل‌سازی با HTML و CSS، تعامل با جاوا اسکریپت و راه‌اندازی یک وب‌سایت را پوشش می‌دهد. اگر می خواهید روی قسمت پشتی تمرکز کنید، مسیر یادگیری اصول برنامه نویسی وب را در نظر بگیرید. مهارت های برنامه نویسی اولیه در C++ و ملزومات back-end مانند پایگاه های داده و شبکه ها را آموزش می دهد. همچنین در صورت نیاز شما را با HTML، CSS و جاوا اسکریپت آشنا می کند.


یادگیری مبارک!

به یادگیری در مورد توسعه تمام پشته در Educative ادامه دهید


    نحوه انتخاب پشته فناوری مناسب برای توسعه وب

    شیرجه سریع به Firebase: سفر تمام پشته خود را شروع کنید

    آیا می توانم یک توسعه دهنده تمام پشته پایتون باشم؟


بحثی را شروع کنید

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

چرا حرفه ای به عنوان یک توسعه دهنده فول استک مجذوب شما شده است؟ این مقاله به شما کمک کرد؟ در قسمت نظرات پایین ما را آگاه کنید!