Rust for Python developers
بخش سایبری کاخ سفید یا همون : Office of the National Cyber Director (ONCD) توی یک مقاله که هفته قبل منتشر شده گفته که نرمافزارهای آینده باید به سمت memory safe بودن حرکت کنند (لینک مقاله رو میذارم) که همین نکته بازم به نفع جامعه توسعه دهنده Rust شده و خیلی…
DARPA ( Defence Advanced Research Project Agency)گزارشی رو منتشر کرده و در مورد پروژهای به اسم
TRACTOR صحبت کرده حالا داستان چیه گفتن که مشکلات مربوط به مموری
C, C++ ما و برنامهنویسها رو پیر کرده با TRACTOR که خلاصه شده Translating All C to Rustهدف اینه که بصورت اتومات کدهای
C رو به Rust تبدیل کنیم (کیفیت رو از دست ندیم، که احتمال زیاد LLM ها هم نقش خواهند داشت)https://www.darpa.mil/program/translating-all-c-to-rust
👍16🔥7👏3
Rust for Python developers
از امروز سعی میکنم گزارش هفتگی بدم؛ مگر اینکه سورس یا مطلب جذابی پیدا کنم چون بخش زیادی از اندک وقتی که امروز داشتم سر کد زدن رفت فقط فرصت کردم؛ نیمی از فصل ۱۵ رو بخونم. موقع کد زدن برای درک بهتر بعضی مفاهیم بسیار سرچ داشتم ولی خب هدف اصلی کتاب هست.
قرار بود گزارش هفتگی بدم که بسیار بسیار درگیر شدم روی پروژه
بطوری که حتی تایم خود پروژه رو هم نداشتم (۲ تا پروژه با اولویت بالاتر بهم سپرده شد)
شرکتی هم که توی ایران باهاش کار میکنم یک سری مشکلات داشتیم که مجبور شدیم چندروز تا ۱۱-۱۲ شب توی شرکت بمونیم.
کتاب اصلی رو تموم کردم؛ فصل ۲۰ مونده که باید پیادهسازیش کنم.
پروژه هم تا جایی که پیش رفت نسخه
اولیش تمرینی خواهد بود برای کار با لایبراریهای ترمینال که
و خب چی بهتر از یک
این پروژه علاوه بر کار با ترمینال؛
دوم؛ برای یک ایده که توی ذهنم هست؛ نیاز دارم یک
علاوه بر اون کار با دیتابیس و ... هم توی اسکیل بالاتر تست میشه
اگر بتونم کار با
پروژه سوم هم بماند چیه چون اگر بتونم دیزاین و .. اش رو انجام بدم و منطقی باشه برای پیادهسازی حتما بصورت
ولی از طرف شرکت که چندتا
اگر خواستید شما هم تمرین کنید؛ یا پروژه تمرینی با داکیومنت خوبی دارید.
زیر همین پست گیتهاب پروژه خودتون رو به اشتراک بذارید؛ بعضی وقتا حتی یک ابزار کوچیک هم کار خیلیهارو راه میندازه
یادتون نره
بطوری که حتی تایم خود پروژه رو هم نداشتم (۲ تا پروژه با اولویت بالاتر بهم سپرده شد)
شرکتی هم که توی ایران باهاش کار میکنم یک سری مشکلات داشتیم که مجبور شدیم چندروز تا ۱۱-۱۲ شب توی شرکت بمونیم.
کتاب اصلی رو تموم کردم؛ فصل ۲۰ مونده که باید پیادهسازیش کنم.
پروژه هم تا جایی که پیش رفت نسخه
Rust رو هم پیش بردم؛ ولی چون خیلی اون پروژه داره کند پیش میره (سمتها دیگر) و البته با توجه به ماهیت فعلی پروژه تمرین جدی مثل concurrency, async, ... نداره تصمیم گرفتم ۱-۲ تا پروژه دیگه هم اضافه کنم به کارهاماولیش تمرینی خواهد بود برای کار با لایبراریهای ترمینال که
crate.io بهم میده چون خیلی از مواردی که تو ذهنم هست حتی اگر API هم بزنم باید نسخه ترمینال هم داشته باشه.و خب چی بهتر از یک
task manager تحت ترمینال برای اینکار ؟ تسکهای شرکتهای مختلف priority, deadline و از همه مهمتر notification رو بهش بدم.این پروژه علاوه بر کار با ترمینال؛
database, .... رو هم بهم یاد میده و میتونم تمرین کنم باهاشدوم؛ برای یک ایده که توی ذهنم هست؛ نیاز دارم یک
crawler بنویسم (البته این ۲-۳ ماه زمان داره) که خب اینم هدف گذاری کردم روی Rust اگر امکانش باشه بنویسم تا با مفاهیم مربوط به concurrency, caching, parallelization, async, .... دست و پنجه نرم کنم.علاوه بر اون کار با دیتابیس و ... هم توی اسکیل بالاتر تست میشه
اگر بتونم کار با
headless browser , ... هم توش یاد بگیرم که گل رو زدم.پروژه سوم هم بماند چیه چون اگر بتونم دیزاین و .. اش رو انجام بدم و منطقی باشه برای پیادهسازی حتما بصورت
open-source منتشرش میکنم.ولی از طرف شرکت که چندتا
bonus بگیرم روش.اگر خواستید شما هم تمرین کنید؛ یا پروژه تمرینی با داکیومنت خوبی دارید.
زیر همین پست گیتهاب پروژه خودتون رو به اشتراک بذارید؛ بعضی وقتا حتی یک ابزار کوچیک هم کار خیلیهارو راه میندازه
یادتون نره
iPadOS تا همین امثال ماشین حساب نداشت.👍17❤4
Rust for Python developers pinned «یک پروژه بهم داده شده که بعد از سالهای بسیار (شاید ۸ سال) برای اولین بار پروژه رو از روز اولش هستم. کدها رو باید توی پایتون انجام بدم؛ معمار سیستم اینطوری فکر میکنه که پایتون توی اسکیل هم جواب میده برای این پروژه خاص. (قطعا جواب میده اما سخت هست یا سختافزار…»
بوقت استعفا
باید از بعضی کارهام استعفا بدم، که قویتر
بخصوص کارهایی که دیگه چیزی برای یادگیری نداره و فقط دارم به شرکت سود میرسونم بدون اینکه خودمم سودی ببرم.
من خیلی از پیشرفتهام رو مدیون وقتهایی هستم که به درستی تصمیم به استعفا گرفتم.
باید از بعضی کارهام استعفا بدم، که قویتر
Rust رو دنبال کنمبخصوص کارهایی که دیگه چیزی برای یادگیری نداره و فقط دارم به شرکت سود میرسونم بدون اینکه خودمم سودی ببرم.
من خیلی از پیشرفتهام رو مدیون وقتهایی هستم که به درستی تصمیم به استعفا گرفتم.
👍51🔥7👎5🤔2🌭2👏1🙉1
با قدرت و سرعتی که دنیای Rust داره پیشرفت میکنه
بنظرم خیلی اتفاقات عجیب و غریب و شاید غیر قابل باوری رخ خواهد داد.
اینو با توجه به تعداد افرادی که دارند میکوبندش میگم؛ البته شخصا فکر میکنند درکش نکردند.
مثل پایتون که وقتی من شروع کردم خیلیها میگفتن تهش میتونی باهاش
https://github.com/tracel-ai/cubecl
بنظرم خیلی اتفاقات عجیب و غریب و شاید غیر قابل باوری رخ خواهد داد.
اینو با توجه به تعداد افرادی که دارند میکوبندش میگم؛ البته شخصا فکر میکنند درکش نکردند.
مثل پایتون که وقتی من شروع کردم خیلیها میگفتن تهش میتونی باهاش
todo لیستهای خودت رو بنویسی و نگهداری البته که الان Rust خیلی بهتر از اون زمان Python هست.https://github.com/tracel-ai/cubecl
GitHub
GitHub - tracel-ai/cubecl: Multi-platform high-performance compute language extension for Rust.
Multi-platform high-performance compute language extension for Rust. - tracel-ai/cubecl
❤10👍2🎉1🤣1
واقعاً بعد از حداقل ۳-۴ سال
۱- خب الان باید این کد رو بزنم؛
۲- کد رو زدم
۳- اوکی چندتا باگ با کامپایلر
۴- درست شد
۵- کار میکنه
۶- اوکی حالا چرا کار میکنه ؟
۷- چرا اینجوری کد زدم ؟
۸- اصن چیکار میخواستم بکنم ؟
۹- هیچی از
عصبی کننده شاید باشه ولی، واقعاً عاشقشم
Rust اولین زبانی هست که دارم میگم : ۱- خب الان باید این کد رو بزنم؛
۲- کد رو زدم
۳- اوکی چندتا باگ با کامپایلر
۴- درست شد
۵- کار میکنه
۶- اوکی حالا چرا کار میکنه ؟
۷- چرا اینجوری کد زدم ؟
۸- اصن چیکار میخواستم بکنم ؟
۹- هیچی از
Rust نمیفهمم عصبی کننده شاید باشه ولی، واقعاً عاشقشم
❤32😁5👎3
Rust for Python developers
بوقت استعفا باید از بعضی کارهام استعفا بدم، که قویتر Rust رو دنبال کنم بخصوص کارهایی که دیگه چیزی برای یادگیری نداره و فقط دارم به شرکت سود میرسونم بدون اینکه خودمم سودی ببرم. من خیلی از پیشرفتهام رو مدیون وقتهایی هستم که به درستی تصمیم به استعفا گرفتم.
امروز ۲ تا استعفا رو تقدیم مدیریت
۲ تا شرکت کردم.
قطعاً این فشار بیشتری روی من خواهد بود برای بهبود خودم،
بخصوص پیشرفت در زمینه
علاوه بر این حداقل ۸ موقعیت شغلی جدید هم باز میشه؛ چون فکر نمیکنم کسی مثل من توی یک شرکت همزمان :
ML engineer
Backend Developer
Linux Server Admin
DevOps
کار باشه اونم وقتی قراردادش فقط AI بوده.
خلاصه که خوش بینم به پیشرفت بیشتر.
۲ تا شرکت کردم.
قطعاً این فشار بیشتری روی من خواهد بود برای بهبود خودم،
بخصوص پیشرفت در زمینه
Rust، البته که تا جدا شدن از شرکتها توی بهترین حالت ۱ ماه زمان لازم هست.علاوه بر این حداقل ۸ موقعیت شغلی جدید هم باز میشه؛ چون فکر نمیکنم کسی مثل من توی یک شرکت همزمان :
ML engineer
Backend Developer
Linux Server Admin
DevOps
کار باشه اونم وقتی قراردادش فقط AI بوده.
خلاصه که خوش بینم به پیشرفت بیشتر.
❤46👍21👏10👎4
کسی دوره ویدئو
قبلاً هم گفتم، تکنیک کتاب خوندن من برای مباحث جدید اینطوری هست:
۱- اول بشینم یک ویدئو با آرامش ببینم (بصورت فیلم وار)
۲-در مرحله بعد شروع به خوندن کتاب کنم
۳- کد زدن و تمرین با پروژه
تو این مدت روی Axum یک مقدار این تکنیک رو دور زدم، که الان به این نتیجه رسیدم از اینجا به بعد اشتباه هست.
باید جزئیات بیشتری رو کار کنم.
البته وقت رو تلف نمیکنم؛ منتظر دوره خوبی که شاید هیچوقت وجود نداشته باشه و با :
Axum Introduction Youtube
دوره برای ۱ سال قبل هست، عالی نیست ازین منظر که ورژن 0.7.5 تغییرات زیادی داشته ولی خب بهتر از هیچی هست.
Axum چیز خوبی میشناسه ؟قبلاً هم گفتم، تکنیک کتاب خوندن من برای مباحث جدید اینطوری هست:
۱- اول بشینم یک ویدئو با آرامش ببینم (بصورت فیلم وار)
۲-در مرحله بعد شروع به خوندن کتاب کنم
۳- کد زدن و تمرین با پروژه
تو این مدت روی Axum یک مقدار این تکنیک رو دور زدم، که الان به این نتیجه رسیدم از اینجا به بعد اشتباه هست.
باید جزئیات بیشتری رو کار کنم.
البته وقت رو تلف نمیکنم؛ منتظر دوره خوبی که شاید هیچوقت وجود نداشته باشه و با :
Axum Introduction Youtube
دوره برای ۱ سال قبل هست، عالی نیست ازین منظر که ورژن 0.7.5 تغییرات زیادی داشته ولی خب بهتر از هیچی هست.
👍7❤3🆒3👎1🤔1
Rust for Python developers
کسی دوره ویدئو Axum چیز خوبی میشناسه ؟ قبلاً هم گفتم، تکنیک کتاب خوندن من برای مباحث جدید اینطوری هست: ۱- اول بشینم یک ویدئو با آرامش ببینم (بصورت فیلم وار) ۲-در مرحله بعد شروع به خوندن کتاب کنم ۳- کد زدن و تمرین با پروژه تو این مدت روی Axum یک مقدار…
دوره ای که توی پست بالا گذاشتم از چیزی که فکر میکردم بهتر بود.
مخصوصا اگر مفاهیم وب رو بلد هستید.
یک مقدار سرچ و حوصله برای خوندن داکیومنت و البته اسناندارد سازی آنچه که در این دوره گفته میشه بکند رو براتون در میاره.
تعدادی از ویدئوهارو دیدم و قبل از اینگه بیشتر پیشرفته بشه (دیتابیس و ... چون اون موارد فارغ از Axum هست) دارم روی استاندارد سازی کدها کار میکنم و تمرین آنچه یادگرفتم.
اضافه کنم؛ من آدم با تمرکز یادگرفتن هستم؛ یعنی الان که هدف Axum هست؛ ترجیح میدم تمام آنچه بعنوان استاندارد بکند باهاش آشنا هستم و الان به ذهنم میرسه رو با این کتاب خونه یاد بگیرم.
برای همین روی دیتابیس و ... کار نکردم هنوز و دارم دیتای
مخصوصا اگر مفاهیم وب رو بلد هستید.
یک مقدار سرچ و حوصله برای خوندن داکیومنت و البته اسناندارد سازی آنچه که در این دوره گفته میشه بکند رو براتون در میاره.
تعدادی از ویدئوهارو دیدم و قبل از اینگه بیشتر پیشرفته بشه (دیتابیس و ... چون اون موارد فارغ از Axum هست) دارم روی استاندارد سازی کدها کار میکنم و تمرین آنچه یادگرفتم.
اضافه کنم؛ من آدم با تمرکز یادگرفتن هستم؛ یعنی الان که هدف Axum هست؛ ترجیح میدم تمام آنچه بعنوان استاندارد بکند باهاش آشنا هستم و الان به ذهنم میرسه رو با این کتاب خونه یاد بگیرم.
برای همین روی دیتابیس و ... کار نکردم هنوز و دارم دیتای
hard code جابجا میکنم و ...❤7👍3
Rust for Python developers
کسی دوره ویدئو Axum چیز خوبی میشناسه ؟ قبلاً هم گفتم، تکنیک کتاب خوندن من برای مباحث جدید اینطوری هست: ۱- اول بشینم یک ویدئو با آرامش ببینم (بصورت فیلم وار) ۲-در مرحله بعد شروع به خوندن کتاب کنم ۳- کد زدن و تمرین با پروژه تو این مدت روی Axum یک مقدار…
این دوره امشب (۵ ساعت دیگر) آپدیت خواهد شد
به نسخه
Youtube Live
اگر حال صبر کردن تا آپدیت پلیلیست رو ندارید :
Live updating axum
به نسخه
0.7.5 :Youtube Live
اگر حال صبر کردن تا آپدیت پلیلیست رو ندارید :
Live updating axum
YouTube
stream archive: Updating the Axum course (2024-08-26)
It's time to update the Rust Axum course to 0.7.5. Last time we updated the lessons. Now it's time for the project.
👍9❤3
خب خب خب؛
جذاب شد، از امروز روزی ۲-۳ ساعت روی بکند و Rust خواهم بود با
دلایل انتخاب
من خیلی از این سالها روی
برای همین
جذاب شد، از امروز روزی ۲-۳ ساعت روی بکند و Rust خواهم بود با
Axum البته.دلایل انتخاب
Axum رو توی گروه گفتم، موردی که باید اضافه کنم؛من خیلی از این سالها روی
Django, FastApi کد میزنم (با وجود اینکه با node, Express بکند رو یاد گرفتم)برای همین
Axum رو انتخاب کردم، چون شباهت زیادی به syntax پایتون داره تا Actix و شاید همین رو بتونم پیشنهاد بدم به بچههایی که از سمت node دارن میان Actix برای اونها ممکنه راحت تر و آشناتر باشه.👍14🔥4👎1
این ویدئو جالب بود (داستان پیدایش
راستی این کانال رو حتما دنبال کنید.
Youtube Video
Rust هست + تمام اخبار اخیر.) ولی با AI براش تصویر و ... درست کرده.راستی این کانال رو حتما دنبال کنید.
Youtube Video
YouTube
Rust - A Journey of Developers, Heroes, Linux Realms and the Battle for Safety - The Code Chronicles
Welcome to "Rust: The Chronicles of Code" – An Epic Journey Through the Linux Realms and the Battle for Safety.
In a realm where code rules supreme, a new hero emerges from the depths of safety and efficiency. Rust, the legendary language forged in the fires…
In a realm where code rules supreme, a new hero emerges from the depths of safety and efficiency. Rust, the legendary language forged in the fires…
👍13❤🔥1❤1😁1
آپدیت وضعیت:
این مدت کارهای شرکتهایی که استعفا دادم رو پیش بردم و نیروهای جایگزین رو onboard کردم.
هرچند هنوز خودم درگیر هستم (ولی خیلی سعی میکنم دور بمونم و ساعت کاری پر نکنم)
پیشنهاد دستمزد بالاتر هم بهم دادند ولی دیگه نمیخوام کار کنم (پروژهها خسته کننده شده)
توی این مدت بهم اجازه داد روزی ۳-۴ ساعت
الان از توانایی کد زدنم مطمئن شدم، اما با مدل پروژههام حال نمیکنم بنظرم میشه بهتر ازین باشه واقعاً.
برای همین تصمیم گرفتم، از امروز دوباره برگردم روی آموزش خوندن، خوبی این مدت کد زدن این بود که فهمیدم یک سری مفاهیم رو جزئیاتش رو ندیدم توی آموزشهای قبلی و این جزئیات برای کد بهتر و تمیزتر زدن مهم هست.
میتونم با سرچ بهش برسم ولی هربار سرچ کردن و خوندن با توجه به اینکه مرض درک جزئیات دارم زمان زیادی ازم داره میگیره، پس تصمیم گرفتم یک مقدار کد زدن رو کنار بذارم و باز به آموزش دیدن رو بیارم.
الان میدونم دقیقاً کجاها ضعف دارم و چه چیزهایی رو به جزئیاتش نیاز، البته که با منابع جدید ادامه خواهم داد.
این وسط یک اتفاق دیگه هم افتاد، چندروز قبل مدیرم با مدیرعامل headquarter اصلی برای دفاع از آنچه که به ناحق علیه تیمهای فنی بود دعوا کرد.
امروز هم استعفا داد، با اینکه این شرکت تنها جایی بود که کار میکرد.
برای من بعنوان مدیر میانی (تیملید بودم بیشتر) این موضوع خیلی درگیری ذهنی ایجاد کرد تا اینکه امروز به این تصمیم رسیدم با وجود اینکه این شرکت درآمد ساده و خوبی رو بهم میداد استعفا بدم در حمایت از مدیر خودم که به حق دعوا کرد، حدود ظهر اینکار رو کردم و متوجه شدم باقی مدیرهای فنی همراه ایشون هم استعفا دادند.
و بعد از اون یکسری از نیروهای زیر دست، متأسفانه با من هماهنگ نشده بود ولی همگی متنی یکسان برای استعفا داده بودند با این خلاصه که :
با توجه به اتفاقات افتاده، به این نتیجه رسیدیم مدیرعامل جدید درک درستی از کارهای فنی نداره و شرکت موقعیتش توی بازار جهانی رو از دست خواهد داد.
نمیخواهیم شاهد نابودی آنچه که ساختیم باشیم.
حدود ۷۰ نفر استعفا دادند در کل، اینجوری شد ۳ تا استعفای شغلی برای من
ولی بابت این آخری خیلی خوشحالم، بعد از این استعفا واقعاً حالم خوب شد چون طرف درستی وایسادم.
در نهایت اینکه؛ یک جورایی داره بهم الهام میشه که شاید وقتش هست برم سمت
برای همین ۵-۶ مورد دعوت به همکاری که این چندروز بعد از تعطیلات دریافت کردم رو فعلا رد کردم؛ شاید با همین ۲ تا شغل که دارم بمونم و به وقت گذاشتن روی
شایدم ۱ مورد دیگر رو هم اضافه کنم، چون از اول تصمیم روی استعفا از ۲ تا شغل بود نه ۳ مورد.
ولی بطور خلاصه، برگشتم روی یادگیری باز و اینبار عمیقتر قرار هست
این مدت کارهای شرکتهایی که استعفا دادم رو پیش بردم و نیروهای جایگزین رو onboard کردم.
هرچند هنوز خودم درگیر هستم (ولی خیلی سعی میکنم دور بمونم و ساعت کاری پر نکنم)
پیشنهاد دستمزد بالاتر هم بهم دادند ولی دیگه نمیخوام کار کنم (پروژهها خسته کننده شده)
توی این مدت بهم اجازه داد روزی ۳-۴ ساعت
Rust کد بزنم.الان از توانایی کد زدنم مطمئن شدم، اما با مدل پروژههام حال نمیکنم بنظرم میشه بهتر ازین باشه واقعاً.
برای همین تصمیم گرفتم، از امروز دوباره برگردم روی آموزش خوندن، خوبی این مدت کد زدن این بود که فهمیدم یک سری مفاهیم رو جزئیاتش رو ندیدم توی آموزشهای قبلی و این جزئیات برای کد بهتر و تمیزتر زدن مهم هست.
میتونم با سرچ بهش برسم ولی هربار سرچ کردن و خوندن با توجه به اینکه مرض درک جزئیات دارم زمان زیادی ازم داره میگیره، پس تصمیم گرفتم یک مقدار کد زدن رو کنار بذارم و باز به آموزش دیدن رو بیارم.
الان میدونم دقیقاً کجاها ضعف دارم و چه چیزهایی رو به جزئیاتش نیاز، البته که با منابع جدید ادامه خواهم داد.
این وسط یک اتفاق دیگه هم افتاد، چندروز قبل مدیرم با مدیرعامل headquarter اصلی برای دفاع از آنچه که به ناحق علیه تیمهای فنی بود دعوا کرد.
امروز هم استعفا داد، با اینکه این شرکت تنها جایی بود که کار میکرد.
برای من بعنوان مدیر میانی (تیملید بودم بیشتر) این موضوع خیلی درگیری ذهنی ایجاد کرد تا اینکه امروز به این تصمیم رسیدم با وجود اینکه این شرکت درآمد ساده و خوبی رو بهم میداد استعفا بدم در حمایت از مدیر خودم که به حق دعوا کرد، حدود ظهر اینکار رو کردم و متوجه شدم باقی مدیرهای فنی همراه ایشون هم استعفا دادند.
و بعد از اون یکسری از نیروهای زیر دست، متأسفانه با من هماهنگ نشده بود ولی همگی متنی یکسان برای استعفا داده بودند با این خلاصه که :
با توجه به اتفاقات افتاده، به این نتیجه رسیدیم مدیرعامل جدید درک درستی از کارهای فنی نداره و شرکت موقعیتش توی بازار جهانی رو از دست خواهد داد.
نمیخواهیم شاهد نابودی آنچه که ساختیم باشیم.
حدود ۷۰ نفر استعفا دادند در کل، اینجوری شد ۳ تا استعفای شغلی برای من
ولی بابت این آخری خیلی خوشحالم، بعد از این استعفا واقعاً حالم خوب شد چون طرف درستی وایسادم.
در نهایت اینکه؛ یک جورایی داره بهم الهام میشه که شاید وقتش هست برم سمت
Rust برای موقعیت شغلی بعدی.برای همین ۵-۶ مورد دعوت به همکاری که این چندروز بعد از تعطیلات دریافت کردم رو فعلا رد کردم؛ شاید با همین ۲ تا شغل که دارم بمونم و به وقت گذاشتن روی
Rust ادامه بدم شایدم ۱ مورد دیگر رو هم اضافه کنم، چون از اول تصمیم روی استعفا از ۲ تا شغل بود نه ۳ مورد.
ولی بطور خلاصه، برگشتم روی یادگیری باز و اینبار عمیقتر قرار هست
Rust بخونم.👍30🔥6❤🔥3👏2🏆2🤡1
اگر شما هم به
Youtube Video
البته مدرس هندی هست (ولی لهجهاش قابل تحمل؛ بخصوص تو سرعت بالا ولی انگار
خوبیش اینه که
Axum علاقمند شدید (هرچند من بعد از این مورد احتمالا سراغ Actix هم خواهم رفت) این دوره هم خوبه بنظرم :Youtube Video
البته مدرس هندی هست (ولی لهجهاش قابل تحمل؛ بخصوص تو سرعت بالا ولی انگار
AI داره صحبت میکنه)خوبیش اینه که
axum 0.7.5 رو کار میکنه؛ بیشتر بدرد کسایی میخوره که بکند رو بلدند و روی Rust, Axum و کتابخونههای اینور میخوان سینتکس رو یاد بگیرند.YouTube
Master Rust Backend with Axum: Full-Stack Guide for Auth, PostgreSQL & Email Verification
🚀 Dive into the world of Rust backend development with our comprehensive tutorial on building a robust API using the Axum framework! Whether you're a beginner or an experienced developer, this video is tailored to enhance your skills in full-stack engineering…
👍14❤2
توی گروهی بحث دیدم راجب تفاوت های :
و دیدم انگار خیلی از اعضا تفاوت هاش رو درک نکردن برای همین
گفتم بزنم به ریشه و چون کانال خودمم مقدمات هست اینجا هم مطلب رو بذارم.
تفاوت اصلی توی این هست که چی برمیگردوند یادتون باشه وقتی توی
توی
اگر مستقیم روی
اگر روی
و در نهایت اگر روی
برای همین توی
امیوارم منظورم رو رسونده باشم؛ اگر نه حتما توی کامنت بپرسید.
.iter(), .iter_mut(), .into_iter(). و دیدم انگار خیلی از اعضا تفاوت هاش رو درک نکردن برای همین
closure های داخل متدهایی که با iterator میاد رو متوجه نمیشدند.گفتم بزنم به ریشه و چون کانال خودمم مقدمات هست اینجا هم مطلب رو بذارم.
تفاوت اصلی توی این هست که چی برمیگردوند یادتون باشه وقتی توی
Rust چیزای مشابه میبینید که متوجه نمیشید چرا نسخه های مختلف داره حتما ۲ تا مورد توی ذهنتون باید بیاد :1- Borrowing and Ownership
2- Memory (stack, heap, binary)توی
iterator ها هم تفاوت روی borrowing and ownership هست؛ وقتی از iter استفاده می کنید چیزی که برای هر آیتم تحویل میگیرید یک immutable reference خواهد بود & خالی وقتی از iter_mut استفاده کنید حتما mutable reference خواهید داشت &mut اما موضوع برای into_iter کمی متفاوت هست.اگر مستقیم روی
value استفاده بشه؛ ownership رو به دست خواهد گرفت.اگر روی
reference ایی از اون value استفاده بشه عملکرد iter رو خواهد داشت.و در نهایت اگر روی
mutable reference ایی از اون value استفاده بشه عملکردش مثل iter_mut خواهد شد.برای همین توی
closure متدهایی که روی اینها میاد مثل map, … حالات مختلفی رو میبینید.امیوارم منظورم رو رسونده باشم؛ اگر نه حتما توی کامنت بپرسید.
👍12❤4👏1🤔1
وقتی توی گروها سوال میبینم، از داخلش میشه فهمید باقی افراد روی چه مباحثی مشکل دارند.
مثلاً توی موضوع
میزنند، به اون
درصورتی که این برداشت اشتباه هست
موضوع
توی مثال:
شما میگی این دیتا میتونه
موضوع بعدی قوانین
مثلاً توی موضوع
lifetime متوجه شدم که خیلی از بچهها فکر میکنند, وقتی &’static strمیزنند، به اون
string slice دارن lifetime جدیدی میدهند.درصورتی که این برداشت اشتباه هست
موضوع
lifetime annotation هم مثل موضوع generic هست، شما وقتی میزنی T: Display داری میگی که من دیتایی رو میدم که حتماً Display trait براش پیادهسازی شده.توی مثال:
&’static strشما میگی این دیتا میتونه
lifetime به اندازه طول برنامه داشته باشه، اگر دیتایی بدید که این مقدار lifetime رو نداره کامپایل نمیشه و بهت ارور میدهموضوع بعدی قوانین
lifetime مشخص کردن توی توابع هست (تحت چه شرایطی حتماً lifetime نیازه) که خب بنظرم باشه برای یک پست دیگری.👍11❤4✍1
قطعا اگر با
همیشه هم راهکار ساده هست و با گوگل سرچ اول بدست میاد. شما
سوالی که امروز توی فروم دیدم؛ من که توی مثال بالا غیر از چاپ کردن
بخش اول سوال جوابش بر میگرده به خود
اما بخش دوم؛ سواد
FnOnce : خود
دقیقا هم
برای همین هست که باید توی مثال تصویر؛
multi-threading توی Rust کار کرده باشید؛ حتما این ارور رو دیدید.همیشه هم راهکار ساده هست و با گوگل سرچ اول بدست میاد. شما
move رو قبل از closure میذاری و مشکل حل میشه وقتی هم که سرچ میزنی چرا همه زدند که move بصورت زوری ownership رو میده به closure.سوالی که امروز توی فروم دیدم؛ من که توی مثال بالا غیر از چاپ کردن
counter کاری باهاش نمیکنم پس چرا با reference کار نمی کنه ؟ یا از کجا باید بدونم چه زمان هایی باید از move استفاده کنم ؟بخش اول سوال جوابش بر میگرده به خود
ownership و تفکیک بودن thread ها از هم؛ یادتون باشه توی Rust هر value باید فقط و فقط یک owner داشته باشه که توی threading ممکنه نقض بشه اگر راهکار فعلی براش نبود.اما بخش دوم؛ سواد
closure رو میخواد و ربطی به thread نداره؛ closure هارو به ۳ حالت توی annotation استفاده میکنند.Fn : که بعنوان ورودی یک رفرنس میگیرهFnMut : که بعنوان ورودی یک رفرنس با قابلیت تغییر میگیرهFnOnce : خود
value رو میگیرهدقیقا هم
FnOnce توی ویژگی هایی هست که متد spawn بهش نیاز داره و بررسی می کنه و اسم FnOnce هم برای این Trait کاملا عالی هست؛ چون Ownership اون value رو میگیره و بعد دیگه غیر قابل استفاده میشه.برای همین هست که باید توی مثال تصویر؛
closure رو مجبور کنیم که ownership متغییر counter رو بگیره چراکه خود کلوژر می دونه به reference فقط نیاز داره و Fn براش کفایت می کنه اما spawn نیاز به FnOnce داره برای امن بودن threading, ownership پس با استفاده از move کلوژر رو میبریم روی FnOnce.👍9✍4❤3