TechRocks
14.7K subscribers
769 photos
3 videos
1 file
2.08K links
Официальный телеграм-канал сайта techrocks.ru

Канал по Тестированию: @techrocksqa
Канал по веб-разработке: @techrocks_web

По вопросам рекламы: @anothertechrock

РКН: https://kurl.ru/JUrcd
Download Telegram
Используйте не запрещающие, а разрешающие CSS-селекторы

#css

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

Читать статью
Отладка кода при создании собственных проектов

Ах, радость кодинга! Вы работаете над своим проектом, и вдруг — бац! — обнаруживаете ошибку. Это все равно что уткнуться в стену в лабиринте.

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

Читать статью
👎2😁1
9 проверенных IT-курсов на Udemy

Чтобы успешно развиваться и осваивать ИТ-профессии, требуется постоянное обучение. Но есть проблема выбора – на рынке существует очень большое предложение курсов и для новичков, и для опытных специалистов.

В дайджесте на vc.ru и Medium Сергей Филатов, руководитель отдела продуктовой аналитики в QIC digital hub, подобрал курсы Udemy для разных целей и уровня подготовки в области data science, machine learning и бизнес-аналитики.
👍2
Как при помощи JavaScript определить, включен ли Caps Lock

Кто угодно может нажать Caps Lock в любой момент времени и не заметить этого. Вводя обычный текст, пользователи легко обнаруживают, что Caps Lock включен. Но когда вводится пароль, проблема не столь очевидна. В результате пароль не принимается, и это раздражает пользователя. В идеале разработчики могли бы предупреждать пользователя о том, что у него включен Caps Lock.

Чтобы отслеживать, включен ли Caps Lock, мы используем метод getModifierState:

document.querySelector('input[type=password]').addEventListener('keyup', function (keyboardEvent) {
const capsLockOn = keyboardEvent.getModifierState('CapsLock');
if (capsLockOn) {
// Предупредить пользователя, что caps lock включен?
}
});


Я прежде никогда не встречал getModifierState, так что заглянул в документацию W3C, чтобы познакомиться с его значениями:

dictionary EventModifierInit : UIEventInit {
boolean ctrlKey = false;
boolean shiftKey = false;
boolean altKey = false;
boolean metaKey = false;

boolean modifierAltGraph = false;
boolean modifierCapsLock = false;
boolean modifierFn = false;
boolean modifierFnLock = false;
boolean modifierHyper = false;
boolean modifierNumLock = false;
boolean modifierScrollLock = false;
boolean modifierSuper = false;
boolean modifierSymbol = false;
boolean modifierSymbolLock = false;
};


getModifierState позволяет получить множество сведений о клавиатуре пользователя во время событий, ориентированных на нажатие клавиш. Жаль, что я не знал о getModifier в начале своей карьеры!

Источник - https://davidwalsh.name/detect-caps-lock
6👍4
🔻Напишите онлайн-чат на Golang с нуля за пару часов и добавьте его в портфолио!

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

☑️ на примере разработки онлайн-чата разберете преимущества и особенности языка Go;
☑️ поговорите о клиент-серверной архитектуре интернета;
☑️ попрактикуетесь в написании веб-приложения на чистом Go;
☑️ проведете небольшое нагрузочное тестирование полученной реализации.

🗓 Встречаемся 12 марта в 20:00 мск в рамках курса «Go (Golang) Developer Basic». Доступна рассрочка на обучение!

👉 Регистрируйтесь прямо сейчас, чтобы посетить бесплатный урок и получить запись: https://otus.pw/x6b4/
1
Как использовать селектор :has() в CSS

#webdev

Селектор :has() предлагает новый уровень гибкости и возможностей в CSS, позволяя писать более чистые и эффективные таблицы стилей.

Читать статью
👍2
🫵 Соберите свой первый проект на С++ и добавьте его в портфолио

👉 На бесплатном практическом уроке от OTUS и Карины Дорожкиной — ведущего разработчика в Kaspersky.

На вебинаре:
- разберем понятие единицы трансляции;
- проследим за ошибками компиляции и линковки, разберёмся в их причинах;
- создадим статическую библиотеку и подключим её при помощи CMake;
- обсудим разницу между статической библиотекой и динамической.

Занятие пройдёт 5 марта в 20:00 мск и будет приурочено к старту курса «Специализация C++ Developer». Доступна рассрочка на обучение!

👉 Зарегистрируйтесь прямо сейчас, чтобы занять место: https://otus.pw/97YH/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
👍2
Сортировка веток Git

Запустив git branch в репозитории, вы обычно получаете список веток в алфавитном порядке. Это может раздражать, когда у вас много веток (если только у вас нет очень жесткой системы именования по номеру тикета или чего-то подобного).

Но это можно изменить!

Выполните в вашем репозитории следующую команду:

git branch --sort=-committerdate


Это отсортирует все ваши ветки по дате их последнего коммита!

Для сортировки доступны следующие опции:

- authordate
- committerdate
- creatordate
- objectsize
- taggerdate

Кроме того, если хотите всегда сортировать по одному из этих параметров, можно установить это в настройках:

git config --global branch.sort -committerdate


Также можно задать псевдоним:

git config --global alias.brcd "branch --sort=-committerdate".

Успешных коммитов!

Источник - «Sorting Git branches».
👍14
Как объявить массив в bash

#bash

Bash-скрипты полезны для автоматизации консольных команд. А массивы — отличный инструмент для хранения набора данных. Объявлять массив в bash не сложно, однако синтаксис отличается от синтаксиса массивов в языках программирования.

Читать статью
👍4😐2
Уменьшаем время загрузки сайта

#webdev

Если сайту не удается предоставить хороший UX, то скорее всего - из-за плохо оптимизированного фронтенда. Чаще всего дело бывает в загрузке данных и изображений. Давайте разберемся, что и как можно улучшить.

Читать статью
Как архитектору эффективно работать с принципом инверсии зависимостей?

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

▫️определение и обоснование принципа инверсии зависимостей;
▫️примеры использования принципа в различных паттернах проектирования;
▫️связь принципа инверсии зависимостей с остальными принципами SOLID;
▫️связь паттерна Адаптер, луковичной архитектуры и принципа инверсии зависимостей.

Занятие пройдёт 13 марта в 20:00 мск в рамках курса «Архитектура и шаблоны проектирования». После урока у вас будет возможность стать студентом программы по специальной цене и даже в рассрочку!

👉🏻 Пройдите короткий тест прямо сейчас, чтобы посетить бесплатный урок и получить запись: пройти тест

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Как перемещаться между скобками в Vim

#tools

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

Читать статью
SQL JOIN: руководство по объединению таблиц

#sql

В этой статье:

- LEFT JOIN / RIGHT JOIN
- Фильтрация с использованием LEFT JOIN
- Множественные объединения
- Операции объединения с дополнительными условиями
- Правда жизни о написании запросов с объединениями.

Читать статью
👍3
🔥 Для новичков в IT: как тестировать API с помощью POSTMAN?

⚙️Узнайте на бесплатном практическом уроке от OTUS, где вы вместе с опытным экспертом разберете:

- что такое API и как его использовать;
- как тестировать back-end, если нет интерфейса;
- что можно тестировать в API;
- составление простой автопроверки для нашего API.

🦾Занятие пройдёт 14 марта в 20:00 мск и будет приурочено к старту курса «Специализация QA Automation Engineer». Доступна рассрочка на обучение!

Регистрируйтесь прямо сейчас, чтобы занять место на открытом уроке и получить запись: https://vk.cc/cvn4lX

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
HTTPS для разработчиков

#webdev

Если вы хотите узнать достаточно технических подробностей о работе и использовании HTTPS в ваших приложениях, при этом не ныряя в глубины криптографии и веб-стандартов, эта статья как раз для вас!

Читать статью
Date.now()

Спросите любого разработчика, и он согласится, что прописывание логики дат может быть настоящим кошмаром. Разработчикам нужно учитывать часовые пояса, странные дефолтные даты и платформоспецифичные форматы дат.

Самый простой способ работать с датами - свести дату к максимально простому формату, обычно к временной метке. Чтобы получить текущее время в формате целого числа, вы можете использовать Date.now:

const now = Date.now(); // 1705190738870

Я частенько использую Date.now() в своих console.log, чтобы отличать результаты console.log друг от друга. Вы также можете использовать такую дату в качестве уникального идентификатора для события в не слишком загруженной событиями среде.

Источник - "Date.now()".
💩7🔥3👻2👍1
Чем перемещение отличается от копирования в C++?

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

- синтаксис и подводные камни move-семантики;
- отличие копирования от перемещения;
- когда компилятор может сам, а когда ему нужно подсказать;
- как отличить rvalue от lvalue;
- как избегать лишнего копирования объектов.

Занятие пройдёт 21 марта в 20:00 мск и будет приурочено к старту курса «Специализация C++ Developer». Доступна рассрочка на обучение!

👉 Зарегистрируйтесь прямо сейчас: https://otus.pw/3WT1/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Извлечение числа из строки при помощи JavaScript

Пользовательский ввод из полей HTML-форм обычно передается в JavaScript как строка. Мы десятилетиями живем с этим, но порой разработчикам приходится извлекать из этих строк числа. Есть несколько способов это сделать, но давайте обратимся к регулярным выражениям!

Чтобы при помощи регулярного выражения вычленить число в строке, мы можем использовать \d+:

const string = "x12345david";
const [match] = string.match(/(\d+)/);
match; // 12345


Регулярки в JS способны на очень многое, этот пример - одна из простейших операций. Конвертация числа при помощи обертки Number() даст вам число типа Number.

Источник - «Extract a Number from a String with JavaScript».
👍21
Как понять, какая IT-профессия вам подойдёт?

Начните с пробного доступа к IT-курсам OTUS за 500 рублей!

Вы получите доступ видеозаписи трех курсов: «РНР для начинающих программистов», «JavaScript для начинающих программистов», «С++ для начинающих программистов» 

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

👉 Получить пробный доступ
https://otus.pw/vxHO/?erid=LjN8KNYba
Проверка типов в Python

#python

Python — строго типизированный динамический язык программирования. Типы определяются динамически, поэтому вы можете задавать значения переменных напрямую, не определяя их тип, как в статически типизированных языках, таких как Java.

Хотя динамическая типизация обеспечивает гибкость, она не всегда желательна, поэтому в последнее время было предпринято множество попыток привнести в динамические языки статическое определение типов.

В этой статье мы рассмотрим, что такое подсказки типов и чем они могут быть полезны. Мы также рассмотрим, как можно использовать систему типов Python для статической проверки типов с помощью mypy и проверки типов во время выполнения с помощью pydantic, marshmallow и typeguard.

Читать статью