Pull to refresh
0
Allexandr Anastasiev @Anasissread⁠-⁠only

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

Send message

Еще один путь снизить боль при работе с Java проектами и их документированием

Level of difficultyEasy
Reading time11 min
Views8.2K

За время карьеры, чаще всего сталкивался с ситуацией, когда получаешь проект в котором непонятно где «вход», где «выход» и один только вопрос — «куда ткнуть?!». Товарищи, давшие проект, говорят, что «это делал Вася, но он уже уволился, а на звонки не отвечает и никто не знает что к чему». Знакомая ситуация? Так же много раз после перебросок между многочисленными проектами, бывало встречалась ситуацию, когда смотришь непонимающе на код, а в коммитах автором видишь своё имя, но уже не помнишь вообще что к чему и как писал. Знакомо? В какой то момент меня стала доставать такая ситуация и я сделал себе небольшую автоматизацию, что бы снизить количество проблем и ненужных нагрузок на мозг, это — карта проекта.

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

Проверенные решения пяти проблем автоматизации тестирования

Reading time12 min
Views4K

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

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

Ускоряем приложение: никаких фреймворков — только математика

Level of difficultyMedium
Reading time9 min
Views15K

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

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

Читать далее
Total votes 40: ↑36 and ↓4+32
Comments11

Как за полчаса написать простую читалку книг FB2 для десктопа на Java

Level of difficultyEasy
Reading time13 min
Views17K

Недавно мне для личных целей понадобилось написать читалку FB2. И сразу я столкнулась с тем, что информации по теме минимум. Палочка-выручалочка под названием ChatGPT выдал что-то невразумительное в ответ на довольно подробный запрос. К тому же, никаких готовых библиотек, чтобы по-быстренькому наваять ридер, я также не смогла обнаружить. Хотя искала долго и упорно, как Чубакка расческу.

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

А раз все так просто, зачем я пишу эту статью? Для этого у меня есть две причины. Во-первых, это моя первая проба пера на Хабре. А во-вторых, возможно, это сэкономит кучу времени другому такому же новичку, как я. Ну, или пригодится какому-нибудь студенту, который пишет реферат.

Читать далее
Total votes 23: ↑18 and ↓5+13
Comments69

Формулируем и описываем ценность продукта по пошаговому алгоритму и без магии

Reading time11 min
Views8.2K

Если мы задумали бизнес, то хотим, чтобы наш продукт покупали. Да и от продаж результатов пет-проекта отказываться тоже не будем. А когда люди покупают? Когда видят ценность для себя. А как эту ценность сформулировать? Причем желательно не в мире наших фантазий, а в мире реальных потребностей людей? Ответ — в двух словах: «ценностное предложение».

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

Моя специализация — разработка ценностных предложений, поэтому я смог на десятках проектов использовать разные методики. По опыту стало понятно: в любом фреймворке есть «узкие» места, где легко ошибиться, при этом корни проблемы вовсе не в самих методиках, а в опыте людей, их применяющих.

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

Откуда есть пошла аналитика и что отличает DS, DA, BA и SA

Level of difficultyEasy
Reading time18 min
Views29K

Каждому из нас приходится принимать решения и иметь дело с их последствиями. Если речь идёт о бизнесе, то верный выбор может принести кругленькую сумму денег, а неверный — стоить целого состояния. Неудивительно, что сейчас в моде data-driven-подход, при котором каждое бизнес-решение принимается на основе объективных данных. Преобразованием данных в решения занимаются аналитики: финансовые, инвестиционные, продуктовые, аналитики рисков — им нет числа, как и строкам в их таблицах.

Разновидностей аналитиков стало уже так много, что в них немудрено и запутаться. Под катом мы разберём, кто такие аналитики данных, системные аналитики, бизнес-аналитики и дата-сайентисты: чем они отличаются, что у них общего, какие навыки нужны, чтобы стать одним из них. А заодно — вспомним первопроходцев, выдающихся аналитиков прошлого и над какими задачами они работали.

