Обновить
128K+

Java *

Объектно-ориентированный язык программирования

243,99
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Как предотвратить перерасход памяти при использовании Java-коллекций

Время на прочтение7 мин
Охват и читатели14K
Всем привет!

Наш эксперимент со ступенями по курсу «Разработчик Java» продолжается и, как ни странно, даже вполне успешно (вроде): как оказалось, что плечо планирования в пару месяцев со следующим переходом на новую ступень в любое удобное время — это куда удобнее, чем если выделять практически полгода на такой сложный курс. Так что есть подозрение, что именно сложные курсы мы скоро начнём потихоньку переводить на такую систему.

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

Поехали!

Читать дальше →

История тестирования проекта «К»: Kotlin&Spek

Время на прочтение11 мин
Охват и читатели4.8K
Привет, Хабр!

В этой статье мы поговорим об автоматическом тестировании на одном из многочисленных проектов QIWI, получившим кодовое название «К».



Когда мы организовывали тестирование это проекта, то решили выбрать практичный и хайповый Kotlin, а также Spek, гласящий «Вы называете их тестами, мы называем их спецификациями» (You call them tests, we call them specifications). Возможно, такой подход подойдет и вам, если вы столкнетесь с похожими задачами.

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

Официальная документация говорит нам, что «Spek написан на Kotlin, и спецификации, которые вы пишете, будут написаны на Kotlin» – это очень ясно отвечает на вопрос: «Зачем это нужно?».

Итак…

Что это и зачем это нужно?

Читать дальше →

[Перевод] Как работает Graal — JIT-компилятор JVM на Java

Время на прочтение24 мин
Охват и читатели24K

Привет, Хабр! Представляю вашему вниманию перевод статьи "Understanding How Graal Works — a Java JIT Compiler Written in Java".


Введение


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


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

Читать дальше →

UI-автотесты: как делать не стоит

Время на прочтение11 мин
Охват и читатели83K
Здравствуй, Хабр. Меня зовут Виталий Котов, я работаю в отделе тестирования компании Badoo. Я пишу много UI-автотестов, но ещё больше работаю с теми, кто занимается этим не так давно и ещё не успел наступить на все грабли.

Итак, сложив свой собственный опыт и наблюдения за другими ребятами, я решил подготовить для вас коллекцию того, «как писать тесты не стоит». Каждый пример я подкрепил подробным описанием, примерами кода и скриншотами.

Статья будет интересна начинающим авторам UI-тестов, но и старожилы в этой теме наверняка узнают что-то новое, либо просто улыбнутся, вспомнив себя «в молодости». :)

Поехали!



Читать дальше →

Объяснение лямбда-выражений

Время на прочтение3 мин
Охват и читатели21K

Объяснение лямбда-выражений


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

Читать дальше →

Книга «Алгоритмы и структуры данных. Извлечение информации на языке Java»

Время на прочтение10 мин
Охват и читатели15K
image Привет, Хабр! Изучите, как следует реализовывать эффективные алгоритмы на основе важнейших структур данных на языке Java, а также как измерять производительность этих алгоритмов. Каждая глава сопровождается упражнениями, помогающими закрепить материал.

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

Интерфейсы командной строки Java: picocli

Время на прочтение6 мин
Охват и читатели11K
Всем привет!

Очередной старт группы «Разработчик Java», на котором мы всё продолжаем наш эксперимент того, что процесс обучения не обязан быть непрерывным («Контрамоция должна быть непрерывной?» ). То есть мы чуть переработали и перетасовали программу, и разбили её на три ступени, которые можно спокойно проходить с перерывом между ними. В общем интересно и для студентов, и для нас, лишь бы никто не расхолаживался, а то программа стала даже вроде чуть сложнее, хотя и была непростой до этого. Ну и традиционно интересная статья связанная с нашим курсом.

Поехали!

Читать дальше →

Как мы сделали мобильное приложение для шести стран

Время на прочтение4 мин
Охват и читатели4.3K
Флагманский проект ID Finance – это онлайн-сервис альтернативного кредитования MoneyMan. Он работает в семи странах – Польше, Испании, Мексике, Бразилии, Грузии, Казахстане и России. Когда мы только запускали его в России в 2015 г., мы не могли обойти стороной мобильные платформы: доля пользователей смартфонов среди россиян составляла 67% от общего числа пользователей мобильных телефонов. Как показало внутренне исследование, 80% клиентов пользовались смартфонами на платформе Android, выбор платформы для разработки первого приложения стал очевиден

