Как стать автором
Обновить
-1
0.4

Пользователь

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

TypeScript в деталях. Часть 3

Время на прочтение 14 мин
Количество просмотров 18K


Привет, друзья!


Представляю вашему вниманию перевод еще нескольких статей из серии Mastering TypeScript, посвященных углубленному изучению TypeScript.


Читать дальше →
Всего голосов 13: ↑12 и ↓1 +11
Комментарии 0

7 шагов к результату эффективного обучения

Уровень сложности Простой
Время на прочтение 16 мин
Количество просмотров 21K

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

Данная статья будет вашим персональным гайдом/учебником (называйте как хотите), по тому как именно обучаться, на что следует обращать внимание и какие техники могут помочь вам.

Проблемы мы обозначили 7-ю шагами, на которые вам нужно будет сделать акцент, чтобы повысить свою эффективность.

Читать далее
Всего голосов 18: ↑7 и ↓11 -4
Комментарии 12

Рефлексия в JavaScript и TypeScript: обзор основных техник. Как сгенерировать CLI-интерфейс для класса

Уровень сложности Средний
Время на прочтение 22 мин
Количество просмотров 8.8K
Как и в любом достаточно динамическом языке, в JavaScript из коробки есть способы разобрать в рантайме структуру его значений — определить типы, ключи объектов, получить конструкторы и прототипы.

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

Читать дальше →
Всего голосов 42: ↑42 и ↓0 +42
Комментарии 0

Разбираемся с Redis

Время на прочтение 19 мин
Количество просмотров 214K

Этот материал представляет собой глубокое исследование всего, что связано с Redis. В частности — речь пойдёт о различных способах организации хранилищ Redis, о постоянном хранении данных, о форках процессов.

Читать далее
Всего голосов 64: ↑63 и ↓1 +62
Комментарии 7

Сколько софта нужно купить для компании

Время на прочтение 15 мин
Количество просмотров 9.7K
Мне пришлось поработать в разных по размеру компаниях – от маленькой конторы из 15 человек, снимающей пару комнат на чердаке, до международных компаний с офисами в разных странах и дорогущими корпоративами. И почти в каждой компании меня удивлял зоопарк используемого софта и жадность (или наоборот, расточительность) при выборе очередного инструмента.

В этой статье хотелось бы поделиться мыслями, какой софт и когда имеет смысл покупать для IT компании.

image
Читать дальше →
Всего голосов 13: ↑12 и ↓1 +11
Комментарии 3

Dynamic modules в NestJS

Время на прочтение 8 мин
Количество просмотров 9.4K

NestJS - фреймворк, вобравший в себя преимущества TypeScript, IoC/DI и структуру Angular, стремительно развивается, приобретая популярность.

Множество методик и практик описано в официальной документации.

Вдохновившись публикацией John Biundo - Build a NestJS Module for Knex.js, написал свой собственный модуль для Mailchimp Transaction API.

Читать далее
Всего голосов 4: ↑4 и ↓0 +4
Комментарии 0

Применение автотестов в ежедневных релизах. Установка Cypress и Allure

Время на прочтение 4 мин
Количество просмотров 6.8K

Меня зовут Виталий и я автотестер в компании Утконос ОНЛАЙН. В предыдущей статье я рассказал, почему мы решили использовать фреймворк для автоматизации тестирования, описал существующие варианты, наш выбор в пользу Cypress и его связку с репортом Allure. В этой части обсудим технические вопросы: как установить фреймворк, прикрутить хуки в slack для автоматизации и использовать «на поток».  

Для начала уточню: чтобы уверенно применять Cypress, необходимо владеть азами npm-node package manager, а также знать синтаксис jasmine и иметь общее понимание о JavaScript. В этой статье я грубо  обозначу основные шаги для установки среды, написания тестов и настройки отправки отчетов по их исполнению в канал slack.

Читать далее
Всего голосов 5: ↑5 и ↓0 +5
Комментарии 4

Cypress и его место в нашей тестовой пирамиде

Время на прочтение 13 мин
Количество просмотров 37K

Стабильность и скорость ― это то, что ожидается от автотестов. В этой статье я расскажу о нашей стратегии по оптимизации тестовой пирамиды, о том, почему мы сделали выбор в пользу Cypress и какие выработали подходы к написанию тестов, а также о запуске тестов на инфраструктуре AWS.

Читать далее
Всего голосов 16: ↑15 и ↓1 +14
Комментарии 18

Цикл постов про Keycloak. Часть первая: Внедрение

