ru

статьи на русском языке

Коротко: Экстремальное программирование

Вступление. После прочтения книги Кент Бек «Экстремальное программирование» подытожу и напишу основные тезисы об этой методологии разработки. Принципы лежащие в основе методологии покажутся неновыми, так и есть, она не несет никаких волшебных пилюль. Основная идея заключается в грамотном использовании и комбинировании устоявшихся и проверенных приемов. Автор книги предлагает использовать эти методы доходя до крайностей, из за чего методология и обязана такому названию. Основные моменты. Команда не должна быть слишком большая, не более 10 человек. Увеличение численности происходит постепенно, по мере…

0
Read More

Коротко: Методология SCRUM

Вдохновленный прочтением «Scrum. Революционный метод управления проектами«, хочется немного подвести итоги и написать об основных моментах методологии scrum.

0
Read More

10 заповедей Zen программиста

1. Внимательность. Если вы работаете над решением задачи, делаете её хорошо,  на столько насколько вы можете. Не переключайтесь на другие вещи. Работайте только над чем то одним, в один момент времени. Вы не станете быстрее, если будете работать в многозадачном режиме. Если вы работаете над несколькими задачами, вы раньше устанете и сделаете больше ошибок и потратите больше времени на переключение между задачами. Это применимо к различным областям, не только к программированию. «Если вам нужен сон, спите» Кодо Саваки Не планируйте процесс разработки, когда…

0
Read More

Кидаем исключения типа Object

Всем известно, что кидать исключения можно только, если объект наследуется от класса java.lang.Throwable. Для этого предназначена инструкция байткода ATHROW. Мне стало интересно, осуществляется ли проверка типа после компиляции.Напишем небольшой метод, генерирующий нужный класс, с помощью библиотеки bcel.

0
Read More

Неочевидные оптимизации JIT

В данном посте, я расскажу про интересный случай возникший у меня работе. Есть следующий код: В методе проиcходит сериализация массива байт. Используется тот факт, что размер char в java — 16 бит, а размер byte (Внезапно 😱) — 8 бит. Но суть не в этом. Интересный момент здесь заключается в том, что метод работает гораздо медленее на массивах нечетной длины.

0
Read More

Что такое DevOps?

DevOps — термин обозначает группу идей, которые в большинстве своем не новы. Эти идеи уже повсеместно проникли и быстро распространились в техническом сообществе. Как и для любого нового и популярного термина, люди часто испытывают трудности и противоречивые чувства, когда пытаются понять что же это. Сейчас попробуем определить, чем DevOps может быть нам полезен. Определение DevOps — новое понятие, являющееся объединением двух последних значимых трендов. Первый, так называемый «Agile в системном администрировании«. Он поощряет применение практик Agile и Lean в области…

0
Read More

Collect своими руками

После выхода java 8 появилась возможность писать в pipeline стиле. Т.е. создавать последовательность операций которые будут обрабатывать элементы из некоторого источника, будь то коллекция, бесконечная и конечная генерирующая функция, строки из файла и пр. Это тема достаточно обширная и она не будет освещена в данном топике. Расскажу про collector’ы. Это такие объекты с помощью которых, можно привести результат обработки элементов к определенному виду. Существует несколько встроенных, в классе java.util.stream.Collectors. Например, там есть toList, он создает список из элементов потока. Есть…

0
Read More

Исправляем конфликт зависимостей

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

0
Read More

О строителях

Сегодня речь пойдет о шаблоне проектирования Builder, или же по русски, строитель. Начнем с определения и выясним для чего он нужен. Строитель относится к порождающим шаблонам, а значит, с его помощью создаются объекты. Он позволяет конструировать объект по частям. Приведу пример, как выглядит типичный Builder. Допустим у нас есть класс Person

0
Read More