Hacker News

ئێمە C++ ی تاکە ڕەگمان لەگەڵ Rust ی فرە ڕەگدا پەیوەندیمان کرد

ئێمە C++ ی تاکە ڕەگمان لەگەڵ Rust ی فرە ڕەگدا پەیوەندیمان کرد ئەم شیکارییە گشتگیرەی interfaced پشکنینی وردی پێکهاتە سەرەکییەکانی و کاریگەرییە فراوانترەکانی پێشکەش دەکات. بوارە سەرەکییەکانی گرنگیدان گفتوگۆکە لەسەر: کۆر میک...

1 min read Via antithesis.com

Mewayz Team

Editorial Team

Hacker News
لێرەدا پۆستی تەواوی بلۆگی SEO دەخەینەڕوو:

ئێمە C++ ی تاکە ڕەگمان لەگەڵ Rust ی فرە ڕەگدا پەیوەندیمان کرد

ڕێککەوتنی کۆدی ++C ی تاکە ڕەگ لەگەڵ Rust ی فرە ڕەگدا نەک هەر ناتوانرێت — ئەمە یەکێکە لە پراکتیکیترین ڕێگاکان بۆ مۆدێرنکردنی سیستەمی میراتی بەبێ دووبارە نووسینەوەی تەواو. لە Mewayz، ئێمە ڕوبەڕوی ئەم تەحەدایە وردە بووینەوە کاتێک سیستەمی کارپێکردنی بازرگانی 207 مۆدیۆلیمان گەورە کرد بۆ خزمەتکردنی 138,000 بەکارهێنەر، و ئەنجامەکان لە بنەڕەتدا گۆڕانکارییان لە چۆنیەتی بیرکردنەوەمان لە کارکردنی یەکتری سیستەمەکان کرد.

بۆچی C++ ی تاکە ڕەگ لەگەڵ Rust ی فرە ڕەگدا ڕووکار دەکەیت؟

زۆربەی سیستەمەکانی بەرهەمهێنان هەڵگری ساڵانێک کۆدی ++C کە لە شەڕدا تاقیکراونەتەوە. دووبارە نووسینەوەی هەموو شتێک لە فیلمی Rust لەسەر کاغەز سەرنجڕاکێشە، بەڵام مەترسییەکی گەورە و چەند مانگێک کات بەسەربردن لە ئەندازیاریدا دەناسێنێت. ڕێبازی پراگماتیک بریتییە لە وەرگرتنی زیادە — پێچانی لۆژیکی ++C هەبوو لە کاتێکدا باری کاری قورس لە هاوکاتدا دابەزێنیت بۆ مۆدێلی خاوەندارێتی Rust.

لە دۆخی ئێمەدا، مۆدیولەکانی لۆژیکی بازرگانی سەرەکی ساڵانێک بوو بە شێوەیەکی متمانەپێکراو لە ++C ی تاکە ڕەگدا کاریان دەکرد. ئەوان مامەڵەیان لەگەڵ پرۆسێسی ئەرکە یەک لە دوای یەکەکان، دروستکردنی بەڵگەنامە و حیساباتی دارایی دەکرد. بەڵام لەگەڵ گەشەکردنی بنکەی بەکارهێنەرانمان لە 100K تێپەڕین، پێویستمان بە پرۆسێسی داتا هاوتەریبەکان، مامەڵەکردنی هاوکاتی API و بەڕێوەبردنی سەلامەتی دۆخی هاوبەش بوو. تایبەتمەندییەکانی Send و Sync ی Rust گەرەنتی هاوکاتی کاتی کۆمپایڵیان پێداین کە C++ بە سادەیی نەیدەتوانی بەبێ وردبینییەکی دەستی بەرفراوان پێشکەشی بکات.

پاڵنەرە سەرەکییەکە کەمکردنەوەی مەترسییە. تۆ ئەوەی کاردەکات دەیهێڵیتەوە، و چ تەرازوویەک زیاد دەکەیت — بەبێ ئەوەی قومار لەسەر تەواوی بنکەدراوەی کۆدەکەت بکەیت لەسەر کۆچکردنێک کە ڕەنگە هەرگیز تەواو نەبێت.

لە ڕاستیدا سنووری FFI چۆن کاردەکات؟