Время на прочтение 18 мин
Количество просмотров 47K

Цикл постов про Keycloak (часть 1): Внедрение.

О чем речь?

Это первая часть серии статей о переходе на Keycloak в качестве SSO в условиях кровавого enterprise.

Читать далее
Всего голосов 29: ↑27 и ↓2 +25
Комментарии 6

Сон — это главный ресурс для мозга программиста

Время на прочтение 12 мин
Количество просмотров 113K
Можете использовать этот пост как аргумент при переговорах.

image

Вы, наверное, уже слышали эту продуманную фразу, которую произнес Рид Хастингс, CEO компании Netflix, говоря о развитии компании: «Наш главный конкурент – это сон». Он логично рассуждает, что с точки зрения прибыльности его бизнеса, сон, занимающий треть всего времени – огромный ресурс, за который можно побороться. Но если мы дорожим своим здоровьем, красотой и жизнью, то он не должен получить от нас ни минуты от нашего сна. Мы всё еще настолько недооцениваем сон, что этот факт удивителен сам по себе. Почему мы считаем сон чем-то, чем можно жертвовать, что можно сжимать, над чем можно издеваться? Даже простейшее популярное представление о биологии говорит нам, что природа не стала бы требовать от нас трети жизни на что-то неважное.

Какова ценность ваших первых 25 лет жизни, начиная с момента, когда вы впервые открыли глаза и заплакали, и тем временем, когда вы осознали, что взрослая жизнь уже идет полным ходом? Ценность сна даже измерять абсурдно, а ведь он в нашей жизни занимает приблизительно столько же времени.

Между тем, мы действительно не знаем, почему мы спим. Да, у нас есть объяснения – насчет консолидации памяти, обучения, восстановления сил и прочее. Сам вопрос остается открытым и задается вновь и вновь, потому что мы подозреваем, что это не все, что мы знаем про сон.

Все животные спят, при условии, что они живут хотя бы несколько дней. Есть исключения, но они могут быть чисто методологическими: еще до недавнего времени ученым не хватало данных назвать сном периоды отключения у некоторых животных (насекомых).
Читать дальше →
Всего голосов 119: ↑111 и ↓8 +103
Комментарии 265

Как избавиться от прокрастинации до того, как она разрушит вашу карьеру

Время на прочтение 9 мин
Количество просмотров 86K

Прокрастинацию принято считать разновидностью лени и ерундой, а эффективным лекарством от нее грозный окрик: «Соберись, тряпка!» На деле прокрастинация — опасная проблема, сродни зависимости, которая вызывает много вины и стыда, и способна со временем разрушить личность. Почему она так опасна, редко лечится попыткой «взять себя в руки» и как ее одолеть?

Читать далее
Всего голосов 69: ↑63 и ↓6 +57
Комментарии 96

Кастомные декораторы для NestJS: от простого к сложному

Время на прочтение 7 мин
Количество просмотров 19K

image


Введение


NestJS — стремительно набирающий популярность фрeймворк, построенный на идеях IoC/DI, модульного дизайна и декораторов. Благодаря последним, Nest имеет лаконичный и выразительный синтаксис, что повышает удобство разработки.


Декораторы или аннотации — наследники аспектов, которые позволяют декларативно описывать логику, модифицировать поведение классов, их свойств, аргументов и методов.


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

Читать дальше →
Всего голосов 29: ↑29 и ↓0 +29
Комментарии 4

TypeScript: Раскладываем tsconfig по полочкам. Часть 2 — Всё про строгость

Время на прочтение 18 мин
Количество просмотров 33K

В данной статье я хочу предоставить переработанную и упорядоченную выжимку документации по настройке "флагов строгости" tsconfig.json. Статья будет полезна как тем, кто только начинает работать с TypeScript, так и тем кто уже давно работает, но при этом использует конфиг по умолчанию. Для разработчиков, которые хорошо ориентируются в вопросах строгости в TypeScript статья может открыть некоторые тонкости работы флагов и послужить шпаргалкой.

Читать далее
Всего голосов 16: ↑16 и ↓0 +16
Комментарии 5

13 распространенных задач в Kubernetes и способы их решения

Время на прочтение 13 мин
Количество просмотров 23K


Команда VK Cloud перевела статью о проблемах в Kubernetes, с которыми часто сталкиваются инженеры-разработчики при запуске новых масштабируемых отказоустойчивых веб-сервисов. 
Читать дальше →
Всего голосов 48: ↑44 и ↓4 +40
Комментарии 3