Читать далее
Total votes 25: ↑23 and ↓2+21
Comments6

«В идеале мы хотели бы вообще заменить Spring на Micronaut» — интервью с Грэмом Роше о перспективах развития Micronaut

Reading time20 min
Views14K


Micronaut ворвался в нашу жизнь внезапно, без стука и без объявления войны. О нем пишут новости и читают доклады, и вряд ли найдется джавист, который ни разу не слышал это слово. Micronaut — это современный фреймворк для JVM для написания модульных микросервисов и serverless-приложений, использующий для этого фичи GraalVM.


В свою очередь, Grails — это фреймворк, который появился ещё в 2005 году и с тех пор непрерывно улучшается. В 2015 году Grails 3 переехал на SpringBoot, а версия 4.0.0 появилась в июле прошлого года. У Grails сохраняется своя аудитория, для которой он очень хорошо подходит и решает вполне конкретные проблемы.


Грэм Роше создал оба этих фреймворка. Мы пригласили Грэма в нашу виртуальную студию, чтобы обсудить, зачем было изобретать велосипеды и городить костыли, не закопать ли Grails и Spring Boot, как поддерживать Jakarta EE и не сломаться, что будет в Micronaut 2, стоит ли писать Micronaut поверх Micronaut и когда уже Java наконец помрёт.

Читать дальше →
Total votes 28: ↑27 and ↓1+26
Comments25

Автономная кроссплатформенная монолитная программа на Java

Reading time21 min
Views62K
Я люблю desktop-приложения. Признаваться в этом нынче, похоже, стыднее, чем в связях с иностранной разведкой, но это так. Нет, это не значит, что я не люблю интернет-технологии. Более того, некоторые я не только уважаю, а даже более-менее знаю. Но, тем не менее, я скучаю по тем временам, когда программа писалась на одном компьютере, потом компилировалась и запускалась на других, разных компьютерах. Тогда везде (почти) была одна система — Windows с одной и той же API, почти не было проблем совместимости на уровне приложений, никто не материл разработчиков браузеров — все берегли нервы на разработчиков WinAPI, которые умудрялись создавать конфликты даже внутри нее одной. Но это я, конечно, иронизирую, а если серьезно — иногда и сейчас хочется написать просто desktop-приложение, да так, чтобы работало оно на всех популярных системах. Трудно? Если подумать и покопать, то не очень.

Еще я люблю языки высокого уровня с аккуратной архитектурой и строгой типизацией. Мои фавориты — Java и C#. Оба они предоставляют разработчику множество преимуществ по сравнению с C++, оба избавляют от ряда забот. Чем приходится платить? Тем, что таскаешь за собой тяжелую колоду, которая называется Oracle JVM, .NET или mono. Все три колоды весят сотни мегабайт и лицензию имеют такую, что каждый пользователь вынужден качать эту штуку сам, не путая при этом разрядность своего компьютера, а главное — программа на Java не может быть совместима со всеми версиями JVM разом, не так ли? И вот — мы приходим к тому, что просто скинуть программку другу (или миллиону друзей) и не заботиться о том, что она у него не запустится, не выходит. Приходится делать хитрые сетапы, вбивать костыли, и это я еще не упомянул .NET — однажды я видел у друга сразу 3 установленных версии, причем все три были нужны разным приложениям…

Стоп! А давайте напишем программу на Java, но так, чтобы она не требовала установки на машину какой-либо JVM, чтобы одним касанием собиралась под Windows, Linux и OS X и чтобы при этом занимала совсем чуть-чуть; так, чтобы никто даже не понял, что она написана, скажем, не на C. Невозможно? Совсем наоборот! (И нет, я имею в виду не gcj, который лишает Java всех ее прелестей. Рефлексия будет работать и даже сторонние jar вы сможете запускать).

Ну и как это сделать?
Total votes 156: ↑146 and ↓10+136
Comments80

Как написать простое консольное приложение с аргументами на Java

Level of difficultyEasy
Reading time4 min
Views5.8K

