Golang:
Channel direction и select patterns в Go vs Java | Паттерны, идиомы и лучшие практики Go
← Связанные статьи: Context, propagation и cancellation patterns в Go vs Java | Паттерны, идиомы и лучшие практики Go 1. Channel direction — направление каналов В Go каналы могут быть односторонними: только для отправки или получения. Это помогает делать интерфейсы функций более безопасными и я…
Channel direction and select patterns in Go vs Java | Patterns, idioms, and best practices in Go
← Related articles: Context, propagation and cancellation patterns in Go vs Java | Patterns, idioms and best practices in Go 1. Channel direction — channel directions In Go, channels can be one-way: only for sending or receiving. This helps to make function interfaces more safe and clear. For a…
Context, propagation, and cancellation patterns in Go vs Java | Patterns, idioms, and best practices of Go
← Related articles: Part 1 — Error handling and defer in Go (Concurrency and synchronization) | Patterns, idioms and best practices for Go 1. Context and its role In Go context.Context is used to pass cancellation signals and timeouts between goroutine, as well as to pass values (propagation). …
Context, propagation и cancellation patterns в Go vs Java | Паттерны, идиомы и лучшие практики Go
← Связанные статьи: Часть 1 — Error handling и defer в Go (Параллельность и синхронизация) | Паттерны, идиомы и лучшие практики Go 1. Context и его роль В Go context.Context используется для передачи сигналов отмены и таймаутов между goroutine, а также для передачи значений (propagation). Для J…
Error handling and defer in Go (Concurrency and synchronization) | Patterns, idioms, and best practices in Go
Error handling in Go is significantly different from the familiar Java approach with exceptions. Instead of try/catch, Go uses returning an error as a separate value, and `defer` helps safely release resources regardless of whether an error occurred or not. 1. Error handling idioms Error handling …
Error handling и defer в Go (Параллельность и синхронизация) | Паттерны, идиомы и лучшие практики Go
Обработка ошибок в Go сильно отличается от привычного Java-подхода с исключениями. Вместо try/catch Go использует возврат ошибки как отдельного значения, а `defer` помогает безопасно освобождать ресурсы независимо от того, произошла ошибка или нет. 1. Error handling idioms Error handling idioms - …
Memory / Runtime / Allocator - Go vs Java
Управление памятью, указатели и профилирование — это фундаментальные аспекты эффективного кода. Рассмотрим три ключевых концепта: slice backing array, pointer и профилирование (pprof / trace), и сравним Go с Java. 1. Slice backing array Слайс в Go — это легкая структура над массивом: хранит указател…
Memory / Runtime / Allocator - Go vs Java
Memory management, pointers, and profiling are fundamental aspects of efficient code. Let s consider three key concepts: slice backing array, pointer, and profiling (pprof / trace), and compare Go with Java. 1. Slice backing array A slice in Go is a lightweight structure over an array: it holds a po…
Practical patterns and optimization in Go vs Java | Concurrency part 3
← Part 2 — Synchronization and Safety in Go In this part, we will discuss practical patterns for parallel task processing: worker pool, pipeline pattern, and result assembly schemes. These patterns help improve performance and avoid deadlocks. Worker Pool Worker Pool - Worker Pool 🤲⚙️ a limi…
Практические паттерны и оптимизация в Go vs Java | Concurrency часть 3
← Часть 2 — Синхронизация и безопасность в Go В этой части мы рассмотрим практические паттерны параллельной обработки задач: worker pool, pipeline pattern и схемы сборки результатов. Эти паттерны помогают повысить производительность и избегать deadlocks. Worker Pool Worker Pool - Пул рабочих…
Synchronization and security in Go vs Java | Concurrency part 2
← Part 1 — Basics of Concurrency in Go for Java Developers In the second part, we will dive into synchronization and safety of concurrent code in Go. For a Java developer, it is useful to see the analogs: synchronized, ReentrantLock, CountDownLatch, atomic operations, and threading schemes. W…
Синхронизация и безопасность в Go vs Java | Сoncurrency часть 2
← Часть 1 — Основы параллельности в Go для Java-разработчиков Во второй части мы углубимся в синхронизацию и безопасность параллельного кода в Go. Для Java-разработчика полезно видеть аналоги: synchronized, ReentrantLock, CountDownLatch, атомарные операции и схемы работы с потоками. Рассмотри…
Полезные статьи:
Переменные в Java — понятие, типы, область видимости и константы Всем привет! С вами Виталий Лесных. В этом уроке разберём, что такое переменные в Java, зачем они нужны, какие бывают типы, как объявля…
Побитовые операторы в Java В языке программирования Java определено несколько побитовых операторов. Эти операторы применяются к целочисленным типам данных, таким как byte, short, int, long и char. Спи…
Рассуждение о том, почему полнота знаний недостижима и как выстроить личную архитектуру профессионального роста. Каждый разработчик хотя бы раз думал: «Как всё успеть?» Технологии растут быстрее,…
Новые статьи:
Конкурентность — это не про «запустить много потоков». Это про договорённости между ними. Представь кухню ресторана: — повара (потоки / горутины) — заказы (задачи) — и главный вопрос: как они коорди…
История начинается не с академической теории, а с типичной production-проблемы. Представьте сервис: 48 CPU 300+ потоков нагрузка 200k операций в секунду много shared state Команда использует обы…
Представьте обычный продакшн-сервис. 32 CPU сотни потоков кэш конфигурации / сессий / rate limits десятки тысяч операций в секунду И где-то внутри — обычный Map. Сначала всё выглядит безобидно. Map&…