Pull to refresh
0
Александрова Нина @lynxtworead⁠-⁠only

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

Send message

Java Digest #11

Level of difficultyEasy
Reading time6 min
Views4.8K

Всем привет! ? ? ??

Мы — Java-разработчики Тинькофф: Андрей, Арсений, Константин и Константин — наша команда выросла на целого Костю. Собираем интересные новости, статьи, туториалы и другие материалы из мира Java-разработки теперь на 25% больше и делимся этим со всем сообществом.

Главная новость прошедшего месяца: вышла Java 22. В этом выпуске мы собрали много материалов на эту тему: обзоры JEP, видео и статьи, посвященные изменениям. Будут обзоры о новых релизах и дорожная карта Ktor. Нашлось место туториалам, посещенным Testcontainers, ExecutorService, Spring и Java NIO. Кстати, 24 марта Spring 1.0 исполнилось 20 лет — на эту тему тоже есть интересный материал. Приятного чтения ?

Читать свежий выпуск
Total votes 15: ↑14 and ↓1+15
Comments3

Java Records (JEP 359)

Reading time7 min
Views50K

Проблема


Одной из проблем Java является ее многословность и объем необходимого стандартного кода. Это общеизвестно.


Давайте рассмотрим простой класс Cat на Java. Мы хотим, чтобы каждый объект Cat имел следующие атрибуты (поля):

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

Догуглиться до senior-программиста за четыре года: метод «Школы 21»

Reading time5 min
Views92K
Есть один простой способ научить человека плавать: добираетесь с ним туда, где поглубже, и бросаете в воду. Эффективность может быть колоссальной. В 2013 году в Париже была открыта частная некоммерческая школа программирования L’Ecole 42 (Школа 42), использующая аналогичный подход. Отсутствие учителей и строгого учебного плана — лишь глубокий проектный омут с дедлайнами на дне. Аналогичные школы открыли в Калифорнии, Румынии, Южной Африке, Украине, и практически везде проект стал успешным.

В России при поддержке Сбербанка открывается «Школа 21», использующая такой же подход. И в этом посте мы расскажем о ней абстрактному скептику.


Студенты Школы 42. Фото San Francisco Chronicle
Читать дальше →
Total votes 31: ↑18 and ↓13+5
Comments98

Взламываем транспортные карты: чит на бесконечные деньги

Level of difficultyMedium
Reading time8 min
Views122K

Этот парень открыл все турникеты на станции. Вы до сих пор считаете, что все хакеры вредны?

Начну с простого вопроса: кто из вас пользуется общественным транспортом? А кому нравится за него платить? Если такие все же найдутся, то могут смело переставать читать статью. Для остальных у меня есть рассказ о том, как четверо старшеклассников из Массачусетса взломали местную транспортную систему.

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

Читать далее
Total votes 114: ↑112 and ↓2+138
Comments185

Не набирайте тексты в интернете, или Обфускация времени между нажатиями клавиш в SSH

Level of difficultyEasy
Reading time5 min
Views47K


В августе этого года в ssh(1) (клиент OpenSSH) внесено изменение с поддержкой обфускации тайминга нажатий клавиш, то есть интервалов между временем нажатия клавиш на клавиатуре.

Спрашивается, почему разработчики озаботились такими нюансами информационной безопасности? Но причина есть. И на самом деле такие меры должны предпринять все программы, которые допускают ввод паролей в интернете (или вообще любого конфиденциального текста). В первую очередь, браузеры и мессенджеры.
Читать дальше →
Total votes 95: ↑95 and ↓0+95
Comments125

Китайские LEGO-совместимые робототехнические конструкторы. На чем можно учить, когда нет официальных наборов

Reading time4 min
Views27K

Мы решили посмотреть, что же доступно из робототехнических конструкторов, совместимых с LEGO, на любимой многими китайской торговой площадке. И если выбор клонов и оригинальных аналогов LEGO System и Technic большой и достойного качества, то вот найти замену тому же EV3, становится не так просто. Но выход есть.

Читать далее
Total votes 19: ↑18 and ↓1+24
Comments35

Личный сервер shadowsocks за 10 минут без затрат (часть 3)

Reading time3 min
Views163K

Это - отдельное руководство, описывающее ещё один способ получить личный
прокси-сервер shadowsocks бесплатно и служащее продолжением к моей предыдущей статье. В этот раз мы воспользуемся сервисом Replit.

