گذشته و حال سئو و ابزار مفید آن

ابزار شماره 1 SEO یا تنها ابزار SEO که شما نیاز دارید


ضرب المثلی وجود دارد که در گذشته همه چیز بهتر بود. در مورد سئو من موافقم. در گذشته فقط باید روی چگالی کلمات کلیدی کار می‌کردید، چند بک لینک دریافت می‌کردید و رتبه صفحه را افزایش می‌دادید. آیا امروز با MUM، E-A-T، BERT و اینکه چگونه همه آنها نامیده می شوند دیگر به این سادگی نیست.

اشتیاق ما را به اینجا رساند

عکس ایان اشنایدر در Unsplash

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

اما امروزه صدها ابزار سئو وجود دارد. هر ابزار بهتر از دیگری است و از € تا € € € € € همه چیز در دسترس است. و گویی با سحر و جادو، این ابزار به راحتی سایت شما را به اوج می رساند ;)


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


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


برای من، یک ابزار تا حد زیادی مهمترین است. این رایگان است و مستقیماً داده‌های Google را در اختیار من قرار می‌دهد. من می بینم که کدام صفحه دارای کدام کلمه کلیدی است و CTR فعلی چقدر است (یا کم) یا بسیاری دیگر.


یک و تنها: کنسول جستجوی گوگل

اسکرین شات از کنسول جستجو

اسکرین شات توسط نویسنده ساخته شده است


     "بله، اما رابط کاربری آنقدرها هم شیک نیست!" ممکن است بگویید نه، واقعاً اینطور نیست.

     اما من نمی توانم حجم ترافیک را ببینم! یا پیش بینی کنید!» - نه، شما نمی توانید. اما همه ابزارهای دیگر نیز نمی توانند این کار را انجام دهند. آنها تخمینی را از Google Ads و سایر منابع دریافت می کنند. گوگل حجم جستجوی هیچ کلمه کلیدی را منتشر نمی کند!

     "من نمی توانم با آن ممیزی سایت انجام دهم." درست است، اما کسی که سایتش از نظر فنی تحت کنترل نیست یا شلخته است، مشکلات دیگری دارد. شما بینش های Core Web Vital را دریافت می کنید

     …


جالب است که از سرچ کنسول با اشتیاق استفاده نمی شود! به نظر من به خصوص بازاریابان جوان این ابزار را در رادار ندارند.

مزایای


شما نمی توانید SEMrush، ahrefs و کنسول جستجو را 100٪ مقایسه کنید – هر یک از ابزارها جایگاه خود را در بازار دارند.


     این سرویس کاملا رایگان است

     داده ها از گوگل می آیند! بدون خزیدن SERP یا هر چیز دیگری…

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

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

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

     صفحاتی که دیگر مهم نیستند یا حذف شده اند را می توان از طریق کنسول حذف کرد

     Core Web Vitals: داده‌های گزارش از گزارش تجربه کاربر در Chrome می‌آید. آنها منعکس کننده داده های واقعی استفاده از وب سایت شما از کاربران سراسر جهان هستند.

     من تمام بک لینک هایی که گوگل می بیند را می بینم

     گزارش پیوند داخلی


معایب


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


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

     تحقیق کلمات کلیدی کمی دشوارتر است

     ردیاب رتبه: از طریق کنسول جستجو امکان پذیر است، اما فقط با یک راه حل

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

     پیمایش و درک همه ویژگی ها و اطلاعات موجود می تواند دشوار باشد

     برای استفاده از آن باید یک حساب Google داشته باشید، که برخی افراد این کار را ندارند

     برخی از ویژگی‌ها و گزارش‌ها می‌توانند برای برخی از کاربران خسته‌کننده یا گیج‌کننده باشند

     اگر تکنسین نیستید، پس اطلاعات زیاد بی فایده است


نتیجه


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


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


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

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

مقیاس پذیری: 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 وجود دارد که به ما کمک می کند تا همه موارد ممکن را پوشش دهیم. خواندن مستندات برای ادامه گسترش دانش این ابزار توصیه می شود.

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

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