ڕووکاری فەنکشنی بیانی (FFI) لە نێوان C++ و Rust لە ڕێگەی واژۆی فەنکشنی گونجاو لەگەڵ C کاردەکات. بلۆکەکانی extern "C" ی Rust ئەو فەنکشنانە ئاشکرا دەکەن کە سی++ دەتوانێت ڕاستەوخۆ بانگیان بکات، و بە پێچەوانەشەوە. تەحەدای گرینگ کاتێک سەرهەڵدەدات کە کاتی جێبەجێکردنی فرە ڕەگەکانی Rust پێویستی بە بانگهێشتکردنی کۆدی ++C ی تاکە ڕەگ هەیە بە شێوەیەکی سەلامەت.

ئێمە ئەمەمان چارەسەر کرد بە بەکارهێنانی بیناسازییەکی تایبەت:

  • جێبەجێکەری ++C کە بە تەوەرەوە سنووردار کراوە: هەموو بانگەوازەکانی ++C لە ڕێگەی یەک ڕەگی تایبەتەوە بە بەکارهێنانی کەناڵی گواستنەوەی پەیام دەگوازرێنەوە، دڵنیابوون لەوەی کە نەگۆڕەکەی تاکە ڕەگ هەرگیز پێشێل ناکرێت.
  • چینی پردی ناهاوسەنگی ژەنگ: ئەرکەکانی تۆکیۆ کارەکان پێشکەش بە جێبەجێکاری ++C دەکەن و ئەنجامەکانی چاوەڕوان لە ڕێگەی کەناڵەکانی یەکجارەوە، لایەنی ژەنگ بە تەواوی ناهاوسەنگ دەهێڵنەوە.
  • بەڕێوەبردنی ئاماژەدەری ناڕوون: شتەکانی ++C لە پێکهاتەکانی Rust دەپێچرێنەوە کە Drop بۆ پاککردنەوەی دیاریکراو جێبەجێ دەکەن، ڕێگری لە دزەکردنی بیرگە دەکات لە سنووری زمانەکەدا.
  • ڕیزبەندیکردن لە سنوور: پێکهاتەی داتا ئاڵۆزەکان زنجیرەیی دەکرێن بۆ FlatBuffers لە چینەکەی FFI، دوورکەوتنەوە لە هاوتاکردنی نەخشەی پێکهاتەی ناسک و چالاککردنی پەرەسەندنی سەربەخۆی هەر لایەنێک.
  • دابڕانی ترس: catch_unwind ی Rust هەموو خاڵێکی چوونە ژوورەوەی FFI دەپێچێتەوە بۆ ئەوەی ترس و دڵەڕاوکێ هەرگیز سنووری زمانەکە نەبڕێت، کە ئەمەش دەبێتە ڕەفتارێکی پێناسە نەکراو.

ئەم نەخشە توانای Rust ی فرە ڕەگی پێداین لەگەڵ متمانەپێکراوی لۆژیکی سەلمێنراوی ++C — بەبێ ئەوەی یەک دێڕ لە یاساکانی بازرگانی ڕەسەن بنووسینەوە.

گەورەترین تەڵەکان چین کە دەبێت لێی دوور بکەویتەوە؟

مەترسیدارترین هەڵە ئەوەیە کە گریمانە بکەین کە کۆدی ++C سەلامەتە لە تەوەردا لەکاتێکدا سەلامەت نییە. دۆخی جیهانی، گۆڕاوە ئیستاتیکەکان و بانگەوازەکانی کتێبخانە کە دووبارە ناچنە ژوورەوە دەبنە هۆی پێشبڕکێی داتا کە کۆمپایەرەکەی Rust ناتوانێت لە سنووری FFI دەستنیشان بکات. گەرەنتیەکانی سەلامەتی Rust لە بلۆکی unsafe دەوستن — هەموو شتێک لە ناوەوە بەرپرسیارێتی تۆیە.

<بلۆککۆت>

تێگەیشتنی سەرەکی: Rust گەرەنتی سەلامەتی بیرگە دەکات لە چوارچێوەی کۆدی خۆیدا، بەڵام لەو ساتەی کە سنوورێکی FFI دەبڕیت بۆ ناو C++، هەموو کێشەیەکی سەلامەتی تەوەرەکان کە سی++ هەیەتی بە میرات دەگریت. تەلارسازی دەوروبەری ئەو سنوورە زیاتر گرنگە لە کۆدی هەر لایەکی.

💡 DID YOU KNOW?

Mewayz replaces 8+ business tools in one platform

CRM · Invoicing · HR · Projects · Booking · eCommerce · POS · Analytics. Free forever plan available.

