gram news
Аватар канала Gopher Academy

Gopher Academy

@gopher_academy

🕸 Gopher Academy 🔷interview golang https://github.com/mrbardia72/Go-Interview-Questions-And-Answers حمایت مالی: https://www.coffeete.ir/mrbardia72 ادمین: @mrbardia72

3,834подписчиков

Открыть канал

Последние посты

  • Gopher Academy

    20 сент., 13:30

    🔵 عنوان مقاله Data Races and the Limits of ThreadSanitizer in C and Go🟢 خلاصه مقاله: در دنیای برنامه‌نویسی همواره یکی از نگرانی‌های اصلی توسعه‌دهندگان، مشکلات مربوط به مسابقه داده‌ها (Data Races) است. این خطا زمانی رخ می‌دهد که چندین رشته (Thread) همزمان به‌طور ناهمزمان و بدون کنترل صحیح به داده‌های مشترک دسترسی پیدا کنند، که این امر می‌تواند باعث ایجاد رفتارهای پیش‌بینی‌ناپذیر و خطاهای سخت شناسایی و رفع شود. به همین دلیل، ابزارهای تشخیص مسابقه داده‌ها مانند ThreadSanitizer، نقش حیاتی در توسعه برنامه‌های پایدار و مطمئن ایفا می‌کنند.در این مقاله، نگاهی می‌اندازیم به نحوه عملکرد ThreadSanitizer، موتور قدرتمند در پس‌زمینه‌اش که توانایی کشف مسابقه‌های داده‌ها در زبان‌های برنامه‌نویسی مانند Go و C را دارد. این ابزار با تجزیه و تحلیل دقیق عملیات اجرایی، تلاش می‌کند تا در حین اجرای برنامه، برخوردهای ناهمزمان را تشخیص دهد و هشدارهای لازم را صادر کند. اما، در کنار این امکانات، محدودیت‌هایی
    The ConsensusData races and the limits of ThreadSanitizer in C and Go - The ConsensusHave you ever wondered what a data race is? How a race detector works? If there are bugs in your race detector? We take a look.
  • Gopher Academy

    20 сент., 10:30

    🔵 عنوان مقاله GoHT: Haml, Slim and EGO Template Engine for Go🟢 خلاصه مقاله: در دنیای توسعه برنامه‌های تحت زبان Go، یکی از چالش‌های رایج، هماهنگی و هم‌زمانی نوشتن قالب‌های وب با کد اصلی است. اما حالا ابزارهای جدیدی ارائه شده‌اند که این فرآیند را بسیار ساده‌تر می‌کنند. در این میان، سیستم‌های قالب‌سازی Haml، Slim و EGO برای زبان Go به توسعه‌دهندگان امکان می‌دهند تا به‌صورت هم‌زمان و هم‌پوشان، هم قالب‌ها و هم کدهای منطق برنامه‌نویسی را بنویسند. این رویکرد باعث می‌شود فرآیند توسعه سریع‌تر، سازمان‌یافته‌تر و قابل نگهداری‌تر شود، مخصوصاً زمانی که نیاز به ساخت قالب‌های پیچیده و پویا دارید.در این فریمورک‌ها، امکان افزودن بلوک‌های @haml، @slim و @ego در فایل‌های مربوطه فراهم شده است، که باعث می‌شود قالب‌ها را به صورت خوانا و نزدیک به HTML استاندارد بنویسید. این قابلیت‌ها، به توسعه‌دهندگان اجازه می‌دهند قالب‌ها را در کنار کدهای اصلی زبان Go طراحی و ویرایش کنند، بدون نیاز به جدا کردن فایل‌های
    GoHT - Go HTML TemplatesHome :: GoHT - Go HTML TemplatesDocumentation for GoHT, a Haml, Slim, and EGO template engine and file generation tool for Go
  • Gopher Academy

    20 сент., 07:30

    🔵 عنوان مقاله Rune: A Fast, Native, Open Source IDE Built in Go🟢 خلاصه مقاله: رون: یک محیط توسعه سریع، بومی و منبع باز با پایه زبان Goرون یک محیط توسعه یکپارچه و قدرتمند است که بر پایه زبان برنامه‌نویسی Go ساخته شده و به عنوان یک IDE منبع باز و سبک شناخته می‌شود. این ابزار، با هدف فراهم کردن تجربه برنامه‌نویسی سریع و کارآمد طراحی شده است، به گونه‌ای که توسعه‌دهندگان بتوانند فرآیند کدنویسی را بدون محدودیت‌های سیستم‌های سنگین یا نیاز به ابزارهای خارجی انجام دهند.این IDE با بهره‌گیری از شتاب‌دهنده‌های گرافیکی GPU، عملکرد بسیار بالایی در اجرای وظایف مختلف دارد. یکی از ویژگی‌های منحصربه‌فرد آن، بهره‌گیری از تکنولوژی‌های نوین در نمایش و واکنش سریع به عملیات کاربر است، که این امر در نسخه‌های جدید بهبود یافته است و اکنون به سطحی رسیده است که به‌راحتی با نمونه‌های معتبر مثل Alacritty و Ghostty رقابت می‌کند، بدون آنکه مجبور باشد از CGo در مسیرهای حساس استفاده کند.در این مقاله، جزئیات
    rune.buildRune is now open source. Rune BlogRune is now open source under the GPLv3. A native, keyboard-driven IDE written primarily in Go is ready for Go developers to inspect, change, and help build.
  • Gopher Academy

    20 сент., 04:30

    🔵 عنوان مقاله wasm2go: Translate WebAssembly Binaries into Go Code🟢 خلاصه مقاله: در دنیای توسعه نرم‌افزار، یکی از چالش‌های مهم، ادغام کدهای مختلف در یک برنامه است. در این راستا، ابزارهایی مانند wasm2go نقش بسزایی دارند. این ابزار یک کامپایلر است که امکان ترجمه باینری‌های WebAssembly (WASM) را به کد زبان Go فراهم می‌کند، به گونه‌ای که بتوان آن را به عنوان یک بسته مستقل و قابل استفاده در برنامه‌های نوشته‌شده با زبان Go، به‌راحتی استفاده کرد. این قابلیت به توسعه‌دهندگان این امکان را می‌دهد تا بدون نیاز به موتورهای اجرای WASM، بتوانند کتابخانه‌های C ساخته‌شده با SDK های مبتنی بر WASI را در برنامه‌های Go خود استفاده کنند.با بهره‌گیری از wasm2go، می‌توانید به سادگی زیربنای برنامه‌تان را گسترش دهید، بدون اینکه حجم نهایی برنامه خود را با موتورهای شوک‌دار مانند ماشین مجازی WASM افزایش دهید. این ابزار به شما کمک می‌کند تا کدهای کاربردی را به صورت مستقیم و بهینه وارد پروژه‌های خود کنید، در
    GitHubGitHub - goccy/wasm2go: AOT compiler that translates a WebAssembly binary into standalone Go source code with Plan9 AssemblyAOT compiler that translates a WebAssembly binary into standalone Go source code with Plan9 Assembly - goccy/wasm2go
  • Gopher Academy

    19 сент., 13:30

    🔵 عنوان مقاله Scaling Go in CI by Replacing actions/setup-go🟢 خلاصه مقاله: در محیط‌های توسعه‌ی مستمر، یکی از چالش‌هایی که برنامه‌نویسان روبه‌رو می‌شوند، مدیریت بهینه کش‌ها است؛ مخصوصاً زمانی که از ابزارهای خودکار و عملیات‌های آماده‌ی GitHub استفاده می‌کنند. در این مقاله به بررسی مشکلی می‌پردازیم که هنگام استفاده از اکشن رسمی GitHub، یعنی actions/setup-go، اتفاق می‌افتد. همانطور که می‌دانید، این اکشن برای راه‌اندازی سریع و آسان زبان برنامه‌نویسی Go در فرآیندهای CI طراحی شده است و نقش مهمی در تسریع فرآیندهای تست و ساخت دارد.متأسفانه، زمانی که چندین شغل هم‌زمان در CI اجرا می‌شوند، ممکن است تداخل‌هایی در کش‌ها رخ دهد. این تداخل‌ها منجر به این می‌شود که کش‌ها در میان اجراهای مختلف به‌درستی به‌روزرسانی نشوند و در نتیجه، مجبور می‌شوید کش‌ها را به صورت دستی پاک یا اصلاح کنید. یکی دیگر از مشکلات رایج این است که کش‌ها معمولاً تا زمانی که فایل‌های مرتبط با پیکربندی Go، مانند فایل go.mod،
    CloudX | Ad Infrastructure for the Intelligence EraScaling Golang CI by Replacing actions/setup-go | CloudXcloudx-io/setup-go is a faster, smarter, drop-in replacement for actions/setup-go.
  • Gopher Academy

    19 сент., 10:30

    🔵 عنوان مقاله golang-set 3.0: A Simple, Well-Tested, Generic Set Type🟢 خلاصه مقاله: در نسخه ۳ از پکیج "گولانگ-ست"، یک نوع مجموعه ساده، آزمایش‌ شده و عمومی ارائه شده است که به کاربران این زبان برنامه‌نویسی امکان می‌دهد مجموعه‌های خاص خود را با سهولت و اطمینان پیاده‌سازی کنند. هرچند آینده‌ی نسخه‌های بعدی ممکن است نوع مجموعه عمومی رسمی در زبان گولانگ وارد شود، اما در حال حاضر، این نسخه‌ با ثبات و کارآمد، گزینه‌ای کامل و قابل اعتماد است که نیازهای رایج برنامه‌نویسی را برطرف می‌کند.این بسته‌ی نرم‌افزاری، ساخت مجموعه‌ها را بسیار آسان و سریع می‌سازد و به طور کامل آزمایش شده است تا کیفیت و کارایی بالا را تضمین کند. توسعه‌دهندگان می‌توانند به راحتی از آن در پروژه‌های مختلف استفاده کنند و مطمئن باشند که برای مدیریت داده‌های مجموعه‌ای، پاسخگو و قابل توسعه است. این نسخه به طور ویژه برای کسانی طراحی شده است که به دنبال راه‌حلی پایدار و قابل اطمینان در زمینه مجموعه‌های داده هستند و قصد دارند کد
    GitHubGitHub - deckarep/golang-set: A simple, battle-tested and generic set type for the Go language. Trusted by GoogleCloudPlatform…A simple, battle-tested and generic set type for the Go language. Trusted by GoogleCloudPlatform, Docker, 1Password, Ethereum and Hashicorp. - deckarep/golang-set
  • Gopher Academy

    19 сент., 07:50

    Иллюстрация к посту канала Gopher AcademyИллюстрация к посту канала Gopher Academy
  • Gopher Academy

    19 сент., 07:30

    🔵 عنوان مقاله Size-Specialized Memory Allocation in Go 1.27🟢 خلاصه مقاله: در نسخه ۱.۲۷ زبان برنامه‌نویسی گو، بهینه‌سازی‌های مهمی در نحوه تخصیص حافظه صورت گرفته است. یکی از این بهبودها مربوط به تخصیص حافظه‌های کوچک است؛ به طوری که عملیات‌های تخصیص حافظه‌های زیر ۸۰ بایت تا ۳۰ درصد سریع‌تر شده‌اند. این بهبود عملکرد، تأثیر چشمگیری در سرعت اجرای برنامه‌های شما دارد و تنها کافی است که دوباره‌سازی برنامه خود را انجام دهید تا از این مزایا بهره‌مند شوید.در این نسخه، دلیل اصلی این بهبود و انتخاب ۸۰ بایت به عنوان «نقطه عسل» (همان نقطه‌ی بهینه) چیست؟ توسعه‌دهندگان گو، در تلاش بودند تا نمونه‌هایی از حافظه‌های کوچک را به صورت مؤثرتر مدیریت کنند و در نتیجه، سرعت تخصیص آن‌ها را به میزان قابل توجهی افزایش دهند. انتخاب ۸۰ بایت به عنوان نقطه‌ی عسل، بر اساس تحلیل دقیق حجم‌های حافظه‌ای است که بیشترین تکرار و اهمیت را در برنامه‌ها دارند، و کمک می‌کند تا حافظه به صورت بهینه‌تر و کاراتر مدیریت شود.در مج
    go.devSize-Specialized Memory Allocation - The Go Programming LanguageGo 1.27 improves performance of small allocations using size-specialized allocation functions.
  • Gopher Academy

    19 сент., 04:30

    🔵 عنوان مقاله A 40ms Go GC Pause Caused by Swap🟢 خلاصه مقاله: امروز می‌خواهم به تجربه‌ای مهم در زمینه زبان برنامه‌نویسی Go اشاره کنم که شاید برای توسعه‌دهندگان زیادی آشنا باشد. در این حادثه، یک توقف ۴۰ میلی‌ثانیه‌ای در فرآیند جمع‌آوری زباله (Garbage Collection) به دلیل استفاده از سوپ ایجاد شد. این مشکل وقتی رخ داد که تصمیم گرفتم در محیط تولید، از سوپ برای جذب نوسانات حافظه استفاده کنم.در ابتدا، هدف من از فعال‌سازی سوپ در سیستم این بود که بتوانم بهره‌وری حافظه را بهتر مدیریت و نوسانات ناگهانی مصرف رم را کنترل کنم. اما به زودی متوجه شدم این اقدام من سبب توقف قابل توجهی در اجرای برنامه شد. توقف ۴۰ میلی‌ثانیه‌ای که پس از سوپ رخ داد، تاثیر قابل توجهی بر تجربه کاربر و کارایی سیستم داشت. این تجربه نشان داد که استفاده نااگاهانه یا بدون برنامه‌ریزی صحیح از قابلیت‌های جمع‌آوری زباله می‌تواند مشکلاتی جدی در پرفورمنس ایجاد کند.من این مقاله را نوشتم تا شما از اشتباه من درس بگیرید و اجازه
  • Gopher Academy

    17 сент., 09:07

    переслано из @persianpost_official

    امروز، ۲۶ شهریور، زادروز پسر کوروش بزرگه؛ روزی که به‌عنوان «روز پسر» نام‌گذاری شده.
    2766211Открыть в Telegram
  • Gopher Academy

    16 сент., 07:18

    [pointer][pointer][pointer][pointer] ↓ ↓ heap heap ↓ ↓ Restaurant Restaurant ب CPU باید pointer را دنبال کند تا به object برسد.بنابراین Value Type می‌تواند cache locality بهتری ایجاد کند. البته این به اندازه و ساختار واقعی struct و access pattern بستگی دارد؛ نمی‌شود گفت pointer همیشه بد و value همیشه خوب است.۸. نکته بسیار مهم: Pointer همیشه بد نیست این را حتماً در ذهن داشته باش. این حرف: Pointer → Value = همیشه performance بهتر درست نیست. مثلاً اگر struct خیلی بزرگ باشد: type HugeStruct struct { Data [10000]byte } کپی کردن آن ممکن است گران باشد.
  • Gopher Academy

    16 сент., 07:18

    بذارید دقیق و با مثال توضیح بدیم.۱. اول ببینیم Embedding چیست فرض کن برای هر رستوران یک embedding داریم: Restaurant: Pizza Hut Embedding: [0.1823, -0.4211, 0.7328, 0.0912, ...] این اعداد معمولاً float32 هستند. مثلاً یک embedding با 768 dimension: type Embedding []float32 هر float32 برابر ۴ بایت است: 768 × 4 = 3072 bytes یعنی تقریباً 3KB برای هر embedding. حالا اگر میلیون‌ها رستوران/آیتم داشته باشی، حجم حافظه خیلی سریع بالا می‌رود. ۲. کاهش دقت اعشار یعنی چه؟ فرض کن مقدار اصلی: 0.18237491 باشد. برای مدل‌های ML همیشه لازم نیست تمام این دقت را نگه داریم. می‌توان آن را مثلاً به چیزی مثل:
  • Gopher Academy

    16 сент., 07:17изменён

    ۳. بهینه‌سازی امبدینگ‌ها با کاهش دقت اعشار و فشرده‌سازی تا ۴۶٪، در کنار تبدیل پوینترها به Value types در کد Go که مصرف ۴۰ درصدی پردازنده توسط Garbage Collector را به شدت کم کرد.
    TelegramGopher Academyبذارید دقیق و با مثال توضیح بدیم. ۱. اول ببینیم Embedding چیست فرض کن برای هر رستوران یک embedding داریم: Restaurant: Pizza Hut Embedding: [0.1823, -0.4211, 0.7328, 0.0912, ...] این اعداد معمولاً float32 هستند. مثلاً یک embedding با 768 dimension: type…
  • Gopher Academy

    16 сент., 06:39

    مهندسان اوبر در یک بلاگ‌پست فنی جزییات جالبی از نصف کردن تاخیر جستجوی Uber Eats منتشر کرده‌اند. فارغ از بهینه‌سازی‌های مرسوم معماری، استفاده عملی‌شان از ایجنت‌های هوش مصنوعی برای تیونینگ کد توجه من را جلب کرد.خلاصه تغییرات کلیدی: ۱. تغییر متریک اصلی به ATF (مدت‌زمان رندر اولین بخش تصویر در گوشی کاربر) و تبدیل رندر HTML به یک پایپلاین کاملا Async.۲. جداسازی Hydration به دو فاز مجزا؛ واکشی سریع سیگنال‌های رتبه‌بندی برای اجرای زودهنگام مدل‌ها، و لود موازی جزییات نمایشی (قیمت، تصویر و...).۳. بهینه‌سازی امبدینگ‌ها با کاهش دقت اعشار و فشرده‌سازی تا ۴۶٪، در کنار تبدیل پوینترها به Value types در کد Go که مصرف ۴۰ درصدی پردازنده توسط Garbage Collector را به شدت کم کرد.۴. استفاده از لوپ خودکار ایجنتی؛ ایجنت با تحلیل پروفایل‌های زنده پروداکشن، باتل‌نک‌های ریز را پیدا می‌کرد، کد بهینه‌سازی می‌نوشت، پول‌ریکوئست می‌زد و با بنچمارک نتیجه را می‌سنجید.۵. برنامه‌های آینده بر پایه مایکروبچینگ،
    UberHalving the Time: How Uber Eats Rebuilt Its Search PipelineEvery millisecond of latency is a lost opportunity—especially when people are hungry. 🍔 We cut Uber Eats search latency in half by re-architecting our full-stack pipeline. Read our latest deep dive to see how we did it.
  • Gopher Academy

    16 сент., 06:38

    переслано из @frontend_labdon

    میدلولها خیلی بدردتون میخورهچند روز بعد از اینکه درباره تجربه خوبم با Graphify نوشتم، از workflow اصلی همون پروژه حذفش کردم!نه چون Graphify بد بود.اتفاقاً چون استفاده ازش باعث شد دقیق‌تر بفهمم از این مدل ابزارها چی می‌خوام.مسئله‌ای که داشتم فقط Search داخل codebase نبود. مسئله اصلی Orientation بود. هر تسک جدید با چند سؤال تکراری شروع می‌شد: این component کجا استفاده شده؟ این composable رو چی مصرف می‌کنه؟ این feature بین چه فایل‌هایی پخش شده؟ اگه این قسمت رو تغییر بدم، چه چیزهای دیگه‌ای تحت تأثیر قرار می‌گیرن؟و Graphify برای اولین بار این حس رو بهم داد که قبل از باز کردن فایل‌ها، می‌شه یه نقشه از پروژه داشت.بعد رفتم سراغ Codebase Memory MCP تا ببینم همین ایده وقتی مستقیم وارد workflow خود Coding Agent می‌شه چه فرقی می‌کنه.
    aliarghyani.vercel.appGraphify رو با Codebase Memory MCP عوض کردم؛ ولی نه برای همه‌چیزروایت مهاجرت یک پروژه Nuxt از Graphify به Codebase Memory MCP؛ از دردسرهای MCP تا اولین تسک واقعی و مرز درست استفاده از هر ابزار.
  • Gopher Academy

    15 сент., 16:19

    переслано из @ai_labdon

    🔵 عنوان مقاله Claude Fable 5.1 and Mythos 5.1 (8 minute read)🟢 خلاصه مقاله: شرکت انتروپیک به تازگی نسخه‌های جدید مدل‌های خود را معرفی کرده است؛ Claude Fable 5.1 و Mythos 5.1. این نسخه‌ها با بهبود در قابلیت‌های کدنویسی و تحقیقات، به کاربران امکان می‌دهند تا در حوزه‌های تخصصی با کارایی بیشتری فعالیت کنند. همچنین، قیمت‌گذاری این نسخه‌ها به گونه‌ای تنظیم شده است که هزینه‌های موثر برای کاربران کاهش یابد، در عین حال محافظت‌ها و اقدامات امنیتی به‌روز و جامع‌تری در آن‌ها تعبیه شده است.نسخه Mythos، که از همان مدل پایه بهره می‌برد، به شکل ویژه‌ای برای کنترل دسترسی‌های پیشرفته طراحی شده است. این قابلیت‌ها، به‌خصوص در کارهای حساس در زمینه امنیت سایبری و علوم زیستی، امکان دسترسی مطمئن و کنترل شده را فراهم می‌آورد. به این ترتیب، Mythos نه تنها قدرتمند است بلکه به کاربران اجازه می‌دهد تا در زمینه‌های حیاتی، با اعتماد کامل از امکانات آن بهره‌مند شوند.به طور کلی، این نسخه‌های جدید نشان‌دهنده
    AnthropicIntroducing Claude Fable 5.1 and Claude Mythos 5.1Our most advanced models for coding and knowledge work. Their research capabilities also offer an early glimpse of how AI models will contribute to scientific progress.
  • Gopher Academy

    15 сент., 11:39

    همکاران سیستم برگزار می‌کند:بوت‌کمپ برنامه‌نویسی Goℹ️ آغاز دوره از ۲ مهرماه | ۴ جلسه ۴.۵ ساعته | ساعت ۸:۳۰ تا ۱۳‼️ در طی ۴ جلسه مباحث اصلی برنامه‌نویسی با زبان Go رو یاد میگیری و با انجام پروژه‌های کوچک به حل چالش‌ها و مسائل واقعی دنیای برنامه‌نویسی می‌پردازی.🔺هزینه دوره: رایگان📧 برای شرکت در این دوره کافیه رزومه‌ت رو برای ما ارسال کنی:Hr-Dev@systemgroup.net🔷 سرفصل‌های بوت‌کمپ- Think in Go Familiarity with Go Program Structure, Data Types, Types, and Functions- Build with Go
    Иллюстрация к посту канала Gopher AcademyИллюстрация к посту канала Gopher Academy
  • Gopher Academy

    15 сент., 04:30

    🔵 عنوان مقاله gomodjail 2.0: An Experimental Jail for Go Modules🟢 خلاصه مقاله: در جهان توسعه نرم‌افزار، مدیریت وابستگی‌ها یکی از چالش‌های مهم است. اخیراً، ابزار جدیدی با نام «گومودجیل ۲.۰» معرفی شده که روشی نوآورانه برای محدود کردن دسترسی‌های مربوط به ماژول‌های Go ارائه می‌دهد. این ابزار، بر پایه ایده‌ای آزمایشی ساخته شده است تا توسعه‌دهندگان بتوانند به صورت امن‌تر و کنترل‌شده‌تری وابستگی‌های پروژه‌های خود را مدیریت کنند.گومودجیل ۲.۰ توسط سازنده پروژه «لیما» توسعه یافته است و به عنوان یک سیستم نمونه‌سازی برای محدود کردن تعاملات ماژول‌های Go طراحی شده است. در این سیستم، توسعه‌دهندگان می‌توانند با استفاده از یک کامنت خاص در فایل go.mod، مشخص کنند که این ماژول تحت چه محدودیت‌هایی قرار دارد. سپس، ابزار gomodjail به طور خودکار بررسی می‌کند که آیا این ماژول توانایی دسترسی به فایل سیستم، شبکه، تنظیم سیستم کرنل و یا انجام فراخوانی‌های سیستمی خام را دارد یا خیر.در واقع، هدف از این پروژه
    GitHubGitHub - AkihiroSuda/gomodjail: [Experimental] jail for Go modules[Experimental] jail for Go modules. Contribute to AkihiroSuda/gomodjail development by creating an account on GitHub.
  • Gopher Academy

    14 сент., 13:30

    🔵 عنوان مقاله go-oracledb: An Official Pure Go Driver for Oracle Database🟢 خلاصه مقاله: در حال حاضر در مرحله آزمایشی است، اما دیدن یک کلاینت رسمی و مستقیم زبان گو از جانب اوراکل بسیار جالب توجه است. این خبر نشان می‌دهد که شرکت اوراکل به توسعه‌دهندگان فعال در حوزه زبان گو اهمیت می‌دهد و قصد دارد راه حلی رسمی و موثق برای اتصال به پایگاه داده اوراکل ارائه دهد. در حال حاضر، گزینه‌های موجود در بازار شامل «گو-ورا» است که کاملاً بر پایه زبان گو توسعه یافته و عملکرد قابل قبولی دارد، و «گو-درور» که از کتابخانه‌های کلاینت اوراکل و از طریق فناوری cgo استفاده می‌کند. این تازه‌وارد رسمی بر اساس نیازهای توسعه‌دهندگان ساخته شده و می‌تواند آینده‌ای روشن برای پروژه‌های مبتنی بر زبان گو با پایگاه داده اوراکل رقم بزند، به‌خصوص در زمانی که اعتماد به ابزارهای رسمی و پشتیبانی شده اهمیت فراوانی دارد.#اوراکل #پایگاه_داده #برنامه‌نویسی #گو🟣لینک مقاله: https://github.com/oracle/go-oracledb➖➖➖➖➖➖➖➖ 👑 @g
    GitHubGitHub - oracle/go-oracledb: The goal of the pure Go driver is to deliver an official, robust and stable driver for Oracle Database.The goal of the pure Go driver is to deliver an official, robust and stable driver for Oracle Database. - oracle/go-oracledb
  • Gopher Academy

    14 сент., 10:30

    🔵 عنوان مقاله Could Go Build cgo Packages Without a C Compiler?🟢 خلاصه مقاله: در فرآیند توسعه برنامه‌های گو، یکی از چالش‌های مهم، کامپایل کردن بسته‌های cgo است که نیازمند ابزارهای مربوط به زبان C است. در واقع، هنگام استفاده از قابلیت import "C" برای cross-compiling، توسعه‌دهندگان باید ابزارهای کامل زبان C را روی سیستم خود نصب و پیکربندی کنند، که این کار می‌تواند زمان‌بر و پیچیده باشد. این موضوع به ویژه در مواردی رخ می‌دهد که هدف تنها استفاده از کتابخانه‌های C از پیش‌ساخته شده است، و نیاز به توسعه مستقیم کدهای C در پروژه نیست.در این راستا، یک پیشنهاد جدید مطرح شده است که هدف آن ساده‌سازی این فرآیند است. بر اساس این ایده، بسته‌هایی که فقط به کتابخانه‌های C از پیش‌ساخته شده مراجعه می‌کنند، می‌توانند ساختار رابط خود را در فایل‌های گو مناسب و با علامت‌گذاری‌های خاص مشخص کنند. این کار به توسعه‌دهندگان اجازه می‌دهد بدون نیاز به نصب و پیکربندی یک ابزار کامل زبان C، بسته‌های مربوطه را در
    GitHubproposal: cmd/cgo: cgo without a C toolchain · Issue #81450 · golang/goCgo Without C Toolchain Background Cgo provides a mechanism to incorporate C code into Go programs. Currently, it requires a C toolchain to be present on the host system whenever building code with...