Обновить
1
0

Frontend developer

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

Странные применения валидации

Время на прочтение2 мин
Охват и читатели3.2K

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


image Nordic YES

Читать дальше →

Превращаем рекурсию в цикл

Время на прочтение6 мин
Охват и читатели33K

Максим написал рекурсивный алгоритм, и столкнулся со Stack Overflow exception.


Зачем Максим это сделал?


Потому что он любит короткие и элегантные на его взгляд решения.


Он не наслаждается, когда пишет так:


function factorial(n) {
  let res = 1;
  for (let i = 2; i <= n; i++) {
    res *= i;
  }
  return res;
}

Он хочет писать вот так:


const factorial = (n) => (n > 1 ? n * factorial(n - 1) : 1);

Но когда он запускает подобные этому рекурсивные алгоритмы, бывает так, что он видит это:


Читать дальше →

Безумный безусловный обмен

Время на прочтение4 мин
Охват и читатели4K

Безумный безусловный обмен


image


Недавно попалась мне задача иммутабельным способом поменять местами два элемента в массиве по их индексам. Задача довольно простая. Поэтому решив её разумным способом:


const swap = (arr, ind1, ind2) =>
  arr.map((e, i) => {
    if (i === ind1) return arr[ind2]
    if (i === ind2) return arr[ind1]
    return e
  })

Захотелось решить её безумным способом. Я подумал, что интересно было бы решить эту задачу:


  • Без операторов сравнения и логических операторов(&&, ||, ...)
  • Без циклов и if'ов и тернарных операторов
  • Без использования дополнительных структур данных
  • Без приведения типов
Читать дальше →

«Светлое» будущее моих фейлов

Время на прочтение2 мин
Охват и читатели907

Я пишу свою библиотеку валидации данных quartet уже полтора года. И не обошлось без фейлов. Желание их пофиксить заставляло меня заново и заново выпускать мажорные версии, менять архитектуру. И сейчас уже четыре месяца последняя мажорная версия неизменна. Но и в ней есть свои фейлы, и сейчас я о них попытаюсь рассказать.

Читать дальше →

Внимание, подводный камень

Время на прочтение3 мин
Охват и читатели2.7K

image


Я только что нашёл очень незаметный баг в своём коде библиотеки валидации quartet, и хочу поделиться им.


Задача


Дан список строк: VALID_STRINGS.
Cоздать функцию валидации test(x) которая должна вернуть true, если x — это одна из строк в этом массиве.
Область применения: x — любое значение Javascript
Ограничения: Не использовать ES6. (Цель — старый браузер)

Читать дальше →

Quartet 9: Allegro | Краткость и простота

Время на прочтение4 мин
Охват и читатели609

Когда я создавал библиотеку для валидации данных quartet, взял следующие цели-ориентиры:



В этой статье покажу как библиотека quartet понимает, что значат слова "Краткий" и "Простой" в контексте подхода к валидации.

Читать дальше →

Quartet 9: Allegro | TypeScript

Время на прочтение4 мин
Охват и читатели1.4K

Когда создавалась библиотека для валидации данных quartet были поставленны следующие цели-ориентиры:



В этой статье я хотел бы рассмотреть ориентированность quartet на TypeScript.

Читать дальше →

Quartet 9: Allegro | Производительность

Время на прочтение8 мин
Охват и читатели999

Когда создавалась библиотека для валидации данных quartet были поставленны следующие цели-ориентиры:



В этой статье я хотел бы рассмотреть производительность quartet и её причины.


Статья на тему Краткости и простоты будет 4 апреля.


Будем исследовать этот аспект в сравнении между quartet и другой намного более популярной ajv.

Читать дальше →

Мои грабли: из грязи в князи

Время на прочтение8 мин
Охват и читатели5.3K

Предыстория


Я работаю фронтенд разработчиком уже на протяжение одного года. На моём первом проекте был «вражеский» бэкенд. Бывает так, что это не составляет больших проблем, когда налажена коммуникация.


Но в нашем случае было не так.

Читать дальше →

Много свойств или свойство-объект: критерии выбора

Время на прочтение3 мин
Охват и читатели4.2K


Много свойств или свойство-объект: критерии выбора


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


В ситуации, когда компонент требует множество данных, можно применить несколько способов их передачи. Рассмотрим их.

Читать дальше →

Как строить и построить

Время на прочтение11 мин
Охват и читатели3.8K

Предыстория


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


  • валидировать типы данных;
  • задавать дефолтные значения вместо невалидных полей или элементов;
  • удалять невалидные части объекта или массива;
  • получать сообщение об ошибке;

В основе которой будет:


  • Легкость в освоении
  • Читабельность получаемого кода.
  • Легкость модификации кода

Для достижения этих целей была разработана библиотека валидации quartet.

Читать дальше →

Информация

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