Golang Insights – Telegram
Golang Insights
752 subscribers
116 photos
7 videos
47 files
130 links
Stay ahead in Golang development with Golang Insights, your go-to for the latest news, tips, tricks, and code examples tailored for Golang enthusiasts and professionals.

Group: https://news.1rj.ru/str/GolangEngineers
Download Telegram
🚀 مشارکت در توسعه sdk پروژه meilisearch

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

من به عنوان Maintainer بخش sdk زبان گولنگ پروژه از دوستانی که مایل هستند مشارکت در پروژه آزاد را تجربه کنند دعوت میکنم از این فرصت برای بهبود sdk و تجربه پیاده سازی sdk استفاده کنید.

🏘 https://www.meilisearch.com/
https://github.com/meilisearch/meilisearch-go


⚡️@GoInsights | @GolangEngineers
7
🎉 امروز خوشحال شدم که دیدم یکی از مطالبی که نوشته بودم در پول ریکوئست Homebrew رفرنس شده!

https://github.com/Homebrew/homebrew-core/pull/226636

در این PR، نسخه‌ی جدید Go 1.25 اضافه شده، و در توضیحاتش به مقاله‌ای از من درباره‌ی ویژگی‌های جدید و بهبودهای نسخه‌ی 1.25 اشاره شده بود.

📝 مقاله‌ی من در بلاگم: https://open.substack.com/pub/bitstack/p/go-125-upcoming-changes-faster-smarter

این برای من یک نشونه‌ی کوچیک ولی دلگرم‌کننده‌ بود که نشون میده تولید محتوای تخصصی می‌تونه واقعاً اثرگذار باشه—even در پروژه‌های بزرگی مثل Homebrew.

از همه‌ی کسانی که منو دنبال می‌کنن و به اشتراک‌گذاری دانش اهمیت می‌دن، ممنونم. ❤️


⚡️@GoInsights | @GolangEngineers
👍17🆒52🔥2
📚 بخش الگوهای همزمانی کتاب مجدد بازنویسی شد!!

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


- سایت: https://book.gofarsi.ir/chapter-9/concurrency-patterns/

- دانلود نسخه دسکتاپ: https://github.com/GoFarsi/book/releases/latest

- نسخه ایمیج داکر: https://github.com/orgs/GoFarsi/packages/container/package/book


⚡️@GoInsights | @GolangEngineers
🔥9
Forwarded from Go Casts 🚀
یادگیری هیجان انگیز + بهبود کیفیت کد با CodeRabbit
واقعاً شگفت‌زده شدم! 🤯

انگار که یه مهندس ارشد نرم افزار در کنارته و کدت رو review میکنه!

این ابزار نه‌تنها کیفیت code reviewها رو در Pull Requestها بالا می‌بره، بلکه به شکل فوق‌العاده‌ای توی یادگیری عملی برنامه‌نویسی میتونه به شما کمک کنه.

خوبی ش اینه برای پروژه های open-source رایگانه و میتونید از همین الان حالش رو ببرید. 🎁


شما می‌تونید برای خودتون پروژه‌هایی با هدف یادگیری تعریف کنید، و CodeRabbit مثل یه منتور حرفه‌ای PRهاتون رو از جنبه‌های مختلف مثل:
رعایت best practice
بهبود performance
ساختار معماری کد
بهینه‌سازی queryهای دیتابیس
ریویو می‌کنه و نکات دقیقی بهتون می‌ده. 🎯


مثلا من یه پروژه Elixir رو بهش دادم و ازش خواستم که review کنه و خروجی یه جاهایی واقعا میخکوبم کرد.
یکی قسمت Critical Issueها و ارزیابی پروژه از نظر best practices و performance بود که خیلی آموزنده ست. (کد شما رو با کد بهتر مقایسه میکنه).
https://github.com/landofbeam/dns_rabbit/pull/1#issuecomment-3130715195

یکی هم قسمت Sequence Diagram(s) بود که خودش flow درخواست هارو طراحی کرد.
https://github.com/landofbeam/dns_rabbit/pull/1#issuecomment-3124812290