image

Читать дальше →

Власть, деньги и open source. Рассказываем, как работает сообщество на примере Apache Ignite

Время на прочтение10 мин
Охват и читатели10K


На последней встрече сообщества Apache Ignite в Москве я рассказывал про:

  • Open source-сообщество;
  • Власть и деньги в open source;
  • Как стать контрибьютором и коммитером, и зачем это нужно.

Ограниченное время доклада не позволило привести больше примеров, поэтому расширенную версию выкладываю на Хабре. Всё изложенное основано на моем личном опыте и не является официальной позицией какой-либо компании или организации.
Читать дальше →

Чистая прагматичная архитектура. Мозговой штурм

Время на прочтение25 мин
Охват и читатели29K
Закрадывалась ли вам в голову идея переписать своё жирное энтерпрайзное приложение с нуля? Если с нуля, то это ж ого-го. Как минимум кода будет раза в два меньше, верно? Но ведь пройдёт пара лет, и оно тоже обрастёт, станет легаси… времени и денег на переписывание не так много, чтобы делать идеально.

Успокойтесь, начальство всё равно не даст ничего переписать. Остаётся рефакторить. На что лучше всего потратить свои невеликие ресурсы? Как именно рефакторить, где проводить чистки?

Название этой статьи — в том числе отсылка к книге Дяди Боба «Чистая Архитектура», а сделана она на основе замечательного доклада Victor Rentea (твиттер, сайт) на JPoint (под катом он начнёт говорить от первого лица, но пока дочитайте вводную). Чтения умных книжек эта статья не заменит, но для такого короткого описания изложено весьма хорошо.

Идея в том, что популярные в народе вещи вроде «Clean Architecture» действительно являются полезными. Сюрприз. Если нужно решить вполне конкретную задачу, простой изящный код не требует сверхусилий и оверинжиниринга. Чистая архитектура говорит, что нужно защищать свою доменную модель от внешних эффектов, и подсказывает, как именно это можно сделать. Эволюционный подход к наращиванию объема микросервисов. Тесты, которые делают рефакторинг менее страшным. Вы ведь уже знаете всё это? Или знаете, но боитесь даже подумать об этом, ведь это же ужас что тогда делать придётся?

Кто хочет получить волшебную анти-прокрастинационную таблетку, которая поможет перестать трястись и начать рефакторить — добро пожаловать на видеозапись доклада или под кат.



Читать дальше →

Реальный вклад в реальный Open Source

Время на прочтение2 мин
Охват и читатели6.3K
Недавний пост о том как мы в Сбербанк-Технологиях разрабатываем Open Source раскрыл множество интересных подробностей о подходах, стремлениях и идеологии.

Сегодня я хочу рассказать о том реальном вкладе, который наша команда вносит в Open Source.


Читать дальше →

[Анонс, Питер] Встреча JUG.ru с Андреем Беляевым и Алексеем Стукаловым —Тролль гнёт CUBA: F.A.Q

Время на прочтение2 мин
Охват и читатели1.7K

В четверг, 9 августа, в петербургском офисе компании Oracle пройдет встреча JUG.ru с Андреем Беляевым и Алексеем Стукаловым — инженерами самарской компании Haulmont. Тема встречи: F.A.Q. по CUBA.platform — высокоуровневой Java-платформе для создания корпоративных информационных систем.


CUBA Platform — Java-фреймворк с открытым исходным кодом для быстрой разработки корпоративных приложений, созданный самарской компанией Haulmont и используемый по всему миру.


Читать дальше →

InlineKeyboard в Телеграмм ботах (Telegram Bots)

Время на прочтение6 мин
Охват и читатели164K
InlineKeyboard — клавиатура привязанная к сообщению, изпользующая обратный вызов (CallbackQuery), вместо отправки сообщения с обыкновенной клавиатуры.
Читать дальше →

Ближайшие события

«Здесь нет начальника»: о работе с Open Source и Apache Ignite в Сбербанк-Технологиях