Start Free →

تەڵەیەکی دیکەی باو بەڕێوەبردنی تەمەنە. ئۆبجێکتی سی++ بەشداری لە پشکنەری قەرزکردنی Rust ناکەن. ئەگەر Rust ئاماژەیەک دابەزێنێت لە کاتێکدا C++ هێشتا ئاماژەدەرێکی لە دەستدایە، ئەوا هەڵەی بەکارهێنان دوای بێبەرامبەرت دەست دەکەوێت کە دەستنیشانکردنی بە شێوەیەکی دڕندانە قورسە. ئێمە ئەمەمان بە جێبەجێکردنی ماناسازی توندی خاوەندارێتی چارەسەر کرد: شتەکانی ++C هەمیشە بە تەواوی لەلایەن یەک پێچەری Rust خاوەندارێتی دەکرێن، و دەستڕاگەیشتنێکی هاوبەش بە ژماردنی ئاماژە لەسەر بنەمای Arc لە لایەنی Rust دەڕوات.

لە ڕووی کاراییەوە، پەیوەندییە زیادەڕۆییەکانی FFI لە گۆڕینی کۆنتێکست و زنجیرەییکردنەوە سەرپێچی دروست دەکەن. ئێمە لە هەر شوێنێک کە بتوانین کارەکان وەجبە دەکەین، ڕیزێک لە بابەتە کارەکان دەنێرین بۆ جێبەجێکاری ++C نەک بانگەوازی تاکەکەسی زمانی یەکتر.

ئەم ڕێبازە لە بەرهەمهێناندا چۆن بووە؟

دوای بڵاوکردنەوەی تەلارسازی تێکەڵاو لە سەرانسەری پلاتفۆرمەکەماندا، ئێمە پێشکەوتنە کۆنکرێتییەکانمان پێوانە کرد. توانای داواکاری بە ڕێژەی 3.4x زیادی کردووە بۆ ئەو مۆدیولانەی کە پێشتر لە پرۆسێسینگێکی ++سی یەک لە دوای یەکدا گەردنی تەنگیان هەبووە. وەستانی کلک (p99) بە ڕێژەی 61% دابەزی چونکە کاتی جێبەجێکردنی ناهاوسەنگی Rust دەتوانێت داواکارییە سەربەخۆکان لە یەک کاتدا پرۆسێس بکات لە کاتێکدا C++ ئەرکە قورسەکانی حیساباتی لەسەر تەوەرە تایبەتەکەی مامەڵەی لەگەڵ دەکرد.

لەوەش گرنگتر، لە شەش مانگی یەکەمی بەرهەمهێناندا سفر هەڵەی پەیوەست بە هاوکاتیمان هەبوو. شێوازی زیندانیکردنی تەوەرەکان وایکرد کە لە ڕووی پێکهاتەییەوە مەحاڵ بێت کە کۆدی ++C لە چەندین تەوەرەوە بانگ بکرێت، لە کاتێکدا سیستەمی جۆری Rust ڕێگری لە پێشبڕکێی داتاکان دەکرد لە لای سنوورەکەی. ئەمە پێشکەوتنێکی بەرچاو بوو بە بەراورد بە ڕێبازی پێشوومان کە هەوڵمان دەدا ڕێڕەوکردن بۆ C++ بە میوتێکسەکان زیاد بکەین، کە سێ ڕووداوی بارودۆخی ڕەگەزی لە یەک چارەکدا بەرهەمهێنابوو.

هەروەها تیمی ئەندازیاری ڕاپۆرتی خولەکانی دووبارەبوونەوەی خێراتریان دا. دەتوانرێت تایبەتمەندی نوێ لە Rust دروست بکرێت بە پشتگیری تەواوی هاوکات، لە کاتێکدا مۆدیولەکانی ئێستای ++C بەبێ دەستکاری بەردەوام بوون لە کارکردن. ئەم ستراتیژییە زیادەیە بەو مانایە بوو کە ئێمە هەرگیز کۆچێکی "تەقینەوە گەورە"ی مەترسیدارمان نەبووە — تەنها باشتربوونی جێگیر و پێوانەکراو.

پرسیارە زۆرەکان

ئایا Rust دەتوانێت بەبێ دەستکاریکردن بانگهێشتی کتێبخانە تاکە ڕەگەکانی C++ بکات؟

