Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр Управляйте маятником, чтобы построить самую высокую (и устойчивую) башню из падающих сверху постов. Следите за временем на каждый бросок по полоске справа: если она закончится, пост упадет мимо башни.

Башня

Аркады, Строительство, На ловкость

Играть

Топ прошлой недели

  • AlexKud AlexKud 38 постов
  • Animalrescueed Animalrescueed 36 постов
  • Oskanov Oskanov 7 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
0 просмотренных постов скрыто
437
tproger.official
tproger.official
24 дня назад
Типичный программист

Rust всё заменит (нет)⁠⁠

Rust всё заменит (нет) IT, IT юмор, Программирование, Программист, Мемы, Rust
Показать полностью 1
IT IT юмор Программирование Программист Мемы Rust
153
2
sobolevn
2 месяца назад
Программирование на python

Быстрая замена mypy на Rust'е: pyrefly⁠⁠

Еще одно видео про еще один новый тайпчекер для питона на расте!

Много их нынче стало.

В видео:

- Обсуждаем первую версию: pyre-check, обсудили taint analysis

- Сравниваем pyrefly с ty и mypy

- Смотрим на внутреннее устройство

- Применяем на реальном проекте

Ключевые ссылки из выпуска:

– Доклад о pyrefly на PyCon: https://youtu.be/ZTSZ1OCUaeQ?si=s_DPOOzsdeTk5Uqo

– pyrefly vs ty: https://blog.edward-li.com/tech/comparing-pyrefly-vs-ty (сильно советую!)

Вывод: пока очень сырой, много багов, но быстрый. Ключевой вывод: отлично, что есть конкуренция.

Показать полностью
[моё] YouTube IT Программирование Python Обучение Rust Разработка Программист Видео
3
114
tproger.official
tproger.official
2 месяца назад
Типичный программист

И снова легкая провокация Rust-оманов⁠⁠

И снова легкая провокация Rust-оманов
[моё] IT юмор IT Программирование Rust Python Картинка с текстом
58
6
sobolevn
3 месяца назад
Программирование на python

Новый тайпчекер для Python от авторов ruff и uv, написанный на Rust⁠⁠

https://github.com/astral-sh/ty

[моё] Python Rust YouTube Программирование IT Разработка Программист Видео
3
14
JavaSrcipt
JavaSrcipt
5 месяцев назад

Где-то в параллельной вселенной⁠⁠

Где-то в параллельной вселенной IT юмор, Программирование, Reddit, Javascript, Ubuntu, React, Github, Rust
Показать полностью 1
IT юмор Программирование Reddit Javascript Ubuntu React Github Rust
7
georgiyozhegov
georgiyozhegov
6 месяцев назад
Программисты шутят

Про Rust⁠⁠

Про Rust IT юмор, Rust, C++, Программирование, IT, Юмор, Грустный юмор, Мемы, Боль
Показать полностью 1
[моё] IT юмор Rust C++ Программирование IT Юмор Грустный юмор Мемы Боль
0
3
georgiyozhegov
georgiyozhegov
7 месяцев назад
Лига программистов
Серия Программирование

Читщит По Умным Указателям⁠⁠

Читщит По Умным Указателям Обучение, Rust, Программирование, C++, Длиннопост

Наглядная иллюстрация того, что может случиться с C++ программистами.

В Rust необычная схема управления памятью. Он не использует сборщик мусора, как в Java и Go, что делает его быстрым. Скорость Rust сопоставима со скоростью C.

Однако и у этой схемы есть минусы. Для того чтобы их решить, были введены умные указатели, которые дают возможность оперировать памятью на низком уровне с тем же удобством.

В статье специально использованы простейшие примеры, чтобы понять их было легче.

Типы

Box

Нужен для хранения объектов в куче, а не на стеке.

Обычно используется для рекурсивных типов, где размер объекта неизвестен во время компиляции.

Пример кода, который не будет работать.

