کد نویسی

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

زبان برنامه نویسی R یا پایتون؟ کدامیک برای تحلیل داده بهتر هستند؟

۵۸۹ بازديد
بحث در مورد Python در مقابل R در جامعه دانشمند اطلاعات، در اینجا نحوه دو زبان برنامه نویسی مطابقت دارد.

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

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

Matloff R و Python را در 10 دامنه زیر مقایسه کرد تا تعیین کنند کدام زبان برنامه نویسی بهتر انتخاب شده است:

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

منحنی یادگیری
برنده: R

در حالی که دانشمندان داده ها با پایتون باید بسیاری از مواد را برای شروع به یادگیری، از جمله NumPy، Pandas و matplotlib یاد بگیرند، انواع ماتریس و گرافیک پایه در پایه R ساخته شده است، Matloff نوشت.

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

کتابخانه های موجود
برنده: جفت

شاخص بسته پایتون (PyPI) دارای بیش از 183000 بسته است، در حالی که شبکه جامع R Archive (CRAN) بیش از 12،000 دارد. Matloff نوشت، با این حال، PyPI نسبت به علوم داده بسیار نازک است.

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

هنگامی که شرایط زیر را در PyPI جستجو می کنید، هیچ چیز نمی آید، Matloff افزود: مدل log-line؛ رگرسیون پواسون؛ متغیرهای ابزار؛ داده های فضایی؛ نرخ خطای خانوادگی.

یادگیری ماشین
برنده: پایتون (اما نه خیلی زیاد)

رشد گسترده پایتون در سال های اخیر بخشی از افزایش یادگیری ماشین و هوش مصنوعی (AI) است. Matloff نوشت: در حالی که دوره Python تعدادی از کتابخانه های دقیق را برای تشخیص تصویر ارائه می دهد، مانند AlexNet، نسخه های R نیز به آسانی قابل توسعه می باشند.

"قدرت کتابخانه های پایتون از تنظیم برخی از عملیات تشخیص تصویر است که می تواند به راحتی در پوشه Reras Keras اجرا شود و از این رو، یک نسخه خالص از TensorFlow می تواند توسعه یابد"، Matloff نوشت. "در همین حال، من می خواهم ادعا کنم که در دسترس بودن بسته های R برای جنگ های تصادفی و تقویت شیب قابل توجه است."

صحت آماری
برنده: R (تا کنون)

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

محاسبات موازی
برنده: جفت

متلوف نوشت: نسخه های پایه R و Python پشتیبانی زیادی برای محاسبات چندگانه ندارند. بسته multiprocessing پایتون یک راه حل خوب برای مسائل دیگر آن نیست، و بسته موازی R نیز نیست.

ماتلوف نوشت: "کتابخانه های خارجی که از محاسبه خوشه پشتیبانی می کنند در هر دو زبان خوب هستند." "در حال حاضر پایتون رابط کاربری بهتر را به GPU ها دارد."

رابط C / C ++
برنده: R (اما نه خیلی زیاد)

متلوف نوشت: Rcpp R یک ابزار قدرتمند برای اتصال R به C / C ++ است. در حالی که پایتون ابزارهایی مانند swig برای انجام این کار دارد، آنقدر قدرتمند نیست و بسته Pybind11 هنوز در حال توسعه است. ماتلوف نوشت: ایده جدید ALTREP R همچنین دارای قابلیت بالقوه برای افزایش عملکرد و قابلیت استفاده است. با این حال، انواع Cython و PyPy از Python گاهی اوقات می تواند نیاز به رابط C / C ++ صریح را حذف کند.

جهت گیری شی، metaprogramming
برنده: R (اما نه خیلی زیاد)

ماتلوف نوشت، اگرچه توابع اشیا در هر دو R و Python هستند، R آن را جدی تر می گیرد.

او گفت: "هر زمان که من در پایتون کار می کنم، من از این واقعیت که من نمی توانم یک تابع را به ترمینال، که من در R بسیار کار می کنم، ناراحت هستم." پایتون تنها یک پارادایم OOP دارد. در R، شما انتخاب خود را از چند، هر چند برخی ممکن است بحث که این خوب است. با توجه به ویژگی های متالورژیم جادویی R (کد تولید کد)، دانشمندان کامپیوتر باید روی R قرار بگیرند. "

اتحاد زبان
برنده: پایتون (تا کنون)

