Гайд на полиморфизм. Rust

В прошлых статьях мы разобрали теорию: что такое полиморфизм и какие существуют способы его реализации. Настало время посмотреть, как это реализуется на практике. В качестве примера был выбран Rust — язык с богатой функциональностью, с одной стороны, и простой, прозрачной реализацией — с другой.

https://habr.com/ru/articles/925576/

#rust #полиморфизм #перегрузка_операторов #vmt #перегрузка #указатели #виртуальные_функции #assambler #under_the_hood #ассемблер

Гайд на полиморфизм. Rust

Гайд на полиморфизм. Основные идеи Гайд на полиморфизм. Что там под капотом? Гайд на полиморфизм. Rust В прошлых статьях мы разобрали теорию: что такое полиморфизм и какие существуют способы его...

Хабр

std::launder: зачем и когда нужен

Привет, Хабр! В этой статье разберём мутный, но крайне важный инструмент ‒ std::launder . Мы поглядим, зачем его протащили в C++17 и что компилятор делает, когда видит launder.

https://habr.com/ru/companies/otus/articles/914126/

#c++ #C++17 #неопределённое_поведение #lifetime_объекта #оптимизации_компилятора #указатели

std::launder: зачем и когда нужен

Привет, Хабр! Сегодня разберём мутный, но крайне важный инструмент — std::launder . Мы поглядим, зачем его протащили в C++17 и что компилятор делает, когда видит launder....

Хабр

Golang: когда make, когда new

Привет, Хабр! В этой статье разберёмся, зачем в Go существуют два способа создавать значения — make и new , чем они отличаются, как они работают и когда выбирать каждый из них.

https://habr.com/ru/companies/otus/articles/903144/

#golang #аллокация_памяти #указатели #структурные_типы #genericкод #управление_памятью

Golang: когда make, когда new

Привет, Хабр! Сегодня разберёмся, зачем в Go существуют два способа создавать значения — make и new , чем они отличаются, как они работают и когда выбирать каждый из них Что мы...

Хабр

Так ли плох Go в глазах C++ разработчика: пишем микросервис и учимся на ошибках

Миллионы пользователей ежедневно заходят на Яндекс Маркет. И одна из ключевых задач сервиса — показывать им точные сроки доставки на поиске и в корзине. При пиковых нагрузках это около 40 тысяч запросов в секунду. Как обеспечить столь быструю и точную обработку данных о доставке? Привет, Хабр! Меня зовут Никита Деревянко. Я руковожу разработкой логистической платформы Яндекс Маркета. Люблю играть в шахматы, бильярд и программировать. Изучаю японский язык, чтобы тренировать мозг и смотреть аниме в оригинале. Расскажу о том, как построить логистический runtime на Go, не являясь Golang-разработчиком. Рассмотрим, как справиться с большим объёмом данных и какие преимущества может (или не может) предложить Golang для масштабной задачи.

https://habr.com/ru/companies/yandex/articles/874202/

#golang #высокая_нагрузка #концепции #подходы #указатели #аллокация #grpc #syncpool #слайсы #профилирование

Так ли плох Go в глазах C++ разработчика: пишем микросервис и учимся на ошибках

Миллионы пользователей ежедневно заходят на Яндекс Маркет. И одна из ключевых задач сервиса — показывать им точные сроки доставки на поиске и в корзине. При пиковых нагрузках это около 40 тысяч...

Хабр

Переосмысление концепции подсчета ссылок и полный отказ от сборщика мусора

Фундаментальной (по моему мнению) проблемой множества языков программирования является неявное использование ссылок (ссылочных переменных). И проблема не в том, что с помощью ссылок изменяются какие-то общие данные, а в том, что часто это делается неявным образом , из-за чего программист должен всегда помнить об особенностях таких переменных. Еще одной проблемой (или следствие предыдущей) является многопоточное и/или асинхронное выполнение программы, когда к одной и той же области данных может быть получен доступ из разных потоков приложения, что в купе с неявным доступом по ссылкам еще больше усугубляет ситуацию. А как бы хотелось отдать эти проблемы на откуп компилятору! Чтобы компьютер сам автоматически проверял корректность доступа по ссылкам, в том числе и из разных потоков и чтобы все это делалось во время компиляции приложения без накладных расходов в рантайме! И если такое будет возможно, тогда постепенно уйдет в прошлое целая эпоха сборщиков мусора с их неожиданными зависаниями программ в произвольные моменты времени и разными мудреными алгоритмами поиска мертвых указателей и циклических ссылок!

https://habr.com/ru/articles/853646/

#c++ #указатели #ссылки #сборщик_мусора

Переосмысление концепции подсчета ссылок и полный отказ от сборщика мусора

Фундаментальной (по моему мнению) проблемой множества языков программирования является неявное использование ссылок (ссылочных переменных). И проблема не в том, что с помощью ссылок изменяются...

Хабр

Следует ли проверять указатель на NULL перед вызовом функции free?

Короткий ответ: нет. Тем не менее, раз про это вновь и вновь спрашивают на Reddit, Stack Overflow и других сайтах, пришло время подробно разобрать эту тему. Оказывается, есть много интересного, о чём можно порассуждать.

https://habr.com/ru/companies/pvs-studio/articles/791798/

#c #си #программирование #free #malloc #указатели #макросы #нулевые_указатели

Следует ли проверять указатель на NULL перед вызовом функции free?

Короткий ответ: нет. Тем не менее, раз про это вновь и вновь спрашивают на Reddit, Stack Overflow и других сайтах, пришло время подробно разобрать эту тему. Оказывается, есть много интересного, о чём...

Хабр

Go: передача значений VS передача указателей

Go - один из немногих языков, в которых структуры можно передавать параметрами и возвращать из функций как по значению, так и по указателю. Это приводит к большей выразительности языка, но также разделяет общество разработчиков Go на два лагеря: сторонников указателей и сторонников значений. В данной статье предлагается во многом субъективное сравнение обоих способов и делается попытка убедить читателей передавать и возвращать значения в тех случаях, где это возможно.

https://habr.com/ru/companies/it-guide/articles/744046/

#go #heap #pointers #указатели #code_style

Go: передача значений VS передача указателей

Go - один из немногих языков, в которых структуры можно передавать параметрами и возвращать из функций как по значению, так и по указателю. Это приводит к большей выразительности языка, но также...

Хабр