کلا با CodeRabbit میشه به یه سطح دیگه ای از linting هم رسید. تا حالا ابزارهای linting زیادی دیدیم که syntax و style رو بررسی می‌کنن. اما واقعاً چند تا ابزار سراغ داریم که منطق کد، ساختار معماری، performance یا best practiceها رو بررسی کنن؟
این چیزیه که با CodeRabbit میشه تجربه ش کرد.


@gocasts
👍42
🎉 انتشار نسخه جدید Meilisearch Go SDK (v0.33.0)

میلی سرچ یک موتور جستجوی متن‌باز، بسیار سریع و سبک است که برای ارائه نتایج جستجوی آنی (instant search) با تجربه‌ای شبیه به موتورهای بزرگ مانند گوگل طراحی شده است. این موتور به‌صورت API محور ساخته شده و به‌راحتی با زبان‌های برنامه‌نویسی مختلف مانند JavaScript، Go، Python و دیگر زبان‌ها یکپارچه می‌شود. Meilisearch با پشتیبانی از امکاناتی نظیر جستجوی فازی (fuzzy search)، فیلترگذاری، مرتب‌سازی، faceting و پشتیبانی از چند زبان، انتخابی عالی برای اپلیکیشن‌های مدرن، فروشگاه‌های آنلاین، بلاگ‌ها و پنل‌های مدیریتی است که نیاز به جستجوی سریع و کاربرپسند دارند. همچنین نصب و راه‌اندازی آن بسیار ساده بوده و حتی در پروژه‌های کوچک نیز به‌خوبی قابل استفاده است.

در این نسخه ما تغییرات بزرگی داشتیم و SDK را با آخرین تغییرات اخیر میلی سرچ بروز کردیم و یکسری بروز رسانی ها و بهبود ها انجام دادیم تا تجربه آسان و سریعی را با میلی سرچ داشته باشید.

🔍 میلی سرچ: https://meilisearch.com/

🚀 جزئیات بیشتر: https://github.com/meilisearch/meilisearch-go/releases/tag/v0.33.0


⚡️@GoInsights | @GolangEngineers
1🔥11👍1
📚فصل هفتم کتاب زبان گو فارسی بزودی

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

7.1 مقدمه‌ای بر تست در Go
7.2 تست واحد (Unit Test)
7.3 تست جدول‌محور (Table-Driven Test)
7.4 تست یکپارچه (Integration Test)
7.5 تست انتها به انتها (End-to-End Test - E2E)
7.6 تست عملکرد (Benchmark)
7.7 تست فازی (Fuzz Testing)
7.8 ماک و شبیه‌سازی وابستگی‌ها (Mock)
7.9 استفاده از testify
7.10 استفاده از ginkgo
7.11 تست‌های همزمانی (Concurrent Testing)
7.12 سنجش پوشش تست (Code Coverage)
7.13 تست Suite و ساختاردهی تست‌ها
7.14 تست‌نویسی حرفه‌ای در پروژه‌

🚀 https://book.gofarsi.ir/


⚡️@GoInsights | @GolangEngineers
17🔥4👍3
🚀 قابلیت اجرا کد داخل کتاب

امکان اجرای کد داخل کتاب اضافه شد چه داخل گوشی چه دسکتاپ می توانید در هر بخش کد را زنده اجرا کنید و خروجی را ببینید.

https://book.gofarsi.ir/chapter-1/go-variables-and-consts/

در ضمن اگر مایل بودین از سرویس playground می توانید هرجا استفاده کنید.

https://github.com/GoFarsi/book/blob/main/static/js/playground.js


⚡️@GoInsights | @GolangEngineers
16👍2🆒1
🚀 آموزش صفر تا صد پکیج io در کتاب

