Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
اولین نسخه از زبان GoSharp منتشر شد.
زبان GoSharp یک فورک از Golang هست که قراره فیچرها و بهینهسازیهای زیادی رو داشته باشه.
با اولین فیچری که اضافه شد، شما میتونید فقط با نوشتن یک '?' ، خطا رو بدون نوشتن if err != nil برگردونید.
مخزن گیتهاب
https://github.com/0x9n0p/gosharp
➖➖➖➖➖➖➖➖
☄️ @GoInsights | @GolangEngineers
زبان GoSharp یک فورک از Golang هست که قراره فیچرها و بهینهسازیهای زیادی رو داشته باشه.
با اولین فیچری که اضافه شد، شما میتونید فقط با نوشتن یک '?' ، خطا رو بدون نوشتن if err != nil برگردونید.
مخزن گیتهاب
https://github.com/0x9n0p/gosharp
➖➖➖➖➖➖➖➖
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegraph
1. Two Sum
بررسی ۷۵ الگوریتم اساسی در leetcode شماره ۱ Two Sum
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegraph
20. Valid Parentheses
بررسی ۷۵ الگوریتم اساسی در leetcode شماره ۲ 20. Valid Parentheses مسئله Valid Parentheses: فرض کنید رشتهای از کاراکترها به نام s دارید که فقط شامل موارد زیر است: ( -(پرانتز باز) ) - (پرانتز بسته) { - (آکولاد باز) } - (آکولاد بسته) [ - (کروشه باز) ] - (کروشه…
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegraph
21. Merge Two Sorted Lists
بررسی ۷۵ الگوریتم اساسی در leetcode شماره ۳ 21. Merge Two Sorted Lists مسئله: ادغام دو لیست مرتب پیوندی فرض کنید head های دو لیست پیوندی مرتب list1 و list2 به شما داده شده است. وظیفه شما این است که این دو لیست را در یک لیست مرتب ادغام کنید. لیست نهایی باید…
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegraph
121. Best Time to Buy and Sell Stock
week 1 number 4 بررسی ۷۵ الگوریتم اساسی در leetcode شماره ۴ 121. Best Time to Buy and Sell Stock مسئله: محاسبهی حداکثر سود سهام فرض کنید آرایهای از قیمتها به نام prices به شما داده شده است که در آن prices[i] نشاندهنده قیمت سهام در روز iام است. هدف شما…
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegraph
125. Valid Palindrome
week 1 number 5 بررسی ۷۵ الگوریتم اساسی در leetcode شماره ۵ هفته اول125. Valid Palindrome مسئله: تشخیص تقارن کلمه (پالیندروم) یک عبارت زمانی یک پالیندروم (متقارن) محسوب میشود که پس از تبدیل تمام حروف بزرگ به حروف کوچک و حذف تمام کاراکترهای غیر الفبایی و…
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegraph
226. Invert Binary Tree
week 1 number 6 بررسی ۷۵ الگوریتم اساسی در leetcode شماره ۶ هفته اول226. Invert Binary Tree مسئله: معکوس کردن درخت دودویی (Invert Binary Tree) فرضیه: ریشه یک درخت دودویی به شما داده شده است. وظیفه شما این است که درخت را معکوس کنید و ریشه معکوس شده را برگردانید.…
✅ یا فلت فلت باش یا ساختار دهی کن!!!
زمانی که یک پروژه یا پکیج جدید در زبان Go شروع میکنیم، اولین سوالی که پیش میآید این است که ساختار یا layout پروژه چگونه باید باشد؟
در زبان Go، هر پوشه یا دایرکتوری میتواند به عنوان یک package در نظر گرفته شود. وقتی کدی را در این محدوده مینویسید، این کد میتواند به طور مستقل از بقیه پروژه تست شود و همچنین به لحاظ دسترسیهای public/private مدیریت شود.
داشتن یک ساختار منظم برای پروژه بسیار مهم است، اما از همه مهمتر این است که بتوانید به گونهای ساختاردهی کنید که به مشکلاتی مانند import cycle برنخورید.
سوالی که برای برخی مطرح است این است که آیا ساختار فلت (flat) خوب است یا نه؟
شاید از دیدگاه بعضی افراد، فلت بودن نشانهای از کمبود دانش فرد در ساختاردهی پروژه باشد، اما باید بدانید که فلت بودن مزایای خاص خود را دارد. البته این مزایا بیشتر در نوشتن پکیجها قابل مشاهده است تا در برنامههای اجرایی؛ زیرا در برنامههای اجرایی که دارای main هستند، ممکن است با مشکلاتی مواجه شوید. اما برای نوشتن پکیجها، فلت بودن ساختار بسیار مفید است و آزادی بیشتری برای نوشتن یک پکیج خوب به شما میدهد.
پس به طور کلی، فلت بودن ساختار برای پکیجها میتواند بهتر از داشتن یک ساختار پیچیده باشد.
➖➖➖➖➖➖➖➖
☄️ @GoInsights | @GolangEngineers
زمانی که یک پروژه یا پکیج جدید در زبان Go شروع میکنیم، اولین سوالی که پیش میآید این است که ساختار یا layout پروژه چگونه باید باشد؟
در زبان Go، هر پوشه یا دایرکتوری میتواند به عنوان یک package در نظر گرفته شود. وقتی کدی را در این محدوده مینویسید، این کد میتواند به طور مستقل از بقیه پروژه تست شود و همچنین به لحاظ دسترسیهای public/private مدیریت شود.
داشتن یک ساختار منظم برای پروژه بسیار مهم است، اما از همه مهمتر این است که بتوانید به گونهای ساختاردهی کنید که به مشکلاتی مانند import cycle برنخورید.
سوالی که برای برخی مطرح است این است که آیا ساختار فلت (flat) خوب است یا نه؟
شاید از دیدگاه بعضی افراد، فلت بودن نشانهای از کمبود دانش فرد در ساختاردهی پروژه باشد، اما باید بدانید که فلت بودن مزایای خاص خود را دارد. البته این مزایا بیشتر در نوشتن پکیجها قابل مشاهده است تا در برنامههای اجرایی؛ زیرا در برنامههای اجرایی که دارای main هستند، ممکن است با مشکلاتی مواجه شوید. اما برای نوشتن پکیجها، فلت بودن ساختار بسیار مفید است و آزادی بیشتری برای نوشتن یک پکیج خوب به شما میدهد.
پس به طور کلی، فلت بودن ساختار برای پکیجها میتواند بهتر از داشتن یک ساختار پیچیده باشد.
➖➖➖➖➖➖➖➖
Please open Telegram to view this post
VIEW IN TELEGRAM
پوشش تست (Test Coverage) یک معیار است که نشان میدهد چه مقدار از کد شما توسط تستهای واحد (Unit Tests) بررسی میشود. این معیار به شما میگوید که چه درصدی از کد شما هنگام اجرای تستها اجرا شده است.
به زبان ساده:
- پوشش تست بالا به این معنی است که بخش زیادی از کد شما تست شده و این احتمال بروز باگها را کاهش میدهد.
- پوشش تست پایین به این معنی است که فقط بخش کوچکی از کد تست شده و این باعث افزایش خطر وجود باگهای کشفنشده میشود.
با این حال، ۱۰۰٪ پوشش تست همیشه به این معنی نیست که کد شما بدون مشکل است، اما نشانه خوبی است که بیشتر بخشهای کد شما بررسی شدهاند.
آستانه مناسب بودن پوشش تست معمولاً به شرایط و پروژه بستگی دارد.
اما بهطور کلی ۷۰٪ تا ۸۰٪: اغلب به عنوان یک آستانه مناسب در نظر گرفته میشود. در این سطح، بخش بزرگی از کد شما تست شده است و احتمال وجود باگهای پنهان کاهش مییابد.
بالای ۸۰٪: این سطح پوشش معمولاً برای پروژههایی با اهمیت بالا و کدهای حساس توصیه میشود. با این حال، رسیدن به ۱۰۰٪ پوشش همیشه ضروری نیست و در برخی موارد حتی ممکن است عملی نباشد.به خاطر داشته باشید که کیفیت تستها نیز مهم است. حتی اگر پوشش تست بالا باشد، اگر تستها بهدرستی طراحی نشده باشند، ممکن است همچنان باگهای مهمی در کد وجود داشته باشد.
نحوه تست پوشش در گولنگ:
➖➖➖➖➖➖➖➖
☄️ @GoInsights | @GolangEngineers
به زبان ساده:
- پوشش تست بالا به این معنی است که بخش زیادی از کد شما تست شده و این احتمال بروز باگها را کاهش میدهد.
- پوشش تست پایین به این معنی است که فقط بخش کوچکی از کد تست شده و این باعث افزایش خطر وجود باگهای کشفنشده میشود.
با این حال، ۱۰۰٪ پوشش تست همیشه به این معنی نیست که کد شما بدون مشکل است، اما نشانه خوبی است که بیشتر بخشهای کد شما بررسی شدهاند.
آستانه مناسب بودن پوشش تست معمولاً به شرایط و پروژه بستگی دارد.
اما بهطور کلی ۷۰٪ تا ۸۰٪: اغلب به عنوان یک آستانه مناسب در نظر گرفته میشود. در این سطح، بخش بزرگی از کد شما تست شده است و احتمال وجود باگهای پنهان کاهش مییابد.
بالای ۸۰٪: این سطح پوشش معمولاً برای پروژههایی با اهمیت بالا و کدهای حساس توصیه میشود. با این حال، رسیدن به ۱۰۰٪ پوشش همیشه ضروری نیست و در برخی موارد حتی ممکن است عملی نباشد.به خاطر داشته باشید که کیفیت تستها نیز مهم است. حتی اگر پوشش تست بالا باشد، اگر تستها بهدرستی طراحی نشده باشند، ممکن است همچنان باگهای مهمی در کد وجود داشته باشد.
نحوه تست پوشش در گولنگ:
go test ./... -cover
➖➖➖➖➖➖➖➖
☄️ @GoInsights | @GolangEngineers
#Algorithm
#leetcode75
110. Balanced Binary Tree
https://telegra.ph/110-Balanced-Binary-Tree-08-29
➖➖➖➖➖➖➖➖
☄️ @GoInsights | @GolangEngineers
#leetcode75
110. Balanced Binary Tree
https://telegra.ph/110-Balanced-Binary-Tree-08-29
➖➖➖➖➖➖➖➖
☄️ @GoInsights | @GolangEngineers
Telegraph
110. Balanced Binary Tree
بررسی ۷۵ الگوریتم اساسی در leetcode شماره ۱۱ هفته اول 110. Balanced Binary Tree مسئله: تشخیص درخت ارتفاع-موازنه (Height-Balanced Tree) فرض کنید یک درخت دودویی به شما داده شده است. بررسی کنید که آیا این درخت ارتفاع-موازنه (height-balanced) است یا خیر. درخت…
#Algorithm
#leetcode75
141. Linked List Cycle
https://telegra.ph/141-Linked-List-Cycle-08-30
➖➖➖➖➖➖➖➖
☄️ @GoInsights | @GolangEngineers
#leetcode75
141. Linked List Cycle
https://telegra.ph/141-Linked-List-Cycle-08-30
➖➖➖➖➖➖➖➖
☄️ @GoInsights | @GolangEngineers
Telegraph
141. Linked List Cycle
بررسی ۷۵ الگوریتم اساسی در leetcode شماره ۱۲ هفته اول مسئله: با فرض بر اینکه head سَر یک لیست پیوندی است، مشخص کنید که آیا این لیست پیوندی دارای دور (حلقه) است یا خیر. اگر گرهای در لیست پیوندی وجود داشته باشد که بتوان با دنبال کردن مداوم اشاره گر بعدی (next)…
New unique package
The standard library of Go 1.23 now includes the new unique package. The purpose behind this package is to enable the canonicalization of comparable values. In other words, this package lets you deduplicate values so that they point to a single, canonical, unique copy, while efficiently managing the canonical copies under the hood. You might be familiar with this concept already, called “interning”. Let’s dive in to see how it works, and why it’s useful.
https://go.dev/blog/unique
➖➖➖➖➖➖➖➖
☄️ @GoInsights | @GolangEngineers
The standard library of Go 1.23 now includes the new unique package. The purpose behind this package is to enable the canonicalization of comparable values. In other words, this package lets you deduplicate values so that they point to a single, canonical, unique copy, while efficiently managing the canonical copies under the hood. You might be familiar with this concept already, called “interning”. Let’s dive in to see how it works, and why it’s useful.
https://go.dev/blog/unique
➖➖➖➖➖➖➖➖
☄️ @GoInsights | @GolangEngineers
go.dev
New unique package - The Go Programming Language
New package for interning in Go 1.23.
🎊 Go 1.23.1 and 1.22.7 are released!
🔐 Security: Includes security fixes for encoding/gob, go/build/constraint, and go/parser
🔈 Announcement: https://groups.google.com/g/golang-announce/c/K-cEzDeCtpc
📦 Download: go.dev/dl/#go1.23.1
➖➖➖➖➖➖➖➖
⚜ @GoInsights | @GolangEngineers
🔐 Security: Includes security fixes for encoding/gob, go/build/constraint, and go/parser
🔈 Announcement: https://groups.google.com/g/golang-announce/c/K-cEzDeCtpc
📦 Download: go.dev/dl/#go1.23.1
➖➖➖➖➖➖➖➖
⚜ @GoInsights | @GolangEngineers