Как стать автором
Обновить
20
0
Даниил Шило @crackidocky

Frontend Engineer (Vue/Typescript) из Firecode

Отправить сообщение

Именно за ними) Исправил, спасибо за замечание🙌

Есть впечатление, что сложность туториала выставлена в "Сложный" не из-за сложности материала, а из-за того как вы решили отформатировать код?

А если без шуток, то это туториалом нельзя назвать, это скорее заметка, которую вы из Notion/Obsidian/<вставьте ваше приложение> выцепили и решили выложить.

Будет так же ссылка на Github

В чем проблема сразу дать ссылку на Github?

Допустим, нужно реализовать импорт товаров из внешнего сервиса. Получится примерно такой код:

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

И обычно этого достаточно. Но пойдём дальше, сделаем вторую версию реализации.

Зачем идти дальше? Объясните читателю что не так с первой версией реализации

Теперь вместо самого товара имеем ImportableInterface. Так же для получения данных извне имеем ImportReceiverInterface, для маппинга этих данных на сущность ImportMapperInterface, и интерфейс для создания сущности, фабрику. Но общая логика осталась такая же.

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

Работает оно на самом деле намного лучше, нежели с Cordova.
Во время разработки у меня была только одна проблема - подстраивание интерфейса под устройства с "челкой", однако, эта проблема тоже достаточно быстро решается с помощью самого Ionic.

По функционалу Capacitor является более надежным аналогом, нежели Cordova)
Вот тут можно почитать о различиях Capacitor и Cordova чуть подробнее: https://ionic.io/resources/articles/capacitor-vs-cordova-modern-hybrid-app-development

Интересная статья!
Сам когда-то пробовал использовать ava для пет-проекта, но не смог нормально свести его с Typescript, сейчас вроде бы там с поддержкой TS полегче стало.

Несколько замечаний:
1. "Magic Assertions" (магические утверждения) - еще есть в Jest и Vitest. Это не совсем то, чем Ava.js отличается, это просто то, что подмечено у них в README =)
2. Вам не обязательно тянуть глобальные переменные. Для этого в Jest / Vitest / Mocha есть плагины для ESLint, которые будут заставлять вас импортировать все вне зависимости от архитектуры фреймворка для тестирования.

Здравствуйте, исправил, спасибо)
Да, ререндер будет выполняться. Из-за изменения пропсов компонент тоже поменяется. Также вы можете прокидывать туда эмиты. У всех эмитов будет префикс on (напр. onInput)

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

Исправил, спасибо)

Студент в упомянутой статье еще вроде бы взъелся на синтаксис в Rust. До меня немного не доходит почему. Я в разработке сравнительно немного (3 года) и системным программированием не занимался, но даже для того кто писал три года на TypeScript - синтаксис в Rust достаточно интуитивный.
Более того, чем больше пишешь на Rust, тем больше понимаешь, что синтаксис очень похож на TypeScript.

  • Структуры - интерфейсы с конструктором

  • Имплементации - все те же интерфейсы

  • Трейты - абстрактные интерфейсы

В синтаксисе все достаточно легко, даже те же стрелочные функции сделаны достаточно просто

fn main() {
    let n = 2;
    let x = 3;

    let string_concat = |x: i32, n: i32| -> String {
        x.to_string() + &n.to_string()
    };

    println!("{}", string_concat(x, n));
}

Да и сам студент почему-то вечно говорит про синхронный код, кой его в обычных задачах иногда бывает меньше, нежели асинхронного (HTTP-запросы, сокеты, файлы и так далее)

Также сборщик мусора о котором говорит учащийся - далеко не тот сборщик мусора, что например в JS или Python.

Автору респект за тщательный разбор материала

Из прочего:

  • Идея того, что в Rust отказались от null - просто превосходная, без него намного легче.

  • switch (тут он match) наконец-то стал выглядеть красиво, а не как огромное количество case

  • Идея с заимствованием понятна с самого начала, сделано для того чтобы никто не изменил переменную без нашего ведома

  • Там еще учащийся упоминал о том, что непонятно зачем теперь уровни вложенности, если все переменные будут все равно дропаться в конце. Они нужны чтобы не было вот такого:

fn main() {
    {
        let x = 32;
    }

    println!("{}", x); // Не скомпилируется
}

Я давным давно прошил Cascadia Cove со всеми иконками и кириллицей. Если вам нужно - мякните, скину сюда ссылку)

Для того чтобы иконки заработали вам нужен Nerd Font

Изготавливаемый в примере конфигурация и конфигурация в GH отличается лишь несколькими названиями файлов и директорий)

В целом и там и тут все хорошо задокументировано (каждая строка буквально?)

Если что непонятно - не стесняйтесь задавать вопросы. Можно тут в треде, можно в телеге)

Автор книги "Чистый код" - Дядя Боб плачет. Вторая глава о наименовании тут совсем не работает)

Мы не можем пофиксить свои баги, поэтому меняем правила в мире)

Информация

В рейтинге
Не участвует
Откуда
Луганск, Луганская обл., Украина
Дата рождения
Зарегистрирован
Активность

Специализация

Software Developer, Frontend Developer
Middle
JavaScript
HTML
React
TypeScript
Node.js
Express
Vue.js
Webpack
Web development