پکیج io در زبان Go یکی از ابزارهای پایه و همه‌فن‌حریف برای کار با عملیات Input/Output است. فلسفه‌اش اینه که ما بدون وابستگی به نوع خاص داده (مثل فایل، شبکه یا حافظه) بتونیم از یک Interface ساده استفاده کنیم. این یعنی اگر یک شیء فقط متد مورد نیاز رو پیاده‌سازی کنه، می‌تونه در تمام جاهایی که اون رابط انتظار میره استفاده بشه. مثلا io.Reader فقط یک متد Read داره و io.Writer یک متد Write، ولی همین دو قرارداد ساده پایه تمام سیستم I/O Abstraction در Go رو تشکیل میدن.

https://book.gofarsi.ir/chapter-4/go-io-package/


⚡️@GoInsights | @GolangEngineers
7👍7
#استخدام #مشهد

یک شرکت فعال در حوزه نرم‌افزار به دنبال جذب برنامه‌نویس متعهد و تمام‌وقت (حضوری) در مشهد است.

شرایط و مهارت‌های مورد نیاز:

- تسلط کامل به زبان Golang
- آشنایی با زبان Python
- تجربه عملی و کامل در کار با سرویس‌های AWS شامل کانفیگ، راه‌اندازی سرویس‌ها و مقیاس‌دهی (Scaling)
- تسلط به Docker و مفاهیم کانتینرسازی


مزایا:

- محیط کاری حرفه‌ای و پویا
- پروژه‌های چالش‌برانگیز و فرصت رشد
- همکاری با تیمی متخصص و صمیمی


در صورت دارا بودن شرایط فوق، لطفاً رزومه خود را به آیدی زیر ارسال کنید:

@ja7adr


⚡️@GoInsights | @GolangEngineers
2
👍2😭2😁1
راز پشت پرده گولنگ ساده: فلسفه‌ای که باید زنده بماند
(تفکر مینیمالیستی در جهان پرزرق‌وبرق پترن‌ها)

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

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

در تعریف فلسفی، «سادگی در گولنگ» یک ویژگی ذاتی زبان نیست که با نصب کامپایلر به‌طور خودکار بیاید.
سادگی یک انتخاب آگاهانه است که باید در تمام چرخه توسعه، نگهداری و تصمیم‌گیری حفظ شود.
این یعنی، هر بار که می‌خواهیم یک پترن جدید یا رویکردی از زبان‌های دیگر را وارد پروژه کنیم، باید از خود بپرسیم:

* آیا این انتخاب واقعاً باعث وضوح بیشتر می‌شود؟
* یا فقط ظاهری حرفه‌ای دارد ولی بار مفهومی و نگهداری پروژه را سنگین‌تر می‌کند؟
* آیا این رویکرد با فلسفه مینیمالیستی گولنگ هم‌خوانی دارد؟

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

بعضی پترن‌ها که در زبان‌های پیچیده‌تر ضروری‌اند، ممکن است در گولنگ نه‌تنها بی‌فایده باشند، بلکه فلسفه زبان را تضعیف کنند.
اما این مانع از آن نمی‌شود که این پترن‌ها با هیجان و بی‌محابا وارد پروژه‌ها شوند،چون «مد» شده‌اند یا چون در کامیونیتی زبان قبلی محبوب بوده‌اند.

از این رو، ضروری است که:

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

کدی که به فلسفه گولنگ وفادار است، فقط از نظر سینتکس ساده نیست؛
بلکه در معماری، جریان داده، و تعامل تیمی هم شفاف و مختصر باقی می‌ماند.

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

موفق باشید! 🌹

@srfirouzi_channel
20👍4
🚀 پشتیبانی از زبان فارسی به Meilisearch اضافه شد! 🎉

بعد از مدت‌ها کار و تجربه دوم من در مشارکت با پروژه‌های Rust، بالاخره موفق شدم Normalization، Segmenter و Tokenizer مخصوص زبان فارسی را توسعه بدم و به این موتور جستجوی قدرتمند اضافه کنم.

به‌زودی در نسخه‌های آینده، Meilisearch به‌طور کامل از زبان فارسی پشتیبانی خواهد کرد. 🇮🇷

📌 جزئیات بیشتر: https://github.com/meilisearch/charabia/pull/350