در حالی که پایتون از نسخه 2.7 به 3.x منتقل می شود، این باعث ایجاد اختلال زیادی نمی شود. با این حال، متولف نوشت: R به دلیل تاثیرات RStudio: R و Tidyverse به دو گویش متفاوت تبدیل شده است.
ماتلوف نوشت: "شاید بهتر باشد اگر Tidyverse برتر از R معمولی باشد، اما به نظر من این نیست." "این باعث می شود همه چیز برای مبتدیان مشکل تر است."

ساختارهای داده مرتبط هستند
برنده: پایتون (به احتمال زیاد)

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

طبق یک گزارش آکادمی ابر 2018، هنگامی که به پست های کاری می آید، تقاضا برای مهندسان داده با R در مقایسه با افرادی که در پایتون مهارت دارند، کم است. تقریبا 66٪ از پست های پست شده توسط مهندسین داده مربوط به پایتون بوده است، در مقایسه با فقط 18٪ از پست هایی که اشاره کردید.

طبق گفته Cloud Academy، خارج از R و Python، دیگر مهارت های درخواستی برای مهندسان داده شامل SQL، Spark، Hadoop، Java، Amazon Web Services (AWS)، Scala و کافکا هستند.

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

۵۶۷ بازديد

من برای سالهای زیادی از زبان های پویا استفاده کرده ام - Perl، Ruby و Python. من عاشق انعطاف پذیری و بیاناتی هستم که چنین زبان هایی را ارائه می دهند. به عنوان مثال، می توانم یک تابع را تعریف کنم که عدد را ارزیابی می کند:


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

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

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

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

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

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

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

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

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

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

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

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

عملکرد mysum که پیشتر شما را 0 را به متغیر "total" محلی اختصاص دادید، و سپس هر یک از عناصر اعداد را به آن اضافه می کند. این به این معنی است که اگر اعداد حاوی عدد غیر عادی باشند، شما در معرض مشکل هستید. خوشبختانه mypy قادر به حل این مشکل برای شما خواهد بود.

جاوا، PHP یا .NET کدام یک برای یادگیری زبان برنامه نویسی بهتر هستند

۵۵۳ بازديد
حقوق برای مهارت های برنامه نویسی مورد نیاز، از جمله جاوا و پی اچ پی، به سرعت در حال افزایش است. حقوق و دستمزد های فناوری تبلیغ شده برای سال سوم سالانه افزایش یافته است که در سال 2018 1.7٪ افزایش یافته است و هزینه های تخصصی فناوری به طور قابل ملاحظه ای افزایش یافته است، زیرا تقاضا برای توسعه دهندگان .NET، PHP و Java ادامه دارد.

در طول این سه سال، برنامه نویسی جاوا بزرگترین افزایش حقوق را تجربه کرده اند - 41٪. حقوق و دستمزد آنها بین سال 2018 تا سال جاری 6 درصد افزایش یافته است - متوسط ​​توسعهدهنده جاوا 63.700 پوند را به دست آورده است، گرچه ممکن است به 70.700 پوند برسد با توجه به اطلاعات شرکت استخدام رید.

دومین نقش برنامه نویسی بهترین پرداختی، توسعه دهنده کامل پشته بود، که به طور میانگین 53.500 پوند را پرداخت می کند و به 60.300 پوند افزایش می یابد. این در مقایسه با سال گذشته 5.6٪ و در سال 2018 18.8٪ است.


برنامه نویسی پی اچ پی در دوره سه ساله افزایش حقوق را به میزان 20.6 درصد افزایش داده اند و از بزرگترین افزایش هر نوع تکنیک در سال گذشته تا 6.9 درصد افزایش یافته است. توسعه دهندگان دات نت نیز در طول دوره افزایش قابل ملاحظه ای را در حقوق بازنشستگی مشاهده کرده اند، در حالی که درآمد متوسط ​​از 39،900 پوند در سال 2016 به 47،400 پوند در سال جاری افزایش یافته است - افزایش 18.8 درصدی.

در اغلب زبان های برنامه نویسی محبوبیت جاوا اسکریپت، جاوا و پایتون محبوب ترین زبان هاست.

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


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

در واقع، بر اساس داده های Reed، یکی از شغل های کوچک که در سه سال گذشته کاهش پرداخت کاهش یافته است، مدیر فناوری اطلاعات است که گفته می شود بین سال های 2016 و 2018 کاهش یافته است، اما این رقم در سال جاری به اندازهای افت می کند. به طور کلی متوسط ​​درآمد مدیر IT در دوره زمانی از 89200 پوند به 83،600 پوند کاهش یافته است.

طبق گفته رید، این افزایش حقوق با افزایش تقاضا برای پرسنل با این مهارت ها همراه است: در حالی که تعداد کلی نقش های تبلیغاتی که از زمان شروع سال 2018 اعلام شده، 10٪ افزایش یافته است، نقش های متخصص مانند دانشمند داده (20٪)، توسعه دهنده دات نت (13٪) و توسعه دهنده BI (13٪)، افزایش قابل ملاحظه ای بیش از حد متوسط ​​داشتند. تقاضا برای توسعه دهندگان کامل - یک نقش که می تواند مهارت های مختلف توسعه دهنده را تقاضا کند - همچنین به سرعت در حال افزایش است، با افزایش 41٪ در نقش های تبلیغ شده از زمان شروع سال 2018.

داده ها از شغل هایی است که در وب سایت Reed بین سال های 2015 تا 2017 منتشر شده اند و حقوق های تبلیغ شده.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

کدام زبان برنامه نویسی بیشترین آسیب‌پذیری را دارد

۵۵۰ بازديد

دنیای تکنولوژی بدون نقص های امنیتی معنا ندارد؛ از حفره های سخت افزاری مانند ملتداون و اسپکتر در پردازنده های اینتل گرفته تا ایرادات نرم افزاری در زبان های برنامه نویسی. به تازگی شرکت امنیتی «وایت سورس» آسیب پذیری های موجود در 7 زبان برنامه نویسی پرکاربرد طی ده سال اخیر را بررسی کرده و نتایج جالبی را به دست آورده است.

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

گزارش وایت سورس

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

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

جاوا اسکریپت که احتمالاً محبوب ترین زبان برنامه نویسی عصر حاضر به شمار می رود، تنها موردیست که طی 10 سال اخیر با افزایش مداوم تعداد آسیب پذیری ها روبرو بوده است. البته بیشتر معضلات امنیتی جاوا اسکریپت از نوع Path Traversal بوده یا مربوط به پکیج های ثالث هستند و فقط توسط ابزارهای آنالیز کد منبع شناسایی می شوند.

همان طور که انتظار می رود، شاهد عملکرد بسیار خوب زبان برنامه نویسی قدیمی پایتون از نظر امنیت هستیم. تقریباً تمامی زبان ها از حفره های امنیتی مشترک رنج می برند. دو نقص امنیتی که در 70 درصد زبان ها دیده می شوند، عبارتند از CWE-79 یا «تزریق اسکریپت از طریق وبگاه» و CWE-20 که به اعتبارسنجی داده ها مربوط است.
منبع: بلاگ گروه شرکت‌های کهکشان

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

۵۹۹ بازديد

دیروز، مایکروسافت یک پیکان نوع جدید استاتیک برای Python به نام Pyright برای پر کردن شکاف موجود در پیکان های موجود پایتون مانند mypy منتشر کرد. در حال حاضر، این نوع چک کننده از Python 3.0 و نسخه های جدیدتر آن پشتیبانی می کند.

ویژگی های بررسی نوع Pyright به چه معناست؟
با پشتیبانی از PEP 484 (نکات نوعی از جمله ژنریک)، PEP 526 (نحو برای حاشیه نویسی متغیر) و PEP 544 (زیرشیو ساختاری) می آید.
این پشتیبانی از نوع استنتاج برای مقادیر بازگشت عملکرد، متغیرهای مثال، متغیرهای کلاس و globals است.
این نوع محدودیت های هوشمند را فراهم می کند که می توانند سازه های جریان شرطی مانند دستورات if / else را درک کنند.
افزایش سرعت
Pyright در مقایسه با mypy و دیگر نوع چک های نوع موجود در Python، سرعت 5 برابر را نشان می دهد. این در حالی است که منابع اصلی پایگاه های بزرگ را در ذهن نگه داشته و می تواند به روز رسانی های افزایشی زمانی که فایل ها اصلاح می شود.

بدون نیاز به تنظیم محیط پایتون لازم نیست
از آنجا که Pyright در TypeScript نوشته شده است و درون گره اجرا می شود، شما نیازی به تنظیم یک محیط پایتون یا وارد کردن بسته های شخص ثالث برای نصب ندارید. این در هنگام استفاده از ویرایشگر کد VS، که دارای گره به عنوان زمان اجرا آن است، بسیار مفید است.

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