<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Rust on תומרקוד</title><link>https://tomercode-hugo-blog.pages.dev/categories/rust/</link><description>Recent content in Rust on תומרקוד</description><generator>Hugo</generator><language>he-IL</language><lastBuildDate>Wed, 19 Feb 2025 07:57:02 +0000</lastBuildDate><atom:link href="https://tomercode-hugo-blog.pages.dev/categories/rust/index.xml" rel="self" type="application/rss+xml"/><item><title>בראסט ה Enums טובים יותר</title><link>https://tomercode-hugo-blog.pages.dev/2025/02/enums.html</link><pubDate>Wed, 19 Feb 2025 07:57:00 +0000</pubDate><guid>https://tomercode-hugo-blog.pages.dev/2025/02/enums.html</guid><description>&lt;p&gt;כשאנחנו מתחילים לגעת בשפות תכנות, פעמים רבות אנחנו מנסים לחקות את מה שאנחנו כבר יודעים ומכירים משפות קודמות בשפה אחרת. זו אמנם יכולה להיות דרך להכנס לכתיבת קוד מהר יותר, אבל כשנוקטים בגישה הזו עלולים לפספס יכולות ייחודיות לשפה שנותנות דרכים הרבה יותר יעילות ועוצמתיות לפתור בעיות.&lt;/p&gt;</description></item><item><title>ראסט - פונקציית main נקיה יותר עם Result</title><link>https://tomercode-hugo-blog.pages.dev/2024/09/main-result.html</link><pubDate>Thu, 05 Sep 2024 06:26:00 +0000</pubDate><guid>https://tomercode-hugo-blog.pages.dev/2024/09/main-result.html</guid><description>&lt;p&gt;כחלק &lt;a href="https://tomercode-hugo-blog.pages.dev/2023/09/rust-result.html"&gt;מהמסע שלנו לניהול שגיאות נכון&lt;/a&gt; נפל לנו האסימון שלהשתמש ב &lt;a href="https://learning-rust.github.io/docs/unwrap-and-expect/"&gt;unwrap או expect&lt;/a&gt; יכול להיות רעיון לא כל כך טוב ועלול להביא לסיום מיידי של הפרוסס שלנו במקרים שאולי לא התכוונו אליהם. אז השתמשנו ב &lt;a href="https://rust-lang.github.io/rust-clippy/master/index.html#/unwrap_used"&gt;clippy deny unwrap used&lt;/a&gt; שגרם לקומפילציה לא לעבור במידה ונכנס unwrap לקוד.&lt;/p&gt;</description></item><item><title>Rust Builder Pattern</title><link>https://tomercode-hugo-blog.pages.dev/2024/08/rust-builder-pattern.html</link><pubDate>Thu, 22 Aug 2024 05:31:00 +0000</pubDate><guid>https://tomercode-hugo-blog.pages.dev/2024/08/rust-builder-pattern.html</guid><description>&lt;p&gt;אחד הדברים שלקח לי זמן להתרגל אליהם בראסט היה העובדה שאין method overloading וגם אין תמיכה בערכים דיפולטיים לפרמטרים של בפונקציות.&lt;/p&gt;
&lt;p&gt;כלומר, באותו ה namespace תוכל להיות לנו רק פונקציה אחת עם אותו השם וכשאנחנו מגדירים פונקציה אנחנו לא נוכל לקבוע לפרמטרים שלה ערכים דיפולטיים כדי להקל על המשתמש ב API. זאת להבדיל משפות כמו C#, C++, Java שתומכות ביכולות.&lt;/p&gt;</description></item><item><title>איך התחלנו לנהל שגיאות ב Rust (חלק ג' - anyhow)</title><link>https://tomercode-hugo-blog.pages.dev/2023/10/rust-anyhow.html</link><pubDate>Thu, 05 Oct 2023 08:57:00 +0000</pubDate><guid>https://tomercode-hugo-blog.pages.dev/2023/10/rust-anyhow.html</guid><description>&lt;p&gt;אם הגעת לכאן במקרה אני ממליץ להתחיל בפוסט &lt;a href="https://tomercode-hugo-blog.pages.dev/2023/09/rust-result.html"&gt;הראשון&lt;/a&gt; &lt;a href="https://tomercode-hugo-blog.pages.dev/2023/09/rust-thiserror.html"&gt;והשני&lt;/a&gt; על מנת לקבל רקע.&lt;/p&gt;
&lt;p&gt;החלק השלישי במסע שלנו לניהול שגיאות היה ההטמעה של &lt;a href="https://docs.rs/anyhow"&gt;anyhow&lt;/a&gt;. הספרייה מספקת מספר פיצ&amp;rsquo;רים נחמדים מאוד שמקלים על הפיתוח ומייפים את הקוד, מייעלים את ניהול השגיאות, ואפילו עוזרים לאחר השגיאה בניתוח שלה.&lt;/p&gt;</description></item><item><title>איך התחלנו לנהל שגיאות ב Rust (חלק ב' - thiserror)</title><link>https://tomercode-hugo-blog.pages.dev/2023/09/rust-thiserror.html</link><pubDate>Sat, 23 Sep 2023 15:07:00 +0000</pubDate><guid>https://tomercode-hugo-blog.pages.dev/2023/09/rust-thiserror.html</guid><description>&lt;p&gt;בפוסט הקודם דיברתי על הדרך שעשינו מקוד שיכול לקרוס בכל מקום בכל רגע, להפיכת הפרוסס ליציב הרבה יותר באמצעות שימוש ב Result, ופעפוע השגיאות שלנו עם אופרטור `?`. בפוסט הזה נדבר על אחת הספריות המרכזיות בעולם ניהול השגיאות של ראסט ונראה איך היא עוזרת לנו להפוך את ניהול השגיאות שלנו לנוח ויציב הרבה יותר.&lt;/p&gt;</description></item><item><title>איך התחלנו לנהל שגיאות ב Rust (חלק א' - Result)</title><link>https://tomercode-hugo-blog.pages.dev/2023/09/rust-result.html</link><pubDate>Fri, 15 Sep 2023 06:34:00 +0000</pubDate><guid>https://tomercode-hugo-blog.pages.dev/2023/09/rust-result.html</guid><description>&lt;h3&gt;&lt;/h3&gt;
&lt;p&gt;&lt;img src="https://tomercode-hugo-blog.pages.dev/images/posts/2023/09/rust-result/image-01-d149cbfd99.png" alt=""&gt;&lt;/p&gt;
&lt;h3 id="מבוא"&gt;מבוא&lt;/h3&gt;
&lt;p&gt;גם כשעולם פיתוח התוכנה מתקדם בקצב משוגע, דבר אחד נשאר קבוע - &lt;strong&gt;שגיאות.&lt;/strong&gt; לא משנה כמה מנוסים נהיה כמפתחים, שגיאות ומקרים לא צפוים תמיד יצוצו לנו. מה שישנה בסופו של יום זה איך אנחנו מטפלים ומנהלים את אותן שגיאות.&lt;/p&gt;</description></item><item><title>Rust - שימוש ב or ו or_else</title><link>https://tomercode-hugo-blog.pages.dev/2023/09/rust-or-orelse.html</link><pubDate>Sun, 03 Sep 2023 10:56:00 +0000</pubDate><guid>https://tomercode-hugo-blog.pages.dev/2023/09/rust-or-orelse.html</guid><description>&lt;p&gt;&lt;strong&gt;שימוש ב Option::or_else מול שימוש ב Option::or&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;כשאנחנו עובדים עם Rust אנחנו נתקלים הרבה פעמים במקרים בהם נרצה לטפל בהיעדר ערך, כלומר None, ובשביל זה Option נכנס לתמונה. ראסט נותנת לנו כל מיני דרכים לטפל במקרים הללו ושתיים מהדרכים הנפוצות הן &lt;strong&gt;or&lt;/strong&gt; ו- &lt;strong&gt;or_else&lt;/strong&gt;.
בפוסט הזה נדבר על מה הפונקציות האלו עושות ומתי נרצה להשתמש בכל אחת מהן.&lt;/p&gt;</description></item><item><title>פולימורפיזם ב Rust</title><link>https://tomercode-hugo-blog.pages.dev/2023/07/rust.html</link><pubDate>Wed, 05 Jul 2023 10:35:00 +0000</pubDate><guid>https://tomercode-hugo-blog.pages.dev/2023/07/rust.html</guid><description>&lt;p&gt;התמזל מזלי ובחודשים האחרונים התחלתי לעבוד מאפס על פרויקט חדש ב-Rust, פרויקט שאמור בקרוב לרדת כחלק ממע&amp;rsquo; ההפעלה Windows. הכניסה ל Rust החזירה לי את התשוקה לחזור לכתוב קצת בבלוג.&lt;/p&gt;
&lt;p&gt;Rust שונה מאוד מהשפות העיקריות שעבדתי איתן לפני (python ו c#) בהרבה מובנים כמו ניהול הזיכרון, העובדה שאין קלאסים והורשה, ניהול השגיאות, והקומפיילר שעובד שונה לחלוטין.&lt;/p&gt;</description></item></channel></rss>