Pull to refresh
28
0
Федченко Кирилл @F3kilo

Старший разработчик Rust

Send message

Улучшаем приложение для хранения заметок

Reading time12 min
Views4.9K

В предыдущей статье мы написали простое приложение для хранения заметок в памяти. В данной статье мы доработаем его. Теперь приложение будет хранить заметки в файле. Попутно разберёмся со следующими концепциями:

- процедурный и объектно-ориентированный подходы,
- инкапсуляция,
- структуры и методы,
- модули,
- тестирование.

Читать далее
Total votes 9: ↑8 and ↓1+8
Comments5

Подробный разбор простого приложения на Rust

Reading time8 min
Views15K

В данной статье рассмотрим функции, переменные, типы данных, а также некоторые другие базовые элементы синтаксиса языка Rust на примере написания простого приложения для хранения заметок. Люди, знакомые с данным языком, вряд ли найдут для себя что-то интересное под катом. Для тех же, кто только начинает знакомиться с Rust или с разработкой ПО, статья может оказаться полезной. В частности, продемонстрировать, как идею простого приложения можно выразить, используя базовые элементы языка программирования.

Читать далее
Total votes 21: ↑19 and ↓2+22
Comments18

Rust и ООП

Reading time4 min
Views19K

Существует множество мнений о возможности применения ООП подходов и паттернов в Rust. Кто-то считает, что полноценного ООП в Rust нет и быть не может. Другие разработчики, наоборот, высказывают мнение, что элементы языка позволяют использовать приёмы из ООП именно так, как их видели создатели этой парадигмы.

В данной статье я постараюсь продемонстрировать, какие идеи и принципы из ООП позволяет реализовать Rust, и как это работает на простых примерах.

Читать далее
Total votes 16: ↑9 and ↓7+3
Comments30

Мини-игра на Rust + macroquad

Reading time11 min
Views7K

В данной статье я постараюсь подробно рассказать о том, как написать небольшую игру, используя в качестве инструментов язык программирования Rust и библиотеку macroquad.

Читать далее
Total votes 24: ↑24 and ↓0+24
Comments8

Основы рендеринга с wgpu на Rust

Reading time16 min
Views9.8K

В данной статье мы рассмотрим базовую теорию и практику рендеринга с помощью кроссплатформенного графического API wgpu. Данный API основан на стандарте WebGPU и предоставляет удобные, унифицированные и безопасные абстракции для взаимодействия с GPU. Используя wgpu мы инициализируем графическое устройство, создадим графический конвейер и нарисуем треугольник.

Читать далее
Total votes 26: ↑26 and ↓0+26
Comments4

Создание и использование динамических библиотек в Rust

Reading time9 min
Views11K

Динамические библиотеки подключаются к программе во время выполнения. Это позволяет обновлять их реализацию и компилировать независимо от использующих программ. Такой подход открывает ряд дополнительных возможностей при разработке ПО. Например, написание разных модулей приложения на разных языках. Или создание системы динамически подключаемых плагинов. В данной статье мы рассмотрим, как создавать и загружать динамические библиотеки в Rust.

Читать далее
Total votes 34: ↑34 and ↓0+34
Comments0

Обработка ошибок в Rust

Reading time12 min
Views14K

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

Читать далее
Total votes 32: ↑30 and ↓2+36
Comments23

Безопасная многопоточность в Rust

Reading time10 min
Views12K

Представьте ситуацию: вы решили добавить функционал в некоторую сущность (класс, структуру, ...). Для этого вам понадобилось хранить внутри сущности дополнительные данные. Вы добавляете приватные поля, меняете и читаете их внутри методов, интерфейс методов не изменяется, и всё выглядит хорошо. И не просто выглядит, а компилируется, запускается и проходит тесты. Красота... А потом, в один прекрасный день, прод падает. И может быть даже, теряет часть важных данных. Вы с коллегами начинаете искать причину поломки. И оказывается, что та сущность, которую вы дополняли год назад, делится между несколькими потоками, а поля добавленные вами не потокобезопасны и поэтому гонка за доступ к ним в какой-то момент вызывает их повреждение. Неприятно, согласитесь? Хотелось бы иметь инструмент, позволяющий избегать подобных ситуаций. И язык программирования Rust такой инструмент предоставляет.

Читать далее
Total votes 39: ↑36 and ↓3+43
Comments3

Information

Rating
Does not participate
Location
Москва и Московская обл., Россия
Works in
Date of birth
Registered
Activity