Как стать автором
Обновить
-7
0

Back end developer

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

Как выполнять тестовые задания для java- джуниоров/стажеров, чтобы попасть на собеседование

Время на прочтение4 мин
Количество просмотров26K
Недавно в силу своей работы, мне довелось отбирать стажеров в нашу компанию. Все кто еще помнит как это — быть стажером/джуном, должны помнить как сложно без опыта воткнуться в более-менее нормальное место, где будут тратить ресурсы на твое обучение. Из-за того, что поток начинающих разработчиков очень большой, у работодателя есть возможность выбирать из этого потока если и не самых лучших, то как минимум толковых, перспективных ребят, на которых стоить потратить время на обучение, чтобы потом их у себя трудоустроить.

У каждой компании своя методика поиска таких кандидатов. Мы, на сегодняшний день, придерживаемся следующей: даем небольшое тестовое задание (около часа работы, для опытного разработчика), для выполнения которого достаточно знаний java-core и просим выложить его на гитхаб. По времени выполнения не ограничиваем. Затем, качественно выполнивших задание соискателей приглашаем на собеседование.

image

Задание обычно содержит реализацию CRUD методов в файл через консольное меню с одной-двумя сущностями плюс валидацию некоторых полей. В качестве примера приведу классическую ситуацию с пользователем, которому нужно реализовать валидацию email и телефона, по заданному шаблону и к этому иметь возможность ввести от 1 до 3 телефонов. Откликов приходит очень много, а мест очень мало — соответственно отбор достаточно жесткий.
Читать дальше →
Всего голосов 40: ↑17 и ↓23-6
Комментарии83

О стримах и таблицах в Kafka и Stream Processing, часть 1

Время на прочтение16 мин
Количество просмотров59K
* Michael G. Noll — активный контрибьютор в Open Source проекты, в том числе в Apache Kafka и Apache Storm.

Статья будет полезна в первую очередь тем, кто только знакомится с Apache Kafka и/или потоковой обработкой [Stream Processing].


В этой статье, возможно, в первой из мини-серии, я хочу объяснить концепции Стримов [Streams] и Таблиц [Tables] в потоковой обработке и, в частности, в Apache Kafka. Надеюсь, у вас появится лучшее теоретическое представление и идеи, которые помогут вам решать ваши текущие и будущие задачи лучше и/или быстрее.

Содержание:

* Мотивация
* Стримы и Таблицы простым языком
* Иллюстрированные примеры
* Стримы и Таблицы в Kafka простым языком
* Пристальный взгляд на Kafka Streams, KSQL и аналоги в Scala
* Таблицы стоят на плечах гигантов (на стримах)
* Turning the Database Inside-Out
* Заключение
Читать дальше →
Всего голосов 19: ↑19 и ↓0+19
Комментарии4

Шпаргалки Java программиста 9: Java SE — Шпаргалка для собеседований и повторений

Время на прочтение32 мин
Количество просмотров135K
Данная статья в первую очередь предназначена для подготовки к собеседованиям на позицию Java разработчика (на самом деле, это шпаргалка, которую я писал для себя в течении многих лет, и повторяю при каждом новом поиске работы).

Предполагается. что вы знакомы с многими функциями из Java SE, поэтому в основном информация дается кратко. Конечно, можно использовать эту статью и просто для обучения основам Java SE платформы (но в этом случае, после чтения статьи вам скорее всего придется обратиться к другим источникам).

image

Итак, вы пытаетесь вспомнить все, что знаете перед собеседованием и не важно сколько лет опыта, без подготовки вас все равно могут поймать на том вопросе, который вы вроде бы помнили, но именно на собеседовании забыли. Это шпаргалка позволит вам освежить некоторые из ваших знаний.

Внимание: я не буду касаться вопросов по самому языку Java (вроде для чего нужно слово final или чем overriding отличается от overloading), это потребует отдельной статьи, это вопросы именно по Java SE (6-9) платформе.
Читать дальше →
Всего голосов 30: ↑28 и ↓2+26
Комментарии10

10 самых распространенных ошибок при работе с платформой Spring. Часть 1

Время на прочтение9 мин
Количество просмотров11K
Всем привет. Сегодня делимся первой частью статьи, перевод которой подготовлен специально для студентов курса «Разработчик на Spring Framework». Начнём!





Spring — пожалуй, одна из самых популярных платформ разработки на языке Java. Это мощный, но довольно сложный в освоении инструмент. Его базовые концепции довольно легко понять и усвоить, но для того чтобы стать опытным разработчиком на Spring, потребуются время и определенные усилия.