بەڵێ، بەڵام دەبێت دڵنیا بیت لەوەی کە هەموو پەیوەندییەکان بۆ ئەو کتێبخانە لە یەک تەوەرەوە ڕوودەدەن. نەخشەی ستاندارد بریتییە لە دروستکردنی ڕەگێکی جێبەجێکاری تایبەت کە هەموو پەیوەندییەکانی ++C لە ڕێگەی کەناڵێکەوە زنجیرەیی دەکات. ئەرکەکانی async ی Rust داواکاریەکان پێشکەش دەکەن و چاوەڕێی وەڵامەکان دەکەن بەبێ ئەوەی کاتی جێبەجێکردنی فرە ڕەگەکان بلۆک بکەن. کۆدی ++C خۆی پێویستی بە هیچ گۆڕانکارییەک نییە — سنووردارکردنی سەلامەتی بە تەواوی لە لایەنی Rust جێبەجێ دەکرێت.

ئایا سەرپێچی FFI ئەوەندە گرنگە کە کاریگەری لەسەر کارایی بەرنامەکە هەبێت؟

پەیوەندییە تاکەکەسییەکانی FFI کەمترین سەرپێچییان هەیە — بە شێوەیەکی گشتی لە ژێر 10 نانۆ چرکە بۆ پەیوەندییەکی سادەی فەنکشن. بەڵام زنجیرەییکردنی پێکهاتەی داتا ئاڵۆزەکان و هاوکاتکردنی تەوەرەکان لە سنوورەکەدا کۆدەبنەوە ئەگەر هەزاران پەیوەندی ورد بکەیت. وەجبەکردنی کارەکان و بەکارهێنانی فۆرماتەکانی زنجیرەیی سفر-کۆپی وەک FlatBuffers یان Cap'n Proto تەنانەت لە قەبارەدا سەرپێچی بە کەم دەهێڵێتەوە.

ئایا پێویستە بنکەی کۆدەکانی ++C لە Rust بنووسینەوە لەبری ڕووکارکردن؟

بۆ زۆربەی تیمەکان، ڕووکارکردنی زیادە ڕێگای سەلامەتتر و خێراترە. دووبارە نووسینەوەیەکی تەواو چەند مانگێک مەترسی ئەندازیاری دەناسێنێت کە هیچ بەهایەکی ڕووبەڕووی بەکارهێنەر نییە تا تەواوبوون. ڕووکارکردن ڕێگەت پێدەدات دەستبەجێ باشترکردنەکان بنێری، ڕێبازی Rust لە بەرهەمهێناندا پشتڕاست بکەیتەوە، و مۆدیولەکان یەک بە یەک کۆچ بکەیت بە پشتبەستن بەوەی کە هاوکاتی زۆرترین کاریگەری لە کوێدا هەیە. تەنها ئەو مۆدیولانە بنووسە کە تێچووی پاراستنی سنووری FFI لە تێچووی دووبارە نووسینەوە زیاترە.


لە مێوایز، ئێمە ژێرخانی دروست دەکەین کە قەبارەکەی گەورە دەکات — چ لە ڕووی تەکنیکی و چ لە ڕووی کارپێکردنەوە. سیستەمی کارپێکردنی بازرگانی 207 مۆدیولمان یارمەتی 138,000 تیم دەدات کە کاری زیرەکتر بەڕێوەببەن کە لە 19 دۆلارەوە دەستپێدەکات/مانگانە. جا تۆ بەڕێوەبردنی پڕۆژەکان بیت، ئۆتۆماتیکیکردنی کارەکانت، یان گەورەکردنی کارەکەت، مێوایز خۆی لەگەڵ شێوازی کارکردنتدا دەگونجێنێت. تاقیکردنەوە بێبەرامبەرەکەت لە app.mewayz.com دەست پێ بکە و بزانە سیستەمی کارپێکردنی بازرگانی مۆدێرن دەتوانێت چی بۆ تیمەکەت بکات.

Try Mewayz Free

All-in-one platform for CRM, invoicing, projects, HR & more. No credit card required.

Related Guide

HR Management Guide →

Manage your team effectively: employee profiles, leave management, payroll, and performance reviews.

Start managing your business smarter today

Join 30,000+ businesses. Free forever plan · No credit card required.

Ready to put this into practice?

Join 30,000+ businesses using Mewayz. Free forever plan — no credit card required.

Start Free Trial →

Ready to take action?

Start your free Mewayz trial today

All-in-one business platform. No credit card required.

Start Free →

14-day free trial · No credit card · Cancel anytime