JavaScript

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

جاوا اسکریپت را فراموش کنید! eBay چگونه با تغییر زبان برنامه نویسی وب اپلیکیشن خود را 50 بار سریع تر کرد؟

۵۳۱ بازديد
eBay آنلاین بازار نشان داده است که چگونه با استفاده از WebAssembly عملکرد یک برنامه وب خواستار 50 برابر شده است.

سرعت "شگفت آور" پس از تعویض از یک مبتنی بر جاوا اسکریپت به یک برنامه وب مبتنی بر WebAssembly عمدتا توسط تیم مهندسی eBay مشخص شد که بیانگر آن است که افزایش کارایی باعث ساخت اسکنر بارکد بسیار دقیق به عنوان وب شد برنامه

با جمع آوری کد به WebAssembly، توسعه دهندگان می توانند برنامه هایی را ایجاد کنند که در مرورگر وب به طور مرتب با کارایی بالا کار می کنند، شبیه آنچه که توسط برنامه های بومی ارائه شده است.


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

"WebAssembly متفاوت بود. این پتانسیل فوق العاده ای داشت، ما فقط مورد استفاده درست را نداشتیم. خوب، که اخیرا تغییر کرد،" تیم مهندسی نرم افزار eBay را بنویسید.

یکی از مزایای WebAssembly (Wasm) این است که قابلیت حمل کد را برای انواع زبان ارائه می دهد، به توسعه دهندگان اجازه می دهد کد خود را برای دیگر سیستم عامل ها و کامپایل شدن به WebAssembly به طوری که می تواند در مرورگرهای وب بزرگ اجرا شود.

در نتیجه، eBay توانست نسخه فعلی اسکنر بارکد خود را که در C ++ نوشته شده بود را در اختیار بگیرد و آن را به Wasm با استفاده از Emscripten بسپارد، و روش Docker و Node.js را که در اینجا معرفی شده است، در اختیار دارد.

پس از چند مشکل جزئی، تیم eBay قادر به اجرای اسکنر بارکد در مرورگر، با استفاده از یک thread Worker و کد چسباندن جاوااسکریپت بود.

اسکنر مبتنی بر Wasm قادر به پردازش تصاویر بارکد در 50 فریم در ثانیه (FPS) بود، در مقایسه با حدود 1FPS در یک اسکنر مبتنی بر جاوا اسکریپت قدیمی که eBay آزمایش کرده بود، سرعت بخشیدن به تیم را "شگفت آور" توصیف کرد.

مشکل اسکنر مبتنی بر Wasm هنوز در 40٪ موارد قادر به شناسایی بارکد نیست.

تیم ابتدا گیج شده بود چرا که همان C ++ کد که در حدود 100٪ از موارد کار می کرد وقتی که کامپایل شده به کد بومی برای آندروید و برنامه های iOS شکست خورد زمانی که وارد Wasm برای اجرا در مرورگر. در نهایت ظهور کرد که این برنامه های بومی قادر به حل مشکلات با کیفیت تصویر با استفاده از API های خاص پلت فرم است که اجازه می دهد برای فوکوس اتوماتیک و سایر ویژگی ها.

راه حل eBay برای اجرای چندین اسکنر بارکد همراه با یکدیگر در مرورگر بود: اسکنر مبتنی بر Wasm خود، اسکنر بارکد ZBar منبع باز منبع و Wasm و اسکنر اصلی مبتنی بر جاوا اسکریپت است.

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

"به تعجب ما، با سه موضوع مسابقه با یکدیگر، میزان موفقیت در واقع نزدیک به 100٪ بود. این دوباره کاملا غیر منتظره بود،" تیم را بنویسید.

"جاوا اسکریپت در سناریوهای خاص خیلی خوب عمل کرد، و این عامل به نظر می رسید شکاف را خنثی کند. بنابراین بله، همیشه در جاوا اسکریپت شرط می بندم."

در آزمایش ZBar به 53٪ از اسکنهای موفق کمک کرد، به دنبال اسکنر C ++ سفارشی eBay با 34٪ و در نهایت کتابخانه جاوا اسکریپت با 13٪.