Время на прочтение14 мин
Охват и читатели14K
При словах «open source» многим представляются либо энтузиаст, коммитящий по вечерам в любимый проект, либо небольшая компания, зарабатывающая поддержкой открытого продукта. Но если задумываться только о них, то упустишь важный и интересный сегмент сообщества. Когда-то слова «энтерпрайз» и «open source» казались антонимами, а теперь крупные корпорации не только активно используют OSS-проекты, но и сами контрибьютят в них.

Сбертех со временем всё активнее проявляет себя в OSS-сообществе, и мы решили расспросить их об этом. Как сочетаются строгая банковская специфика с опенсорсным духом свободы? Какие возникают требования к Open Source, которых может не быть у других компаний? Есть ли в Сбертехе сотрудники, которые в качестве основных рабочих задач пишут открытый код? Каковы планы и желания на будущее?  Антон Чураев, курирующий направление Free&Open Source, рассказал нам обо всём этом и не только.


Читать дальше →

9 платных, условно-бесплатных и бесплатных программ для трекинга кода приложений

Время на прочтение9 мин
Охват и читатели21K
Трекинг кода must-have в среде разработки. Но вот насколько нужен этот же инструмент в продуктиве? Тот, кто лишь кропотливо собирает логи скажет «ну его нафиг, мой ELK меня не подводит» и будет по-своему прав. До поры до времени.


Протрейсить как следует

Асинхронное программирование на примерах: реконструкция методов java.util.concurrent.CompletableFuture

Время на прочтение7 мин
Охват и читатели20K

Для чего нужна реконструкция, если исходный код этого класса открыт?


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


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

Читать дальше →

OpenSource APM Pinpoint

Время на прочтение2 мин
Охват и читатели5.1K
continuous insights

Доброго вам.

Мониторинг производительности приложений (Application Performance Monitoring, APM) решает задачи контроля, управления доступностью и непосредственно производительностью приложений.
На страницах Хабра уже освещались свободные АРМ Glowroot и MoSKito, а вот Pinpoint остался в тени.
Читать дальше →

Книга «Элегантные объекты. Java Edition»

Время на прочтение21 мин
Охват и читатели47K
imageПривет, Хаброжители! Эта книга всерьез пересматривает суть и принципы объектно-ориентированного программирования (ООП) и может быть метафорически названа «ООП Лобачевского». Егор Бугаенко, разработчик с 20-летним стажем, критически анализирует догмы ООП и предлагает взглянуть на эту парадигму совершенно по-новому. Так, он клеймит статические методы, геттеры, сеттеры, изменяемые методы, считая, что это — зло. Для начинающего программиста этот томик может стать просветлением или шоком, а для опытного является обязательным чтением.

Отрывок «Не используйте статические методы»


Ах, статические методы… Одна из моих любимых тем. Мне понадобилось несколько лет, чтобы осознать, насколько важна эта проблема. Теперь я сожалею обо всем том времени, которое потратил на написание процедурного, а не объектно-ориентированного программного обеспечения. Я был слеп, но теперь прозрел. Статические методы — настолько же большая, если не еще большая проблема в ООП, чем наличие константы NULL. Статических методов в принципе не должно было быть в Java, да и в других объектно-ориентированных языках, но, увы, они там есть. Мы не должны знать о таких вещах, как ключевое слово static в Java, но, увы, вынуждены.. Я не знаю, кто именно привнес их в Java, но они — чистейшее зло.. Статические методы, а не авторы этой возможности. Я надеюсь.
Читать дальше →

Новости конференции MBLT DEV 2018: Android-трек

Время на прочтение2 мин
Охват и читатели1.5K
Привет, Хабр! Я — Михаил Баранников, Android Team Lead в e-Legion и участник Программного комитета MBLT DEV 2018. Пока вы наслаждаетесь отпуском или наличием кондиционера в офисе, мы отбираем доклады предстоящей конференции.

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


Введение в Micronaut Framework

Время на прочтение7 мин
Охват и читатели48K


1. Что такое Micronaut


Micronaut — это фреймворк на JVM для построения легковесных модульных приложений. Он разработан компанией OCI, той же компанией, что подарила нам Grails. Micronaut это современный фреймворк, призванный сделать создание микросервисных приложений быстрым и простым.

Micronaut содержит возможности похожие на существующие фреймворки, такие как Spring, но в то же время он реализует некоторые новые идеи, которые являются его отличительными чертами. Вместе с поддержкой Java, Groovy и Kotlin он предлагает множество путей создания приложений.
Читать дальше →