struct Expression {

operator: Operator,

left: Expression, // Ошибка: recursive type has infinite size

right: Expression, // Ошибка: recursive type has infinite size

}

Чинится обертыванием left и right в Box.

struct Expression {

operator: Operator,

left: Box<Expression>,

right: Box<Expression>,

}

Rc

Позволяет нескольким переменным владеть одним объектом размещенным в куче.

Не работающий код.

let a = "Hello, World!".to_string();

let b = a;

let c = a; // Ошибка: use of moved value

Чтобы он заработал, добавим Rc.

let a = Rc::new("Hello, World!".to_string());

let b = Rc::clone(&a);

let c = Rc::clone(&a);

Код также будет работать если мы скопируем объект.

let a = "Hello, World!".to_string();

let b = a.clone();

let c = a;

Но прямое копирование может серьезно повредить производительности. Преимущество Rc в том, что при присваивании не создаётся новый объект, а даётся ссылка на уже существующий.

Arc

То же что и Rc, но безопасное для использования в многопоточных приложениях. Это значит, что его можно использовать из разных потоков, не боясь гонок данных.

let a = Arc::new(1);

let b = Arc::clone(&a);

let c = Arc::clone(&a);

Дороже с точки зрения производительности из-за способа подсчёта ссылок.

RefCell

Позволяет изменять данные внутри себя даже если объявлен как неизменяемый.

let a = RefCell::new(1);

*a.borrow_mut() += 1;

dbg!(a); // 2

Комбо

RefCell часто комбинируют с Rc в виде Rc<RefCell<T>>. Это позволяет каждому владельцу ссылки изменять общий объект.

let a = Rc::new(RefCell::new(1));

let b = Rc::clone(&a);

let c = Rc::clone(&a);

*b.borrow_mut() += 1;

dbg!(&a); // 2

dbg!(&c); // Тоже 2

*c.borrow_mut() += 1;

dbg!(&a); // 3

dbg!(&b); // Тоже 3

Заключение

Главное преимущество умных указателей – избегание ошибок типа segfault и выстрелов в ногу, характерных для C и C++, сохраняя при этом удобство использования.

Если статья была полезной, вас могут заинтересовать и другие статьи в моём телеграм-канале.

Показать полностью
[моё] Обучение Rust Программирование C++ Длиннопост
16
9
sh1nkey
sh1nkey
10 месяцев назад

Хороший пре-коммит хук для Python разработчиков⁠⁠

Что такое pre-commit hook? Возможность автоматически проверять код перед коммитом. Может быть разное: прогонять тесты, линтеры, форматтеры...

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

Что в него входит:

- ruff (быстрейший форматтер, делает код красивым)

- pyright (один из быстрейших статических анализаторов кода на Python, посвечивает ошибки в тайп-хинтах. что-то типа проверки типов при компиляции)

- pytest с расширением doctest (прогоняет имеющиеся юнит тесты вместе с тестами в документации, про которые я писал ранее. я еле как нашёл пре коммит хук для этого...)

Как установить?

1. сначала

pip install pre-commit

2. потом создаётё .pre-commit-config.yaml

3. потом вставляете туда

repos:

- repo: https://github.com/astral-sh/ruff-pre-commit

rev: v0.1.5

hooks:

- id: ruff

args: [ --fix, --exit-non-zero-on-fix, --show-fixes ]

- id: ruff-format

- repo: local

hooks:

- id: pytest

args: [ --doctest-modules ]

name: pytest

entry: pytest .

language: system

types: [python]

pass_filenames: false

always_run: true

- repo: https://github.com/RobertCraigie/pyright-python

rev: v1.1.385

hooks:

- id: pyright

4. пишете

pre-commit install

Энджой :)

Ссылка на оригинальный пост:
https://t.me/sh1nke9/375

Показать полностью
[моё] Программирование Программист IT Python Программа Тестирование Rust Ультрафиолет Разработка Текст
0
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии