Pull to refresh
64
0.3
Николай Шалакин @AskePit

Программист

Send message

во славу сатане, конечно же

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

когда читаешь форму, но не содержание

Мощный туториал, но полный страданий и обходных путей :)

А GDExtension — это для взаимодействия с нативными dll. Тут уже открываются возможности писать логику на C++, Rust, Swift и на всем, к чему сейчас сообщество успело написать Godot-биндинги

Прокрутил до середины статьи, чтобы это выяснить и начать читать сначала

Как по мне — самая доступная инструкция по самостоятельной синхронизации из всех, что я читал до этого.

Сохранил статью в обсидиан xD

Когда кончится подписка на Sync, начну синкать через гит. Подписку брал даже не ради легкой синхронизации, а как своеобразный донат Obsidian — ведь это та самая программа, которая реально приносит пользу.

Раньше сидел на самописном решении, которое по сути было гуй-мордой над папками с txt-файлами. Синкался через дропбокс. Но как только узнал про Obsidian, перебрался на него в тот же день безо всяких колебаний

это мой типовой кейс, чтобы заметка, начатая с компа, тут же могла быть продолжена на телефоне и наоборот. банально список покупок или заметка с наброском рабочей идеи, написанная перед сном в кровати и развитая на работе за ПК

не думаю, что людей с такими потребностями мало

заметки - понятие растяжимое, у вас они более статичные, у кого-то более динамичные в использовании

моя. это было мимолётное сотрудничество. но селектел статью знатно зацензурил и обезличил, надо сказать

Я не вижу принципиальной проблемы в ЭТОЙ проблеме. Если вы грамотно простроите интерфейс класса юзера, вы прекрасно сможете справиться с поставленной задачей.

Вы, конечно можете спросить меня: "А как тогда будет решаться проблема X?", "А проблема Y???", "А проблема Z???!!!1!!1!", и мы с вами сможем в прямом эфире написать прямо здесь, в хабра-комментариях полноценное приложение — благо проблем можно придумать на ходу сколько пожелается. Но неизменным будет, что не всегда решение одной проблемы будет универсально покрывать и решать все остальные проблемы разрабатываемого приложения.

Спасибо за приведенную вами статью, я искренне удивился, что перевожу даже не первичный контент, а вторичный :)

По поводу приватного password: я прочитал первоисточник, но не смог заметить принципиально новой информации о приватности password. В данной статье и оригинальном видео сказано:

Из-за правил видимости Rust внутренняя строка является приватной и недоступной за пределами структуры.

Наверное, вы что-то иное имели в виду? Можете показать конкретный тест в первоисточнике, которого идеологически нехватает в видео Богдана?

Этот код не скомпилировался бы, т.к. к password теперь нельзя достучаться напрямую — он теперь исключительно readonly через as_str(&self) -> &str.

Поэтому формально да — все как вы сказали, мы убираем код, который теперь не компилируется, и проблема действительно решена. И даже недосмотр автора перевода не может сломать программу

Про вопрос о вычитании: обычное вычитание через - запаникует. При желании в Rust можно воспользоваться встроенными в u32 (и в другие целочисленные типы) методами:

// Вернет `None` при переполнении
pub const fn checked_sub(self, rhs: u32) -> Option<u32>

// Вычитание с враппингом по модулю
pub const fn wrapping_sub(self, rhs: u32) -> u32

// Вернет wrapped-результат и флаг переполнения
pub const fn overflowing_sub(self, rhs: u32) -> (u32, bool)

// Насыщающее вычитание
pub const fn saturating_sub(self, rhs: u32) -> u32

// Вычитание с паникой при переполнении, даже если отключена проверка на переполнение для обычного вычитания
pub const fn strict_sub(self, rhs: u32) -> u32

Вот как эти виды вычитаний будут себя вести для случаев переполнения:

assert_eq!( 0u32.checked_sub(1), None );
assert_eq!( 0u32.wrapping_sub(1), u32::MAX );
assert_eq!( 0u32.overflowing_sub(1), (u32::MAX, true) );
assert_eq!( 0u32.saturating_sub(1), 0 );
0u32.strict_sub(1); // will panic

Дико прощу прощения — это кривые руки автора-переводчика. Поправил это, спасибо за указание

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

как не нужна? там же сеньёр меня научит

ссылка на услуги ментора битая. жаль.

главное в архитектуре — пояснить за gitignore

А можно подробнее про ecd? Не могу нагуглить ничего по этой аббревиатуре

Тем не менее их присутствие полезнее, чем их отсутствие. В JS даже аннотаций нет, и ничего — неконкурентоспособным его не назовешь. Да впрочем, как и Python так-то

Information

Rating
2,418-th
Date of birth
Registered
Activity

Specialization

Backend Developer, Game Developer
Middle
From 350,000 ₽
C++
Game Development
Git
Python
Rust
OOP
English