В этой статье мы рассмотрим некоторые из самых распространенных ошибок, совершаемых при работе в Spring и связанных, в частности, с разработкой веб-приложений и использованием платформы Spring Boot. Как отмечается на веб-сайте Spring Boot, в Spring Boot используется стандартизованный подход к созданию готовых к эксплуатации приложений, и данная статья будет придерживаться этого подхода. В ней будет дан ряд рекомендаций, которые можно эффективно использовать при разработке стандартных веб-приложений на базе Spring Boot.
Читать дальше →
Всего голосов 15: ↑13 и ↓2+11
Комментарии8

[ВОЗМОЖНО] СОРМ расшифровывает HTTPS трафик к Mail.ru и ICQ

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


На конференции Chaos Constructions 2019 Леонид darkk Евдокимов показал любопытный доклад про случайно обнаруженные в открытом доступе панели управления СОРМ. Доклад можно посмотреть здесь: darkk.net.ru/2019/cc В двух словах: панели со статистикой работы программно-аппаратных комплексов СОРМ от МФИ Софт торчали наружу в интернет и всем было пофиг.

В какой-то момент времени наружу торчали сырые дампы перехваченного трафика, которые успел проиндексировать поисковик shodan.io. Вот один из таких дампов: archive.li/RG9Lj
Там есть MAC-адреса, IMEI телефонов и разная другая личная информация. Но самое интересное в этих дампах, что туда каким-то образом попал трафик к некоторым хостам на 443 порт (HTTPS) в открытом виде! То есть видны полностью GET запросы, а это может значить, что СОРМ умеет расшифровывать HTTPS. Попробуем подумать как такое возможно.
Читать дальше →
Всего голосов 198: ↑183 и ↓15+168
Комментарии227

10 самых распространенных ошибок при работе с платформой Spring. Часть 2

Время на прочтение8 мин
Количество просмотров8.9K
Салют, хабровчане. Вот и подоспел перевод второй части статьи, подготовленной специально для студентов курса «Разработчик на Spring Framework». Первую часть можно прочитать тут.



Spring — пожалуй, одна из самых популярных платформ разработки на языке Java. Это мощный, но довольно сложный в освоении инструмент. Его базовые концепции довольно легко понять и усвоить, но для того чтобы стать опытным разработчиком на Spring, потребуются время и определенные усилия.

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

На тот случай, если вы не очень хорошо знакомы с платформой Spring Boot, но хотите поэкспериментировать с примерами, приведенными в статье, я создал GitHub-репозиторий с дополнительными материалами для этой статьи. Если в какой-то момент вы немного запутались, читая эту статью, я бы посоветовал вам создать клон этого репозитория и поэкспериментировать с кодом на своем компьютере.

Читать дальше →
Всего голосов 25: ↑20 и ↓5+15
Комментарии2

Новое в Hadoop: познакомимся с различными форматами файлов в Hadoop

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

Всем привет! Публикуем перевод статьи, подготовленный для студентов новой группы курса «Data Engineer». Если интересно узнать, как построить эффективную и масштабируемую систему обработки данных с минимальными затратами, посмотрите запись мастер-класса Егора Матешука!



Несколько недель назад я написал о Hadoop статью, где осветил различные его
части и разобрался в том, какую роль он играет в области data engineering. В этой статье я
дам краткое описание различных файловых форматов в Hadoop. Это быстрая и легкая
тема. Если вы пытаетесь понять, как работает Hadoop и какое место он занимает в работе
Data Engineer, ознакомьтесь с моей статье о Hadoop здесь.

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

Как работают поисковые системы

Время на прочтение28 мин
Количество просмотров76K
Мы разбирали старые письма и наткнулись на статью, которую писал Илья Сегалович iseg для журнала «Мир Internet» в далёком 2002 году. В ней он сравнивает интернет и поисковые системы с чудесами света, размышляет о поисковых технологиях и вспоминает их историю. Несмотря на загруженность по работе, Илья написал статью в рекордные сроки и даже снабдил достаточно подробным словарём терминов, который особенно интересно читать в наши дни. Нам не удалось найти электронную версию журнала со статьей, поэтому сегодня мы публикуем её в нашем блоге, первым автором которого, к слову, был Илья.



Читать дальше →
Всего голосов 93: ↑91 и ↓2+89
Комментарии13

Зарабатываем на солнечной энергии или пассивный доход в 25% годовых, практический опыт. Часть 1

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

КДВП © Diana, made by Siuzanna

Постараюсь поделиться полученным опытом (почти) самостоятельной постройки и эксплуатации ряда своих домашних солнечных станций (дСЭС) под Зеленый тариф (ЗТ) в Украине и что из этого вышло.

Видеоверсия

Написание статьи планировалось весной 2019, но в связи с рядом законодательных инициатив, она неоднократно была отложена. Теперь все законы (очень надеюсь) окончательно приняты, и можно продолжать, ну или начинать. Для постройки и получения высокого тарифа в этом году у Вас почти не осталось времени. И Вы уже должны стоять с заявлением на поднятие мощности до 30кВт. Все остальное вы успеете. Конечно, если хотите на этом заработать, о чем далее.
Читать дальше →
Всего голосов 92: ↑83 и ↓9+74
Комментарии316

Как дебажить переменные окружения в Linux

Время на прочтение4 мин
Количество просмотров28K
Часто бывает так, что приходишь на машину и обнаруживаешь какой-то скрипт, запущенный под системным пользователем неделю назад. Кто его запустил? Где искать этот run.php? Или добавляешь запись в /etc/crontab, а скрипт там падает с ошибкой «command not found». Почему? И что делать? 

У меня есть ответы на эти вопросы.

Читать дальше →
Всего голосов 88: ↑86 и ↓2+84
Комментарии22

Компьютерное зрение видит эмоции, пульс, дыхание и ложь — но как построить на этом стартап. Разговор с Neurodata Lab

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


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

В начале месяца мы посетили офис Neurodata Lab. Основное направление для компании — распознавание человеческих эмоций. Мы постарались выяснить как это делается и зачем нужно.

Neurodata Lab получила на «Моём круге» среднюю оценку 4,6 и среднюю рекомендацию 95% от своих сотрудников, которые выше всего оценили такие критерии, как профессиональный рост, интересные задачи, хорошие отношения с коллегами и то, что компания делает мир лучше.
Читать дальше →
Всего голосов 32: ↑28 и ↓4+24
Комментарии28

Spring AOP. Маленький вопросик с собеседования

Время на прочтение20 мин
Количество просмотров123K
Довелось мне тут на днях побывать на очередном собеседовании. И задали мне там вот такой вот вопрос. Что на самом деле выполнится (с точки зрения транзакций), если вызвать method1()?

public class MyServiceImpl {
  
  @Transactional
  public void method1() {
    //do something
    method2();
  }

  @Transactional (propagation=Propagation.REQUIRES_NEW)
  public void method2() {
    //do something
  }
}

Ну, мы же все умные, документацию читаем или, по крайней мере, видео выступлений Евгения Борисова смотрим. Соответственно и правильный* ответ знаем (правильный* — это такой, который от нас ожидает услышать тот, кто спрашивает). И звучать он должен примерно так.

«В связи с тем, что для поддержки транзакций через аннотации используется Spring AOP, в момент вызова method1() на самом деле вызывается метод прокси объекта. Создается новая транзакция и далее происходит вызов method1() класса MyServiceImpl. А когда из method1() вызовем method2(), обращения к прокси нет, вызывается уже сразу метод нашего класса и, соответственно, никаких новых транзакций создаваться не будет».

Но знаете, как это бывает, вроде и ответ правильный уже давно знаешь. И применяешь это знание регулярно. А вдруг раз… и неожиданно задумаешься: «Подождите-ка, ведь если мы используем Spring AOP, то там могут создаваться прокси и через JDK, а могут и с CGLIB; а еще возможно, что CTW или LTW подключили. И что такой ответ всегда будет верен?».

Ну что ж: интересно? Надо проверить.
Читать дальше →
Всего голосов 24: ↑23 и ↓1+22
Комментарии16

Apache Kafka – мой конспект

Время на прочтение9 мин
Количество просмотров326K
Это мой конспект, в котором коротко и по сути затрону такие понятия Kafka как:

— Тема (Topic)
— Подписчики (consumer)
— Издатель (producer)
— Группа (group), раздел (partition)
— Потоки (streams)

Kafka — основное


При изучении Kafka возникали вопросы, ответы на которые мне приходилось эксперементально получать на примерах, вот это и изложено в этом конспекте. Как стартовать и с чего начать я дам одну из ссылок ниже в материалах.

Apache Kafka – диспетчер сообщений на Java платформе. В Kafka есть тема сообщения в которую издатели пишут сообщения и есть подписчики в темах, которые читают эти сообщения, все сообщения в процессе диспетчеризации пишутся на диск и не зависит от потребителей.
Читать дальше →
Всего голосов 16: ↑15 и ↓1+14
Комментарии10

Коллекции в Java: о чём многие забывают

Время на прочтение6 мин
Количество просмотров141K
Из опыта code-review и ответов на StackOverflow набралось немало моментов, касающихся Java Collections API, которые мне казались очевидными, но другие разработчики о них почему-то не знали или знали, но не чувствовали уверенности их применять. В этой статье я собираю в общую кучу всё, что накопилось.

Содержание:


  1. List.subList
  2. PriorityQueue
  3. EnumSet и EnumMap
  4. Set.add(E) и Set.remove(E) возвращают булево значение
  5. Map.put(K, V), Map.remove(K), List.set(idx, E), List.remove(idx) возвращают предыдущий элемент
  6. Map.keySet() и Map.values()
  7. Arrays.asList может быть ключом
  8. Collections.max
  9. LinkedList, Stack, Vector, Hashtable
Читать дальше →
Всего голосов 58: ↑57 и ↓1+56
Комментарии37

Простое объяснение принципов SOLID

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


Принципы SOLID — это стандарт программирования, который все разработчики должны хорошо понимать, чтобы избегать создания плохой архитектуры. Этот стандарт широко используется в ООП. Если применять его правильно, он делает код более расширяемым, логичным и читабельным. Когда разработчик создаёт приложение, руководствуясь плохой архитектурой, код получается негибким, даже небольшие изменения в нём могут привести к багам. Поэтому нужно следовать принципам SOLID.

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

Чтобы понять принципы SOLID, нужно чётко понимать, как использовать интерфейсы. Если у вас такого понимания нет, то сначала почитайте документацию.

Я буду объяснять SOLID самым простым способом, так что новичкам легче будет разобраться. Будем рассматривать принципы один за другим.
Читать дальше →
Всего голосов 46: ↑38 и ↓8+30
Комментарии201

Как защитить активы на бирже: 6 стратегий защиты инвестиций

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


Изображение: Unsplash

Ключ к долгосрочному успеху при биржевых инвестициях в сохранении каптиала. Одно из главных правил знаменитого инвестора Уоррена Баффета звучит так – никогда не теряйте деньги.

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

Редакция портала Investopedia опубликовала материал с описанием шести популярных стратегий защиты активов при торговле на бирже. Мы подготовили его адаптированную версию.
Всего голосов 29: ↑25 и ↓4+21
Комментарии36

Онлайн сервис «Анализ скорости при ДТП по видеозаписи»

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

В тестовой версии заработал онлайн сервис, который показывает текущую скорость интересующих нас объектов (автомобилей и других средств передвижения) по записям с видеокамер на перекрестках.
Читать дальше →
Всего голосов 78: ↑78 и ↓0+78
Комментарии89

Firefox(уже исправлено) и Chrome позволяют использовать заголовок Alt-Svc для сканирования портов внутренней сети

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

UPDATE: в актуальном Firefox 68 уязвимость уже исправлена(спасибо Dukat).


Тришта Тивари(Trishita Tiwari) и Ари Трахтенберг(Ari Trachtenberg) из Бостонского университета опубликовали работу, показывающую новый метод атаки для сканирования портов на хостах внутренней сети пользователя или на локальном хосте(CVE-2019-11728). Атака осуществляется с помощью HTTP заголовка Alt-Svc, введённого в RFC-7838 HTTP Alternate Services(утверждён в 2016 году).


HTTP заголовок Alt-Svc позволяет перенаправить запрос на новый хост и порт. Это используется для балансировки нагрузки.

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

Технические детали взлома банка Capital One на AWS

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


19 июля 2019 года банк Capital One получил сообщение, которого боится каждая современная компания — произошла утечка данных. Она затронула более 106 миллионов человек. 140 000 номеров социального страхования США, один миллион номеров социального страхования Канады. 80 000 банковских счетов. Неприятно, согласитесь?

К сожалению, взлом произошёл совсем не 19 июля. Как выяснилось, Пейдж Томпсон, она же Erratic, совершила его между 22 марта и 23 марта 2019 года. То есть почти четыре месяца назад. На самом деле, только с помощью внешних консультантов Capital One сумела узнать, что нечто произошло.
Читать дальше →
Всего голосов 26: ↑25 и ↓1+24
Комментарии25

Введение в Redis с использованием Spring Boot

Время на прочтение7 мин
Количество просмотров59K
Перевод статьи подготовлен специально для студентов курса «Разработчик на Spring Framework».



В этой статье мы рассмотрим основы использования Redis через Spring Boot с помощью библиотеки Spring Data Redis.



Мы создадим приложение, которое демонстрирует, как выполнять CRUD-операции через веб-интерфейс. Исходный код этого проекта доступен на GitHub.

Что такое Redis?


Redis — это хранилище данных с открытым исходным кодом, для структур данных «ключ-значение», которое можно использовать в качестве базы данных, кэша и брокера сообщений. С точки зрения реализации, хранилища «ключ-значение» являются одними из самых больших и старых представителей в мире NoSQL. Redis поддерживает такие структуры данных, как строки, хэши, списки, множества и отсортированные множества с запросами диапазонов.
Читать дальше →
Всего голосов 36: ↑29 и ↓7+22
Комментарии4
1

Информация

В рейтинге
Не участвует
Откуда
Минск, Минская обл., Беларусь
Зарегистрирован
Активность