В этот раз всё будет намного проще: регистрация, импорт, запуск. Три шага.

Читать далее
Total votes 23: ↑20 and ↓3+19
Comments55

Sealed типы в Java

Reading time6 min
Views26K
Язык Java с недавнего времени стал активно развиваться. Шестимесячный релиз версий Java не может не радовать Java разработчика новыми фичами.

Одним из приоритетных направлений развития Java является сопоставление с образцом (pattern matching). Pattern matching раскрывают перед разработчиком возможность писать код более гибко и красивее, при этом оставляя его понятным.

Ключевыми блоками для pattern matching в Java планируется записи (record) и запечатаные (sealed) типы.

Записи (record) предоставляют лаконичный синтаксис для объявления классов, которые являются простыми носителями постоянных, неизменяемых наборов данных.

Появятся в Java 14 в виде preview feature.

record Person(String name, int age) { }
Читать дальше →
Total votes 7: ↑6 and ↓1+7
Comments2

Как определить местоположение по сетям сотовой связи (Cell ID)

Reading time4 min
Views298K

Карта Участники OpenStreetMap
 
Существует множество способов определения местоположения, такие как спутниковая навигация (GPS), местоположение по беспроводным сетям WiFi и по сетям сотовой связи.
 
В данном посте мы попытались проверить, насколько хорошо работает технология определения местоположения по вышкам сотовой связи в городе Минске (при условии использования только открытых баз данных координат передатчиков GSM).
 
Принцип действия заключается в том, что сотовый телефон (или модуль сотовой связи) знает, каким приемопередатчиком базовой станции он обслуживается и имея базу данных координат передатчиков базовой станции можно приблизительно определить своё местоположение.
Читать дальше →
Total votes 90: ↑88 and ↓2+86
Comments37

Возможности Java — от Java 8 до Java 17

Reading time19 min
Views31K

С момента появления в 1995 году до сегодняшнего дня в Java многое изменилось. Java 8 была революционным выпуском, вернувшим Java на пьедестал лучших языков программирования.

Мы рассмотрим большинство изменений в языке Java, которые произошли с Java 8 в 2014 году до сегодняшнего дня. Мы постараемся быть как можно более краткими по каждой функции. Намерение состоит в том, чтобы иметь ссылку на все новые фичи языка Java 8 - 17 включительно.

Примечание переводчика,

Эта статья переведена по просьбе одного из читателей Хабр. Надеюсь она будет полезна как краткий справочник по новым фичам языка Java 8 - 17.

Читать далее
Total votes 18: ↑11 and ↓7+6
Comments12

Учим английский с chatGPT

Level of difficultyEasy
Reading time4 min
Views49K

Пожалуй, новости о языковых моделях и их использовании уже немного надоели, но лично я нашел для себя полезное применение - изучать английский, в том числе и разговорный. Посмотрим, что могут нам предложить в этом деле товарищи из openai: совместим gpt-3.5-turbo, whisper и telegram.

Читать далее
Total votes 17: ↑16 and ↓1+16
Comments28

Создаем читабельный e2e тест для микросервисов на Spring Boot с помощью Cucumber 7 и Wiremock

Level of difficultyMedium
Reading time7 min
Views7.7K

Дорогой читатель, это мой первый туториал и если я что-то упустил или не объяснил, хотя стоило бы, напиши пожалуйста комментарий и я обновлю статью.

TL;DR

Весь код для микросервисов и e2e теста тут

Рекомендую быстро пробежаться по коду перед прочтением статьи т к в самой статье я объясню только неочевидные моменты реализации e2e тестирования.

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

Как мы увеличили скорость работы сайта в 10 раз

Reading time6 min
Views23K

Полностью обновили код и разработали дизайн сайта alta-profil.ru. Сделали его удобнее, быстрее и информативнее для пользователей. В этом кейсе расскажем об обновлении сайта: что делали, с какими проблемами столкнулись и как их решали.

Читать далее
Total votes 12: ↑2 and ↓10-8
Comments20

Книга «Объекты. Стильное ООП»

Reading time9 min
Views10K
image Привет, Хаброжители!

Хороший объектно-ориентированный код удобно читать, изменять и исправлять. Универсальные практики проектирования объектов, собранные в этой книге, позволят улучшить ваш стиль кодирования. Эти правила подойдут к любому объектно-ориентированному языку, они делают код максимально понятным и надежным, а также повышают производительность как индивидуальных разработчиков, так и команд.

Книга «Объекты. Стильное ООП» познакомит вас с профессиональными техниками написания ОО-кода. Маттиас Нобак раскрывает правила создания объектов, определения методов, изменения и извлечения состояний и многое другое. Все примеры написаны на простом псевдокоде, который легко перевести в любой язык программирования. Кейс за кейсом вы изучите ключевые сценарии и задачи проектирования объектов, а затем шаг за шагом создадите простое веб-приложение, которое покажет, как должны взаимодействовать объекты разных типов.
Читать дальше →
Total votes 8: ↑7 and ↓1+10
Comments5

Пишем простого бота-администратора для Telegram на Python. Тестируем на жене

Level of difficultyEasy
Reading time8 min
Views64K

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

После анализа нескольких библиотек для создания телеграм-ботов, я выбрал библиотеку Telebot, которая предоставляет богатый набор инструментов для разработки функционально-насыщенных ботов.

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

Тестировать бота мы будем с помощью моей жены.

Читать далее
Total votes 12: ↑12 and ↓0+12
Comments7

Автоматизируем тестирование микросервисов с REST-assured и Kotlin + Allure

Level of difficultyEasy
Reading time7 min
Views7K

Всё началось с того, что перед нами поставили задачу покрыть тестами наши сервисы для микросервисной платформы TOT Pyramid, которую мы развиваем последние два года. Мы были вправе выбрать стек технологий самостоятельно. Данные тесты должны запускаться в CI каждый раз при создании мердж-реквеста и проверять, что изменения ничего не сломали. Выбор пал на Rest-assured, тем более хотелось писать тесты на модном, молодёжном Kotlin.

В данной статье хочу поделиться опытом написания автотестов на Rest-assured + Kotlin. Статья не претендует на Rocket Science - в ней я приведу простые примеры и основные принципы тестирования API, которые применяются у нас в TOT Systems.

Поэтому, если вы ищете инструмент для покрытия API автотестами и при этом хотите писать на Kotlin, то эта статья для вас.

Читать далее
Total votes 4: ↑3 and ↓1+2
Comments1

NULL в SQL: Что это такое и почему его знание необходимо каждому разработчику

Level of difficultyEasy
Reading time5 min
Views49K

NULL - это специальное значение, которое используется в SQL для обозначения отсутствия данных. Оно отличается от пустой строки или нулевого значения, так как NULL означает отсутствие какого-либо значения в ячейке таблицы.

История появления NULL в SQL довольно интересна и длинна. В начале 1970-х годов Д. Камерер (D. Chamberlin) и Р. Бойд (R. Boyce) предложили использовать реляционную модель для полной замены иерархических и сетевых моделей данных, которые были актуальны в то время. Полная замена предполагала возможность хранения значений NULL в таблицах структуры базы данных.

Первоначально, NULL был создан как интегральный элемент реляционной модели данных. Это означало, что NULL мог быть использован в качестве значения для любого типа данных (целого числа, строки и т.д.) или даже целой строки (например, таких значений как "неизвестно" или "нет данных").

Когда была разработана SQL, NULL был реализован как специальное значение или маркер, который указывает на отсутствие значения в столбце. Таким образом, в SQL NULL означает отсутствие значения или неопределенное значение.

Однако, NULL создал некоторые проблемы при работе с данными в SQL. Например, если вы выполняете операцию на столбце, содержащем NULL значение, результат операции также будет NULL. Это означает, что использование NULL может приводить к нежелательным результатам, таким как непредсказуемое поведение.

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

Читать далее
Total votes 9: ↑4 and ↓5+1
Comments5

@Transactional в Spring и исключения

Level of difficultyEasy
Reading time6 min
Views15K

Привет! В этой статье я бы хотел рассказать, как Spring'овая аннотация @Transactional ведет себя при возникновении исключений. Про это немало написано, в том числе на Хабре. Например, тут или тут. Поэтому, чтобы не повторяться, я не буду подробно расписывать как и почему исключения влияют на откат транзакций, а вместо этого просто покажу несколько примеров.

Читать далее
Total votes 12: ↑11 and ↓1+12
Comments0

Information

Rating
Does not participate
Location
Екатеринбург, Свердловская обл., Россия
Date of birth
Registered
Activity