اسکنر بارکد نهایی مبتنی بر وب نیز در طول آزمایش A / B موفق به کسب و کار شد و منجر به افزایش 30 درصدی کاربران eBay شد که لیست پرونده را برای حراج در سایت تکمیل کردند.

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

12 فریم ورک جذاب Node.js برای برنامه نویسان در سال 2019

۵۶۲ بازديد
در چشم انداز تکنولوژیکی همیشه در حال توسعه، توسعه دهندگان نیز باید خود را به روز رسانی کنند. در طول چند سال گذشته، Node.js خود را به عنوان یک منبع باز، محیط متقابل پلتفرم اجرا کرده است. در این مقاله، ما 12 برنامه شگفت انگیز Node.js را برای توسعه دهندگان فهرست می کنیم که این برنامه ها می تواند برای آموزش برنامه نویسی خیلی مفید باشد.


1 | آدونیس، جسی
AdonisJs یک چارچوب وب Node.js با نفس هوای تازه و چنگال از نحو ظریف در بالای آن است. AdonisJs چارچوب Node.js MVC است که در تمام سیستم عامل های اصلی اجرا می شود. این یک چارچوب مدولار است که متشکل از ارائه دهندگان خدمات متعدد، بلوک های ساختمانی از برنامه های AdonisJs است. این برنامه یک اکوسیستم پایدار را برای نوشتن برنامه های کاربردی وب مبتنی بر وب ارائه می دهد، بنابراین می توانید بر روی نیازهای تجاری تمرکز کنید تا نهایتا کدام بسته را انتخاب کنید یا نه.

2 | Derby.js
DerbyJS از چندین استاندارد ماژول Node.js تشکیل شده است که به راحتی می توان برنامه های همکاری که در هر دو Node.js و مرورگر اجرا می شود، آسان است. این شامل یک موتور هماهنگ سازی داده قدرتمند به نام Racer است که به طور خودکار داده ها را بین مرورگرها، سرور ها و پایگاه داده همگام سازی می کند. دربی باعث ساده شدن نوشتن برنامه هایی می شود که به سرعت به عنوان یک موتور جستجو بار می کنند، به عنوان یک ویرایشگر سند تعاملی و کار آفلاین هستند.

3 | Express.js
اکسپرس یک چارچوب کاربردی وب کم و انعطاف پذیر Node.js است که مجموعه ای کامل از ویژگی های کاربردی وب و تلفن همراه را فراهم می کند. این یک لایه نازک از ویژگی های نرم افزار وب را فراهم می کند، بدون پوشش ویژگی های Node.js. این ویژگی ها مانند مسیریابی قوی، پوشش تست فوق العاده بالا، کمک کننده های HTTP، مذاکره با محتوا و خیلی بیشتر.
4 | Hapi.js
Hapi.js ساده است که از چارچوب محدوده پیکربندی با پشتیبانی از ورودی برای اعتبارسنجی ورودی، ذخیره سازی، احراز هویت و سایر امکانات ضروری برای ساختن برنامه های کاربردی وب و خدمات استفاده کند. این توسعه دهندگان را قادر می سازد تا در نوشتن منطق برنامه های کاربردی مجدد با استفاده از رویکرد بسیار مدولار و پیشگیرانه، به جای گذراندن زیرساخت های ساختمانی زمان، تمرکز کنند.
5 | Koa.js
Koa یک چارچوب وب جدید طراحی شده توسط تیم پشت اکسپرس است که هدف آن یک پایه کوچکتر، واضح و پایدار برای برنامه های کاربردی وب و API ها است. این اجازه می دهد تا شما را به تماس تلفنی مگس و به شدت افزایش خطا دست زدن و بسته نرم افزاری هیچ middleware در هسته خود را. همچنین، مجموعه ای عالی از روش هایی را فراهم می کند که سریع و لذت بخش هستند.

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

۴۸۱ بازديد
یک محقق امنیتی راه جدیدی را برای ردیابی حرکات موشهای بازدیدکنندگان وب حتی زمانی که از بلوک کننده های تبلیغاتی یا افزونه هایی استفاده می کنند که جاوا اسکریپت را مسدود می کنند، نشان داده است.

همانطور که در Davy Wybiral در توییتر توضیح داده شده است و در گفتگو با Bleeping Computer این کار با بهره برداری از اثر شناور CSS انجام می شود که می تواند برای فعال سازی یک اثر بصری در هنگام مواجهه با ماوس کاربر بر روی آن استفاده شود. اگر این اثر بصری برای بارگذاری تصاویر از یک سرور از راه دور استفاده شود، متوجه شد که می تواند از آن برای ردیابی حرکت استفاده کند:

برای من اتفاق افتاد که شما می توانید با استفاده از برخی از CSS مکان یابی مکان یاب بدون جاوا اسکریپت را کنترل کنید: انتخابگرها را برای تغییر تصاویر پس زمینه پنهان (باعث ایجاد یک درخواست GET) می شود.

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

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

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

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

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

تکنیک جذاب است زیرا HTML و CSS (Cascading Style Sheets) زبان های برنامه نویسی نیستند و معمولا در مکالمات مربوط به ردیابی نیستند. ترفندهای فانتزی، تعامل و برنامه نویسی که صفحات وب استاتیک را به برنامه تبدیل می کند دامنه سومین زبان اصلی وب، جاوا اسکریپت است.

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

تکنیک Wybiral مانند یک نسخه تبلیغی گرا از مفهوم فرضیه (ما امیدواریم) استفاده از کلمات عبور Keylogging با استفاده از CSS، یک ایده دیگر است که انجام دور.

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

به همین ترتیب، صاحبان وب سایت ها در حال حاضر بسیاری از راه های ایجاد شده برای ردیابی کاربران دارند که احتیاج به اختراع جدیدی ندارند.

3 فریم ورک جدید جاوا اسکریپت که میتوانید در سال ۲۰۱۹ یاد بگیرید

۴۹۹ بازديد
براساس بررسی Survey 2015 شرکت Stack Overflow، جاوا اسکریپت محبوب ترین و رایج ترین زبان برنامه نویسی است. در ابتدا، آن را فقط می توان در سمت مشتری استفاده کرد، اما پس از انتشار NodeJS، جاوا اسکریپت هم اکنون نیز برای برنامه نویسی سمت سرور استفاده می شود.

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

1. Next.js
چارچوب جاوا اسکریپت بعدی

Next.js یک چارچوب جاوا اسکریپت کوچک است که باعث می شود رندر برنامه های کاربردی React آسان تر شود. این توسط ZEIT ایجاد شده و در سال 2016 باز شده است. Next.js با استفاده از React، Webpack و بابل ساخته شده است. این چارچوب جاوا اسکریپت قصد دارد تا توسعه دهندگان را قادر به نوشتن یک برنامه React ایزومورفین کند تا بتوانند از یک منطق رندر برای هر دو طرف مشتری و طرف سرور استفاده کنند.

Next.js ارائه می دهد ویژگی هایی از جمله ساده مسیریابی مشتری، کد تقسیم خودکار، محیط توسعه مبتنی بر Webpack با پشتیبانی از HMR. این پشتیبانی از دو حالت پردازش سمت سرور: صادرات استاتیک و بر اساس تقاضا است.

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

2. Gatsby.js

Gatsby یکی دیگر از چارچوب جاوا اسکریپت خوب است که می توانید در سال 2019 یاد بگیرید. این یک ژنراتور وب سایت مدرن برای React.js است که اساسا همه چیز را در Gatsby.js با استفاده از اجزای ساخته شده است. این اولین بار در سال 2015 توسط Kyle Mathews که در سال 2017 کار خود را رها کرده بود آغاز شد و شروع به تمرکز کامل در پروژه های خود کرد: Gatsby.js و Typography.js.

اولین نسخه Gatsby.js در سال 2017 عرضه شد. شما می توانید از آن برای ایجاد صفحات وب / برنامه های وب مانند پویا و استاتیک از جمله وبلاگ ها، وب سایت های تجارت الکترونیک، داشبورد و غیره استفاده کنید. هنگامی که به منابع پایگاه داده ها می آید، Gatsby از فایل های Markdown پشتیبانی می کند، سیستم مدیریت محتوا مانند Contentful یا WordPress، یا REST یا API GraphQL. Gatsby.js همچنین فرآیندهای مهم مانند تقسیم کد، بهینه سازی تصویر، بارگذاری تنبل، پیشفرض منابع را آسان می کند و همه چیز را ساده تر می کند.
3. Nest.js
Nest یک چارچوب جاوا اسکریپت برای ساخت برنامه های کاربردی Node.js محسوب می شود، قابل اعتماد و کارآمد است. این توسط Kamil Mysliwiec ایجاد شده و در سال 2017 منتشر می شود.

Nest.js در بالای TypeScript و جاوا اسکریپت ساخته شده و به شدت توسط Angular الهام گرفته شده است. همچنین از سیستم ماژول / کامپوننت پیروی می کند و قابلیت استفاده مجدد را افزایش می دهد. این بر اساس مفاهیم نگهبان ها، لوله ها و رهگیرهاست و با پشتیبانی از WebSockets و gRPC ساخته شده است.

Nest.js با استفاده از اکسپرس و به طور کلی با تعداد زیادی از کتابخانه های محبوب سازگار است. این اکثرا از اکثریت انتزاعها استفاده از کلاسها، دکوراتورها، بازتابهای ابرداده است.

آیا TypeScript می‌تواند جایگزین JavaScript شود

۵۶۲ بازديد
در حال حاضر شواهد بیشتری وجود دارد که زبان مایکروسافت برای افزایش سرعت جاوا اسکریپت، TypeScript برای توسعه دهندگان برای اینترنت ضروری است.

ماه گذشته ماه گذشته شرکت RedMonk تحلیلگر برنامه نویسی اشاره کرد که TypeScript، مایکروسافت نسخه هفت ساله محبوب ترین زبان برنامه نویسی جاوا، جاوا اسکریپت، در حال حاضر 12 مورد محبوب ترین زبان بر اساس پروژه های GitHub و پچ پچ توسعه است.

دلیل این افزایش را می توان در آخرین بررسی 33000 توسعه دهندگان از 156 کشور که از npm استفاده می کنند، بسیار محبوب Node.js جاوااسکریپت جاوااسکریپت جاوا که به طور سنتی برای ساختن ویژگی های وب استفاده می شود، یافت می شود.

اما، با افزایش PWA ها یا برنامه های پیشرفته وب، جاوا اسکریپت به طور فزاینده ای برای ساخت برنامه های تلفن همراه و دسکتاپ بومی به کار می رود، بلکه به عنوان مثال، C و C ++، زبان هایی است که به طور سنتی برای ساخت برنامه های بومی Win32 استفاده می شود.

همانطور که در توسعه دهندگان npm، تعجب بزرگ در نظرسنجی سال گذشته بود که 46 درصد از پاسخ دهندگان گفتند که از TypeScript استفاده می کنند. امروز، نسبت توسعه دهندگان که از منبع باز مایکروسافت در جاوا اسکریپت استفاده می کنند، به 62 درصد افزایش یافته است. حدود 15 درصد از آنها از کتابخانه های دیگر توسعه دهندگان استفاده می کنند که به چارچوب زوایای محبوب نسبت داده شده است و "90 درصد [UseScript TypeScript]" استفاده می شود.

"به طور کلی، 36 درصد از کاربران npm Typyscript را تقریبا یا اغلب وقت می نویسند. یک سوم از کاربران در جامعه جاوا اسکریپت، طعم کاملا جدیدی از جاوا اسکریپت را ایجاد می کنند تا همه را نشناسند و متوجه شوند،" توسعه دهندگان npm می نویسند.

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


ضربه با مایکروسافت با TypeScript به عنوان کد منبع باز متقارن کد منبع ویژوال استودیو کد یا VS Code، نقطه ای شیرین با توسعه دهندگان در سراسر جهان پیدا می کند که از 500000 توسعه دهنده در سال 2016 به 4.5 میلیون نفر در سال 2019 افزایش یافته است.

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

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

"ما شگفت زده شدیم که 33 درصد از توسعه دهندگان با استفاده از تکنیک هنوز" نسبتا جدید "بدون سرور" شناخته می شوند، همچنین به عنوان توابع Cloud یا Lambdas شناخته می شوند. "توسعهدهندگان npm می گویند.

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

با این حال، npm همچنین دریافت که 46 درصد از آن برای نوشتن کد برای برنامه های بومی که در سیستم های تلفن همراه و دسکتاپ استفاده می کنند استفاده می کنند.


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

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