Пост про то, как начинающий программист разбирается с консольными утилитами, Java и args4j

У меня появилось задание написать консольное приложение , которое должно разделять и соединять текстовые файлы...

Читать далее
Total votes 11: ↑4 and ↓7-3
Comments6

Пять причин, по которым вам нужны синтетические данные

Reading time6 min
Views2.4K
Сбор и разметка данных в реальном мире может быть длительным и дорогостоящим занятием. Кроме того, у этих данных могут быть проблемы с качеством, разнообразием и количеством. К счастью, подобные проблемы можно решать при помощи синтетических данных.


Для обучения модели машинного обучения нужны данные. Задачи data science обычно непохожи на соревнования Kaggle, где у вас есть отличный крупный датасет с готовой разметкой. Иногда приходится собирать, упорядочивать и очищать данные самостоятельно. Такой процесс сбора и разметки данных в реальном мире может быть долгим, неудобным, неточным, а иногда и опасным. Более того, в конце этого процесса может оказаться, что полученные в реальном мире данные не соответствуют вашим требованиям с точки зрения качества, разнообразия (например, дисбаланс классов) и количества.
Читать дальше →
Total votes 3: ↑3 and ↓0+3
Comments2

Как самостоятельно прокачивать английский

Level of difficultyMedium
Reading time8 min
Views29K

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

Читать далее
Total votes 21: ↑18 and ↓3+15
Comments68

Выгорание программиста. Интересная работа — самая опасная

Level of difficultyEasy
Reading time7 min
Views27K

Среди айтишников мало жизнерадостных людей… Скорее наоборот, многие выглядят несчастными, а если провести анкетирование, то 83% проявляют признаки выгорания, хотя до крайней степени истощения и цинизма ещё не дошли. Но постоянная когнитивная нагрузка и хронический стресс ведут к закономерному результату:

  • выгорание,
  • физическая деградация,
  • депрессия,
  • ранний уход из профессии.

Все эти последствия хорошо предсказуемы. Поэтому их можно предотвратить.
Читать дальше →
Total votes 83: ↑77 and ↓6+71
Comments173

Как новичку подарить жизнь telegram-боту на java

Level of difficultyMedium
Reading time5 min
Views8.1K

Мне 43 года и я профессиональный юрист. Неуемная интеллектуальная энергия и неудовлетворенность основной профессией 2,5 года назад привели меня в IT. Да-да, вот так – взрослая тетя с гуманитарным образованием решила попробовать себя на ниве программирования и замахнулась аж на такой язык как… JAVA!!!

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

Оглянувшись по сторонам и не встретив направленных на меня глаз я поняла – все эти глаза устремлены в гаджеты! Месседжеры и социальные сети правят умами. Значит, надо действовать через них.

И тут я вспомнила, что самый частый юридический вопрос, с которым ко мне обращаются друзья/знакомые – это просьба дать ту или иную форму документа (договора, расписки, заявления, доверенности и т.д.). Эврика! – нужна несложная мобильная программа с формами самых востребованных документов, чтобы их оставалось просто скачать и наполнить необходимыми сведениями. И тут самым коротким путем к конечному пользователю мне представился telegram-бот.

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

Читать далее
Total votes 20: ↑18 and ↓2+16
Comments9

Telegram-бот в качестве подарка

Reading time19 min
Views43K
Привет, Хабр! Сегодня я хочу рассказать о том, как писал Telegram-бота, да не простого, а подарочного. Прошу под кат тех, кому эта история кажется забавной, а также тех, кто пытается писать своих Telegram-ботов на Java. Возможно, мой небольшой опыт будет в чем-то полезен.
Читать дальше →
Total votes 24: ↑21 and ↓3+18
Comments13

Учимся правильно спать

Level of difficultyEasy
Reading time4 min
Views8K

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

приглашаю к прочтению.
Total votes 13: ↑10 and ↓3+7
Comments20

Как избегать конфликтов в общении