⚡️@GoInsights | @GolangEngineers
🔥15👏31👍1
🚀 ‏Go 1.25.0 منتشر شد!

تغییرات نسخه: go.dev/doc/go1.25
📖 بررسی عمیق و جزئیات: bitstack – تغییرات Go 1.25
📦 دانلود: go.dev/dl/#go1.25.0

از بهبود عملکرد تا قابلیت‌های هوشمندتر — این نسخه، Go را سریع‌تر، تمیزتر و لذت‌بخش‌تر برای کدنویسی می‌کند. 🐹

#golang #programming #developer #gopher #go


⚡️@GoInsights | @GolangEngineers
🔥93🆒1
🚀 آموزش فعال‌سازی مدل‌های قدیمی ChatGPT

با انتشار نسخه 5 چت‌جی‌پی‌تی، بسیاری از مدل‌های قدیمی دیگر به‌صورت پیش‌فرض نمایش داده نمی‌شوند.

اما همچنان می‌توانید به آن‌ها دسترسی داشته باشید! کافیست مراحل زیر را دنبال کنید:

1️⃣ وارد حساب کاربری خود شوید و به بخش Settings بروید.
2️⃣ در تب General، گزینه Show additional models را فعال کنید.

📌 با این روش، مدل‌های قدیمی دوباره در لیست شما نمایش داده می‌شوند و می‌توانید از آن‌ها استفاده کنید.


⚡️@GoInsights | @GolangEngineers
🔥6👍2
🤖 پروژه Meilisearch MCP با زبان گو

یک پیاده‌سازی پرکاربرد و سریع از پروتکل Model Context (MCP) در زبان Go برای Meilisearch.
این سرور امکان می‌دهد ابزارهای هوش مصنوعی (روی دسکتاپ یا فضای ابری) از طریق استاندارد MCP و با استفاده از HTTP یا stdio به داده‌های Meilisearch شما متصل شوند.

مخزن: https://github.com/ja7ad/meilisearch-mcp

نسخه mcp وب: https://meilisearch.javad.dev/

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



⚡️@GoInsights | @GolangEngineers
🔥7👍21
الکی نیست آقامون توروالدز زبان c را به همه چی ترجیح میده 😂


⚡️@GoInsights | @GolangEngineers
🔥12😁3👍1
سادگی یا اسکیلبیلیتی؟
(تصمیمی که آینده محصول را شکل می‌دهد)

خیلی وقت‌ها در طراحی سیستم‌ها، تیم‌ها از همان روز اول می‌پرسند:
«وقتی میلیون‌ها کاربر داشتیم، چه می‌کنیم؟»

نتیجه این طرز فکر، معماری‌های پیچیده، ابزارهای اضافه، و ماه‌ها زمان صرف مسائلی است که شاید هیچ‌وقت پیش نیایند.

در حالی که واقعیت این است:
بیشتر محصول‌ها در ابتدای مسیر بیش از هر چیز به سادگی نیاز دارند

- ساده برای ساخت
- ساده برای نگهداشت
- ساده برای تغییر
- ساده حتی برای اسکیل

اسکیلبیلیتی مهم است، اما نه به قیمت از دست دادن تمرکز روی حل مسئله اصلی.
بسیاری از استارتاپ‌های موفق ابتدا محصولی ساده و پایدار ساخته‌اند و وقتی واقعاً با رشد کاربر مواجه شدند، سراغ اسکیل رفته‌اند.

پس از خود بپرسیم:

آیا پیچیدگی در راستای اسکیلبیلیتی واقعاً لازم است؟
یا داریم آینده‌ای نامعلوم را پیش‌خور می‌کنیم؟

گاهی بهترین انتخاب این است که سیستم را ساده بسازیم و اجازه دهیم رشد واقعی ما را به سمت اسکیل هدایت کند.

سادگی امروز، راه را برای اسکیل فردا نیز باز می‌کند.

موفق باشید 🌹

@srfirouzi_channel
👍11👎1🆒1