Валидаторы нужны для валидации. Давайте ради забавы забудем об этом. Давайте с помощью валидатора пройдёмся по вложенной структуре данных. Сумасшествие, скажете вы!
Frontend developer
Превращаем рекурсию в цикл
Максим написал рекурсивный алгоритм, и столкнулся со 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);
Но когда он запускает подобные этому рекурсивные алгоритмы, бывает так, что он видит это:
Безумный безусловный обмен
Безумный безусловный обмен
Недавно попалась мне задача иммутабельным способом поменять местами два элемента в массиве по их индексам. Задача довольно простая. Поэтому решив её разумным способом:
const swap = (arr, ind1, ind2) =>
arr.map((e, i) => {
if (i === ind1) return arr[ind2]
if (i === ind2) return arr[ind1]
return e
})
Захотелось решить её безумным способом. Я подумал, что интересно было бы решить эту задачу:
- Без операторов сравнения и логических операторов(
&&
,||
, ...) - Без циклов и if'ов и тернарных операторов
- Без использования дополнительных структур данных
- Без приведения типов
«Светлое» будущее моих фейлов
Я пишу свою библиотеку валидации данных quartet уже полтора года. И не обошлось без фейлов. Желание их пофиксить заставляло меня заново и заново выпускать мажорные версии, менять архитектуру. И сейчас уже четыре месяца последняя мажорная версия неизменна. Но и в ней есть свои фейлы, и сейчас я о них попытаюсь рассказать.
Внимание, подводный камень
Я только что нашёл очень незаметный баг в своём коде библиотеки валидации quartet, и хочу поделиться им.
Задача
Дан список строк: VALID_STRINGS.
Cоздать функцию валидации test(x)
которая должна вернуть true
, если x
— это одна из строк в этом массиве.
Область применения: x
— любое значение Javascript
Ограничения: Не использовать ES6. (Цель — старый браузер)
Quartet 9: Allegro | Краткость и простота
Когда я создавал библиотеку для валидации данных quartet
, взял следующие цели-ориентиры:
- TypeScript
- Краткость и простота
- Производительность
В этой статье покажу как библиотека quartet
понимает, что значат слова "Краткий" и "Простой" в контексте подхода к валидации.
Quartet 9: Allegro | TypeScript
Когда создавалась библиотека для валидации данных quartet
были поставленны следующие цели-ориентиры:
- TypeScript
- Краткость и простота
- Производительность
В этой статье я хотел бы рассмотреть ориентированность quartet
на TypeScript.
Quartet 9: Allegro | Производительность
Когда создавалась библиотека для валидации данных quartet были поставленны следующие цели-ориентиры:
- TypeScript
- Краткость и простота
- Производительность
В этой статье я хотел бы рассмотреть производительность quartet
и её причины.
Статья на тему Краткости и простоты будет 4 апреля.
Будем исследовать этот аспект в сравнении между quartet
и другой намного более популярной ajv.
Мои грабли: из грязи в князи
Предыстория
Я работаю фронтенд разработчиком уже на протяжение одного года. На моём первом проекте был «вражеский» бэкенд. Бывает так, что это не составляет больших проблем, когда налажена коммуникация.
Но в нашем случае было не так.
Много свойств или свойство-объект: критерии выбора
Много свойств или свойство-объект: критерии выбора
Мы используя Vue, разрабатываем компоненты различного рода и условий применения. Одной из ключевых частей любых компонентов — это их интерфейс. Во Vue, передаваемые свойства — являются очень важной, если не самой важной, частью интерфейса компонента.
В ситуации, когда компонент требует множество данных, можно применить несколько способов их передачи. Рассмотрим их.
Как строить и построить
Предыстория
Встретившись в многочисленных местах разработки на Javascript с ситуациями, где необходимо было проводить валидацию значений, стало понятно, что необходимо как-то решить этот вопрос. С этой целью была поставлена следующая задача:
Разработать библиотеку, которая будет давать возможность:
- валидировать типы данных;
- задавать дефолтные значения вместо невалидных полей или элементов;
- удалять невалидные части объекта или массива;
- получать сообщение об ошибке;
В основе которой будет:
- Легкость в освоении
- Читабельность получаемого кода.
- Легкость модификации кода
Для достижения этих целей была разработана библиотека валидации quartet.
Information
- Rating
- Does not participate
- Location
- Винница, Винницкая обл., Украина
- Registered
- Activity