Level of difficultyMedium
Reading time9 min
Views4K

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

Читать далее
Total votes 11: ↑3 and ↓8-5
Comments10

Полезные и неизвестные библиотеки Java

Level of difficultyEasy
Reading time14 min
Views9.5K

Из этой статьи вы узнаете о некоторых не очень известных, но полезных библиотеках Java. Это вторая статья из серии «Полезное и неизвестное». Предыдущая описывала несколько привлекательных, но малоизвестных возможностей Java. Подробнее об этом можно прочитать здесь.

Сегодня мы сосредоточимся на библиотеках Java. Обычно мы используем в своих проектах несколько внешних библиотек — даже если не включаем их напрямую. Например, Spring Boot поставляется с определенным набором зависимостей, включенным стартерами. Если мы включаем, например, spring-boot-starter-test, то одновременно мы включаем такие библиотеки, как mockito, junit-jupiter или hamcrest. Конечно, это известные библиотеки для сообщества.

На самом деле существует множество различных Java‑библиотек. Обычно мне не нужно использовать многие из них (или даже они мне не нужны) при работе с такими фреймворками, как Spring Boot или Quarkus.

Однако есть несколько очень интересных библиотек, которые могут пригодиться везде. Возможно, вы не слышали ни об одной из них. Я собираюсь представить 5 моих любимых «полезных и неизвестных» Java‑библиотек. Давай начнем!

Читать далее
Total votes 12: ↑9 and ↓3+6
Comments4

Основы Ansible, без которых ваши плейбуки — комок слипшихся макарон, часть 2

Reading time17 min
Views59K

Я продолжаю выразительно пересказывать документацию Ансибла и разбирать последствия её незнания (ссылка на предыдущую часть).


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


Мы будем разбирать каждый элемент инвентори (кроме host_group_vars plugin) и обсуждать зачем он, как его использовать правильно, и как неправильно.


Оглавление:


  • Что такое хост? (и немного про транспорты)
  • Доступ IP vs FQDN; inventory_hostname vs ansible_host
  • ansible_user — писать или не писать?
  • Группы
  • Переменные: в инвентори или в плейбуку?
  • Классификация инвентори по происхождению.
Читать дальше →
Total votes 35: ↑34 and ↓1+33
Comments15

Генеральный конструктор vs Скрам-мастер

Reading time5 min
Views40K
image

«Каспийский монстр» — советский экраноплан, который весил 544 тонны, что делало его самым тяжелым летательным аппаратом в мире. Сделан с нуля за два года. Думай об этом, закачивая лэндинг по продаже трусов «всего» за полгода.

Я бы хотел рассказать о некоторых приемах древнего(доскрамового периода) менеджмента, которые позволяли добиваться таких результатов. Поднять в воздух на новом принципе железную бандуру размером с хрущевку и разогнать ее до пятисот киломtnров в час, по мне — это более творческая и технически сложная задача, чем открытие очередного интернет магазина, поэтому возможно стоит перенять опыт предков.
Читать дальше →
Total votes 157: ↑136 and ↓21+115
Comments209

Big Data головного мозга

Reading time14 min
Views93K

Наверно, в мире данных нет подобного феномена настолько неоднозначного понимания того, что же такое Hadoop. Ни один подобный продукт не окутан таким большим количеством мифов, легенд, а главное непонимания со стороны пользователей. Не менее загадочным и противоречивым является термин "Big Data", который иногда хочется писать желтым шрифтом(спасибо маркетологам), а произносить с особым пафосом. Об этих двух понятиях — Hadoop и Big Data я бы хотел поделиться с сообществом, а возможно и развести небольшой холивар.
Возможно статья кого-то обидит, кого-то улыбнет, но я надеюсь, что не оставит никого равнодушным.


image
Демонстрация Hadoop пользователям

Читать дальше →
Total votes 41: ↑38 and ↓3+35
Comments75
1

Information

Rating
Does not participate
Location
Кишинев, Молдова, Молдова
Date of birth
Registered
Activity