Pull to refresh
2
0

Frontend developer

Send message

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

Reading time2 min
Views3.1K

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


image Nordic YES

Читать дальше →
Total votes 13: ↑3 and ↓10-7
Comments9

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

Reading time6 min
Views26K

Максим написал рекурсивный алгоритм, и столкнулся со 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);

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


Читать дальше →
Total votes 11: ↑9 and ↓2+7
Comments41

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

Reading time4 min
Views3.9K

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


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'ов и тернарных операторов
  • Без использования дополнительных структур данных
  • Без приведения типов
Читать дальше →
Total votes 12: ↑9 and ↓3+6
Comments31

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

Reading time2 min
Views882

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

Читать дальше →
Total votes 8: ↑4 and ↓40
Comments0

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

Reading time3 min
Views2.7K

image


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


Задача


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

Читать дальше →
Total votes 20: ↑1 and ↓19-18
Comments67

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

Reading time4 min
Views551

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



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

Читать дальше →
Total votes 3: ↑3 and ↓0+3
Comments2

Quartet 9: Allegro | TypeScript

Reading time4 min
Views1.3K

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



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

Читать дальше →
Total votes 7: ↑7 and ↓0+7
Comments44

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

Reading time8 min
Views946

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



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


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


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

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

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

Reading time8 min
Views5.2K

Предыстория


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


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

Читать дальше →
Total votes 20: ↑17 and ↓3+14
Comments4

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

Reading time3 min
Views4.1K


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


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


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

Читать дальше →
Total votes 12: ↑9 and ↓3+6
Comments22

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

Reading time11 min
Views3.6K

Предыстория


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


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

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


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

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

Читать дальше →
Total votes 6: ↑6 and ↓0+6
Comments6

Information

Rating
Does not participate
Location
Винница, Винницкая обл., Украина
Registered
Activity