Как я создавал эргономичное рабочее место для себя и теперь предлагаю другим. Часть 1

Время на прочтение 12 мин
Количество просмотров 86K

Привет, Хабр! Меня зовут Денис Захаров. Я занимаюсь разработкой веб приложений на протяжении уже 14 лет, но история будет не об этом. Расскажу о том, как и почему я создавал эргономичное рабочее место, которое в последствии превратилось в проект Easyworkstation. Эта штука уже несколько лет полностью заменяет мне и еще нескольким десяткам пользователей привычное компьютерное кресло и рабочий стол.

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

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

А теперь ретроспектива
Всего голосов 300: ↑300 и ↓0 +300
Комментарии 206

Docker Swarm для самых маленьких

Время на прочтение 13 мин
Количество просмотров 110K

Данная статья посвящена настройке и работе с Docker Swarm.

Swarm это стандартный оркестратор для docker контейнеров, доступный из «коробки», если у вас установлен сам docker.

Что нам потребуется для освоения:

Читать далее
Всего голосов 6: ↑4 и ↓2 +2
Комментарии 26

Все еще работаете с access token на клиенте? Тогда мы идем к вам

Время на прочтение 15 мин
Количество просмотров 44K

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

В статье рассмотрим причины необходимости работы с токеном на клиенте веб-приложений, узнаем ,что лучше для хранения токена: localStorage, sessionStorage или cookie без флага HttpOnly (спойлер, ничего из этого), а также посмотрим на меры воздействия, которые можно использовать для снижения риска утечки токена посредством различных уязвимостей.

Надеюсь, что данная статья будет полезна разработчикам, тестировщикам, аналитикам и архитекторам, в ней постарался рассмотреть вопрос с разных точек зрения и собрать широкую картину.

Читать далее
Всего голосов 44: ↑42 и ↓2 +40
Комментарии 40

TypeScript: Раскладываем tsconfig по полочкам. Часть 1

Время на прочтение 10 мин
Количество просмотров 82K

В данной статье я хочу предоставить переработанную и упорядоченную выжимку документации по настройке tsconfig.json, которая, я уверен, будет полезна тем, кто только начинает свой путь в мире TypeScript или тем, кто до этого момента не нашёл времени и сил, чтобы разобраться в деталях и теперь хочет закрыть этот пробел.

Читать далее
Всего голосов 30: ↑29 и ↓1 +28
Комментарии 4

Тестирование JavaScript кода с Jest для чайников. Часть 1

Время на прочтение 7 мин
Количество просмотров 88K
Здравствуй, Хабр! Данное руководство является первой частью в запланированном цикле статей про такой замечательный фреймворк для тестирования как Jest. Материал будет полезен новичкам и тем, кто только знакомится с тестированием, и хотел бы изучить этот фреймворк. В первой части мы разберём: как начать работу с jest, как написать простой тест, и какие есть методы для сопоставления проверяемых значение с ожидаемыми. Кому интересно — добро пожаловать под кат!
Читать дальше →
Всего голосов 10: ↑8 и ↓2 +6
Комментарии 4

Память в браузерах и в Node.js: ограничения, утечки и нестандартные оптимизации

Время на прочтение 32 мин
Количество просмотров 40K

Интро: почему я написал эту статью


Меня зовут Виктор, я разрабатываю страницу результатов поиска Яндекса. Несмотря на внешнюю простоту, поисковая выдача — сложная штука: на каждый запрос генерируется своя уникальная страница, на которой в зависимости от запроса может присутствовать блок Картинок, Карты, Переводчик, видеоплеер и многие другие компоненты. Все они должны запускаться и работать в памяти обычных бюджетных телефонов, которые использует большинство наших пользователей. Браузерам должно хватать ресурсов, чтобы пользователь не видел вот такого:



На своих серверах мы должны генерировать сотни миллионов уникальных страниц в сутки — это сложнее, чем просто отдавать одни и те же ресурсы. Генерация страницы не должна быть слишком требовательной к памяти сервера.


Разрабатывая проект на JavaScript (TypeScript, ClojureScript или каком-то другом языке, транслируемом в JavaScript), мы привыкли создавать объекты, массивы, строки и вообще писать код, как будто память бесконечна. Это не так. Я расскажу о видах проблем с памятью, о том, какие ограничения мы часто забываем и как их можно преодолеть. В ответ браузеры и пользователи скажут вам спасибо.


Читать дальше →
Всего голосов 55: ↑55 и ↓0 +55
Комментарии 12

Информация

В рейтинге
1 660-й
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность