Чтобы показать размер акулы, через которую современный Software development перепрыгнул, вот реальная история.
Пять лет назад надо было организовать JWT аутентификацию на сайте с PHP бэкендом. Взял
Через некоторое время делал JWT аутентификацию на другом проекте, заметил, что
Продолжение следует...
#laravel #dx #optimization #jwt
Пять лет назад надо было организовать JWT аутентификацию на сайте с PHP бэкендом. Взял
firebase/php-jwt
- продукт разработчиков Google, ноль зависимостей, один файл среднего размера который делал всю криптографию. Логика там простая - сгенерировать JWT токен при логине и проверить подпись токена при запросе с фронтенда. Реализация на бэке заняла строк 50 кода, на фронте - столько же.Через некоторое время делал JWT аутентификацию на другом проекте, заметил, что
firebase/php-jwt
переписался в ОО стиле - появились классы JWT
, Key
, ExpiredException
и т.д. Логика та же, размер общий чуть увеличился.Продолжение следует...
#laravel #dx #optimization #jwt
О сложности в SD (продолжение)
Недавно надо было поставить JWT аутентификацию на Ларавель. Посмотрел в интернете - делается через пакет
Залез внутрь пакета - там 65 php файлов. Глянул в зависимости в composer.json:
Ой-вей, так этот пакет даже JWT криптографией не занимается, это просто прослойка между Ларавелем и другими пакетами, которые уже делают что-то полезное. То есть, это аналог того кода в 50 строк, который я писал пять лет назад.
Вот этот пакет со всеми зависимостями делает, по сути, то же самое, что и
Складывается впечатление, что как минимум 90% кода пишется не для того, чтобы решить конкретную бизнес задачу, а по другой причине. Чтобы получить доход, но не прямо и конкретно, а в целом, "для отрасли". Для этого усложняются фреймворки и методики. То, что можно сделать просто, делается сложно. Это как таксист, который везет кругами неместного пассажира, чтобы накрутило на счетчик. Причем таксист сам не знает куда ехать - он ведёт по навигатору, он только это умеет. А навигатор ведет так, как в него заложил его хозяин.
Сфера software development усложняется и задурманивается, чтобы там нельзя было найти прямых путей. А те, кто помнит, как их находить, побыстрее вымерли.
#laravel #dx #optimization
Недавно надо было поставить JWT аутентификацию на Ларавель. Посмотрел в интернете - делается через пакет
tymon/jwt-auth
. Поставил, настроил.Залез внутрь пакета - там 65 php файлов. Глянул в зависимости в composer.json:
"require": {
"php": "^5.5.9|^7.0",
"illuminate/auth": "^5.2|^6|^7|^8",
"illuminate/contracts": "^5.2|^6|^7|^8",
"illuminate/http": "^5.2|^6|^7|^8",
"illuminate/support": "^5.2|^6|^7|^8",
"lcobucci/jwt": "<3.4",
"namshi/jose": "^7.0",
"nesbot/carbon": "^1.0|^2.0"
}
Ой-вей, так этот пакет даже JWT криптографией не занимается, это просто прослойка между Ларавелем и другими пакетами, которые уже делают что-то полезное. То есть, это аналог того кода в 50 строк, который я писал пять лет назад.
Вот этот пакет со всеми зависимостями делает, по сути, то же самое, что и
firebase/php-jwt
. То же самое с точки зрения бизнес-требований, технической стороны, безопасности.Складывается впечатление, что как минимум 90% кода пишется не для того, чтобы решить конкретную бизнес задачу, а по другой причине. Чтобы получить доход, но не прямо и конкретно, а в целом, "для отрасли". Для этого усложняются фреймворки и методики. То, что можно сделать просто, делается сложно. Это как таксист, который везет кругами неместного пассажира, чтобы накрутило на счетчик. Причем таксист сам не знает куда ехать - он ведёт по навигатору, он только это умеет. А навигатор ведет так, как в него заложил его хозяин.
Сфера software development усложняется и задурманивается, чтобы там нельзя было найти прямых путей. А те, кто помнит, как их находить, побыстрее вымерли.
#laravel #dx #optimization
👍6👎2
Порядок свойств в js объекте важен для оптимизации js движком, и лучше его сохранять
Такая функция:
на таких объектах:
будет выполняться в 7-10 раз быстрее, чем на таких:
#js #optimization
Такая функция:
function add(a, b) {
return {
x: a.x + b.x,
y: a.y + b.y,
}
}
на таких объектах:
const o1 = { a: 1, b: 2};
const o2 = { a: 3, b: 4};
будет выполняться в 7-10 раз быстрее, чем на таких:
const o1 = { a: 1, b: 2};
const o2 = { b: 4, a: 3};
#js #optimization
🤔5😨5