Best of GolangMarch 2025

  1. 1
    Article
    Avatar of awegoAwesome Go·1y

    Cursor for Large Projects

    Cursor and Claude are effective not just for prototyping but also for maintaining large software projects. Their use can accelerate development processes by structuring, refactoring, and testing code efficiently. Stream CEO Thierry shares a workflow for using Cursor to manage a large Go codebase, emphasizing the importance of a good edit and test loop and the use of dedicated documentation folders for AI. The guide also covers steps for setting up Cursor, highlights the combination with Goland for debugging and refactoring, and provides tips for maximizing AI benefits in software development.

  2. 2
    Article
    Avatar of lobstersLobsters·1y

    A Programmer's Reading List: 100 Articles I Enjoyed (1-50)

    Programmers often share their knowledge through technical articles. This post is the first part of a series, presenting 50 articles focused on topics such as general programming knowledge, software engineering, backend development, technical writing, Python, and Go. Highlights of these articles include insights on learning effectively, managing self-motivation, optimizing Go program performance, the cost and quality of software, and writing helpful error messages.

  3. 3
    Article
    Avatar of medium_jsMedium·1y

    Is Golang the new Python Killer for AI?

    Golang, known for its simplicity and efficiency, is emerging as a strong contender for machine learning despite Python's current dominance. Key features of Go include high performance, concurrency, static typing, and scalability. While its ecosystem of ML libraries is still growing, Go is particularly advantageous for high-throughput prediction serving, large-scale data preprocessing, and resource-constrained environments. Notable Go ML libraries include Gorgonia, GoLearn, GoMind, GoCV, and Gonum. Go offers compelling advantages for specific use cases, making it worth considering for future ML projects.

  4. 4
    Article
    Avatar of halodocHalodoc·1y

    Log Standardization

    Debugging in microservices is challenging without structured logging. This post explores logging strategies for HTTP requests, Kafka events, and concurrency in Java, Golang, and Python. It addresses context loss in Java’s multi-threading by introducing MDCAwareCompletableFuture and MDCAwareExecutorService, ensuring traceability in concurrent systems. A structured logging approach with Request ID, Transaction ID, and Parent Transaction ID is recommended for better traceability and debugging efficiency.

  5. 5
    Article
    Avatar of devtoDEV·1y

    Boost Your Golang Development Efficiency with These Tools

    Improve your Golang development efficiency with these five essential tools: ServBay for local development environment setup, golangci-lint for code quality checks, Go Modules for dependency management, Gotests for automating test creation, and pprof for performance optimization. These tools can streamline your workflow, reduce setup time, and enhance code quality.

  6. 6
    Article
    Avatar of lobstersLobsters·1y

    Golang on the PlayStation 2

    The author explores the concept of running baremetal Go code on a PlayStation 2, using TinyGo and the ps2dev SDK to tackle compatibility challenges. The piece details the specific configurations, issues with 64-bit integer operations, and steps taken to get Go programs running on the console. Code snippets and technical explanations are provided, and future improvements are outlined for advancing this project.

  7. 7
    Video
    Avatar of codinggopherThe Coding Gopher·1y

    Stop Doing LeetCode. Start Building Projects From Scratch.

    Improve your software engineering skills by building complex real-world projects instead of simple ones like to-do lists. Codec Crafters offers courses on constructing developer tools such as a git clone, an in-memory database, an HTTP server, and more. It supports over 20 languages, with Golang and newer languages like Zig available. A 40% discount is offered for users through a link in the description.

  8. 8
    Article
    Avatar of infoworldInfoWorld·1y

    What you need to know about Go, Rust, and Zig

    Go, Rust, and Zig are emerging programming languages each with distinct advantages. Go, known for its simplicity and minimal syntax, excels in network services and standalone applications. Rust prioritizes memory safety and speed, becoming popular in server-side apps and replacing C/C++ in certain scenarios. Zig, a modern alternative to C, focuses on low-level programming with better memory safety features and easier integration with C projects.

  9. 9
    Article
    Avatar of awegoAwesome Go·1y

    A comparison of Go and Rust syntax

    Go and Rust are both popular programming languages that excel in different areas. Go is known for its simplicity, efficiency, and excellent concurrency performance, making it ideal for network services and cloud computing. Rust is renowned for its memory safety and high performance, suitable for system programming and applications with stringent performance and security requirements. The comparison covers various aspects including loop structures, functional programming, concurrency control, syntactic sugar, object-oriented programming, and common application areas.

  10. 10
    Article
    Avatar of awegoAwesome Go·1y

    My 6 months with the GoTH stack: building front-ends with Go, HTML and a little duct tape

    The GoTH stack combines Go, Templ, Tailwind, and HTMX to create an efficient front-end development experience. The author highlights their positive experiences with the stack over six months, noting the benefits of reusable components, easy HTML integration, and server-side rendering with AJAX. While there are some challenges, such as error handling and live updates, the overall experience was favorable. The stack simplifies development by reducing multi-language complexity and offers robust tooling and documentation.

  11. 11
    Video
    Avatar of fireshipFireship·1y

    Microsoft goes nuclear on TypeScript codebase…

    Microsoft has announced a complete rewrite of the TypeScript compiler in the Go programming language, aiming for significant performance improvements. The decision to switch to Go is rooted in its compiled nature, automatic memory management, and portability. The new compiler is already showing a 10x speed increase, but it will take time for developers to see these benefits as the rewrite will be completed for TypeScript 7.

  12. 12
    Article
    Avatar of awegoAwesome Go·1y

    Starting Systems Programming, Pt 1: Programmers Write Programs

    The post introduces the fundamentals of systems programming, covering essential topics such as bit manipulation, parsing, filesystems, input/output, syscalls, memory management, and signals. The focus is on writing multiple programs from scratch to understand the basics of programming deeply. Numerous exercises are provided to practice these skills, and the code examples are primarily in Go, with some Bash scripts.

  13. 13
    Article
    Avatar of itnextITNEXT·1y

    Container Network Interface (CNI) in Kubernetes: An Introduction

    The Container Network Interface (CNI) in Kubernetes ensures proper network configuration and pod connectivity within the cluster and to the internet. The CNI plugin, consisting of an executable and a daemon, is responsible for IP address management, routing, and network configuration. The post explains how a CNI plugin operates, detailing its role from pod creation in Kubernetes to setting up network namespaces, virtual ethernet pairs, and necessary IP and routing configurations. The article also includes a demonstration of a simple CNI implementation in Go and Bash, tested in a Canonical Kubernetes cluster.

  14. 14
    Article
    Avatar of notedNoted·1y

    GoMFT - Self Hosted Managed File Transfer

    GoMFT is a self-hosted, web-based file transfer application that simplifies managing scheduled file transfers across multiple storage providers. Built using the Go programming language and leveraging technologies like rclone, Gin, and Tailwind CSS, it offers an intuitive interface and robust features such as real-time monitoring, metadata tracking, and role-based access control. The application can be easily deployed using Docker and supports various configurations for customization.

  15. 15
    Article
    Avatar of awegoAwesome Go·1y

    Session-Based Authentication in Go

    Implementing session-based authentication in Go web applications ensures a secure and efficient user authentication process. This approach involves creating and managing sessions, hashing passwords using bcrypt for security, and adopting best practices to protect against attacks such as session fixation and timing attacks. Key steps include user registration, session management, credential verification, and middleware to protect unauthenticated access.

  16. 16
    Article
    Avatar of architectureweeklyArchitecture Weekly·1y

    TypeScript Migrates to Go: What's Really Behind That 10x Performance Claim?

    Microsoft is migrating the TypeScript compiler from JavaScript to Go, promising a 10x performance improvement. This boost is due to the Go language's suitability for CPU-intensive tasks like compilation, which JavaScript and Node.js struggle with due to their single-threaded nature and event loop model. The article dives into the design and performance trade-offs of both technologies, explaining why Go offers significant advantages for the TypeScript compiler. The broader takeaway is the importance of matching technology choices to specific problem domains.

  17. 17
    Article
    Avatar of communityCommunity Picks·1y

    Unkey

    Zen is a lightweight HTTP framework built on Go's standard library, offering a clean developer experience, precise control over middleware, and seamless OpenAPI integration. It was created to overcome limitations found in existing frameworks, particularly around error handling, logging, and response capture. Zen follows a schema-first approach for OpenAPI, minimizes dependencies, and ensures handlers focus on business logic. It provides granular control over middleware execution, improving metrics, logging, and error responses while maintaining type safety without boilerplate.

  18. 18
    Article
    Avatar of medium_jsMedium·1y

    Most People Overlook Go’s Concurrency Secrets

    Go's concurrency model using goroutines and channels offers a simplified and efficient approach to managing concurrent operations. Goroutines are lightweight, making them suitable for creating many concurrent tasks. Channels enable safe message-passing between goroutines, eliminating the need for complex synchronization mechanisms. Key concepts include unbuffered and buffered channels, directional channels, and the select statement for handling multiple communication paths. Using Go's concurrency tools can result in cleaner, more maintainable, and more efficient code.

  19. 19
    Article
    Avatar of golangGo·1y

    Good-bye core types; Hello Go as we know and love it!

    Go 1.25 removes the concept of core types from the language specification, simplifying the language and reverting to pre-generics rules for certain operations. Despite generics remaining, this change makes the specification easier to understand and paves the way for potential future improvements without altering current behavior.

  20. 20
    Article
    Avatar of techworld-with-milanTech World With Milan·1y

    Trends #7: TypeScript is getting 10x faster!

    Microsoft has rewritten the TypeScript compiler in Go, leading to significant performance improvements like 10x faster builds and 50% less memory usage. JetBrains' State of Developer Ecosystem 2024 highlights TypeScript, Rust, and Python as the fastest-growing languages. AI tools are improving productivity but may degrade code quality and critical thinking skills. The World Economic Forum forecasts that skills in AI, big data, and creative thinking will be critical by 2030.

  21. 21
    Video
    Avatar of codingwithsphereCoding with Sphere·1y

    How I Built a Platformer using Golang

    The post documents the journey of building a platformer game using Golang. It covers the author's learning experience and decisions made while developing the game. The game includes features like pixel art, custom UI elements, and a settings menu. The post also delves into the game's code structure, including the main function, rendering, scene management, and player movement. The author shares insights on handling technical debt and optimization in a personal project.

  22. 22
    Video
    Avatar of anthonyggAnthony GG·1y

    Golang FAILED Me! Here's What Worked Instead

    The post discusses the author's journey in transitioning from Golang to another language for their project's front-end. Despite Golang's strengths in backend development, the author faced performance issues with WebAssembly. They explored various languages like Rust, Zig, and Odin, finally choosing Odin due to its simplicity and suitability for their needs. The author values learning through struggle and is committed to building their application with Odin while continuing to use Golang for the backend.

  23. 23
    Article
    Avatar of communityCommunity Picks·1y

    Welcome to golangci-lint v2

    Golangci-lint v2 introduces a revamped configuration structure, new options for managing linters, improved file paths management, and a new code formatting command. The update also includes human-readable issue exclusion presets and a seamless migration command to ease the transition from v1 to v2. Consider supporting the project through donations to help foster its growth.

  24. 24
    Video
    Avatar of codeheimcodeHeim·1y

    #79 Golang - Observability: Logging with Loki, Promtail & Grafana

    Enhance observability in Golang applications by setting up logging using Loki, Promtail, and Grafana. Learn how to collect and send logs to Loki with Promtail and visualize them in Grafana. The post explains the setup process, configuring a Go application to write logs, using Promtail for log collection, and using Grafana to visualize and analyze logs.

  25. 25
    Article
    Avatar of communityCommunity Picks·1y

    Learn Go Templates: A Practical Guide to Layouts, Data Binding, and Rendering

    Go templates offer a powerful, efficient, and secure way to generate dynamic content, either for text-based output or HTML rendering. They are part of the standard library and feature a flexible syntax for embedding data, creating reusable layouts, and structuring content. This guide provides practical examples on using templates, passing data, managing layouts, and solving common rendering challenges.