За время карьеры, чаще всего сталкивался с ситуацией, когда получаешь проект в котором непонятно где «вход», где «выход» и один только вопрос — «куда ткнуть?!». Товарищи, давшие проект, говорят, что «это делал Вася, но он уже уволился, а на звонки не отвечает и никто не знает что к чему». Знакомая ситуация? Так же много раз после перебросок между многочисленными проектами, бывало встречалась ситуацию, когда смотришь непонимающе на код, а в коммитах автором видишь своё имя, но уже не помнишь вообще что к чему и как писал. Знакомо? В какой то момент меня стала доставать такая ситуация и я сделал себе небольшую автоматизацию, что бы снизить количество проблем и ненужных нагрузок на мозг, это — карта проекта.
Пользователь
Проверенные решения пяти проблем автоматизации тестирования
В этой статье рассмотрим пять типичных проблем, которые часто мешают командам автоматизировать процесс тестирования. Эти проблемы можно решить с помощью имитирования API и сервисов.
Ускоряем приложение: никаких фреймворков — только математика
Представьте, что вам нужно ускорить работу огромной легаси-системы с 50 микросервисами, нагрузка на которую выросла в 2000 раз. При этом она обрабатывает затратные по времени операции, которые зависят друг от друга в плане данных.
Первыми на ум приходят стандартные подходы к оптимизации, например внедрить кэширование или улучшить работу с базой. Но я расскажу вам про более необычный, математический способ — алгоритм сетевого планирования. Он помогает составлять технологические карты и находить узкие места в процессах с высокой степенью параллелизма.
Как за полчаса написать простую читалку книг FB2 для десктопа на Java
Недавно мне для личных целей понадобилось написать читалку FB2. И сразу я столкнулась с тем, что информации по теме минимум. Палочка-выручалочка под названием ChatGPT выдал что-то невразумительное в ответ на довольно подробный запрос. К тому же, никаких готовых библиотек, чтобы по-быстренькому наваять ридер, я также не смогла обнаружить. Хотя искала долго и упорно, как Чубакка расческу.
Все это привело меня к закономерному выводу, что сначала нужно изучить формат FB2. А потом подумать, как прочитать его стандартными способами и вывести на экран. После того, как я немного разобралась со структурой FB2, начала догадываться, почему нет готовых библиотек. Дело в том, что этот формат довольно простой, и нет особой необходимости писать для него отдельную библиотеку. Можно довольно быстро наваять свой код, который будет читать практически все файлы FB2. И вы сможете убедиться в этом, если дочитаете статью до конца.
А раз все так просто, зачем я пишу эту статью? Для этого у меня есть две причины. Во-первых, это моя первая проба пера на Хабре. А во-вторых, возможно, это сэкономит кучу времени другому такому же новичку, как я. Ну, или пригодится какому-нибудь студенту, который пишет реферат.
Формулируем и описываем ценность продукта по пошаговому алгоритму и без магии
Если мы задумали бизнес, то хотим, чтобы наш продукт покупали. Да и от продаж результатов пет-проекта отказываться тоже не будем. А когда люди покупают? Когда видят ценность для себя. А как эту ценность сформулировать? Причем желательно не в мире наших фантазий, а в мире реальных потребностей людей? Ответ — в двух словах: «ценностное предложение».
Без опыта (а, как правило, такого опыта нет) разработать ценностное предложение с нуля довольно сложно, поэтому и существуют упрощающие эту задачу методики и фреймворки.
Моя специализация — разработка ценностных предложений, поэтому я смог на десятках проектов использовать разные методики. По опыту стало понятно: в любом фреймворке есть «узкие» места, где легко ошибиться, при этом корни проблемы вовсе не в самих методиках, а в опыте людей, их применяющих.
Откуда есть пошла аналитика и что отличает DS, DA, BA и SA
Каждому из нас приходится принимать решения и иметь дело с их последствиями. Если речь идёт о бизнесе, то верный выбор может принести кругленькую сумму денег, а неверный — стоить целого состояния. Неудивительно, что сейчас в моде data-driven-подход, при котором каждое бизнес-решение принимается на основе объективных данных. Преобразованием данных в решения занимаются аналитики: финансовые, инвестиционные, продуктовые, аналитики рисков — им нет числа, как и строкам в их таблицах.
Разновидностей аналитиков стало уже так много, что в них немудрено и запутаться. Под катом мы разберём, кто такие аналитики данных, системные аналитики, бизнес-аналитики и дата-сайентисты: чем они отличаются, что у них общего, какие навыки нужны, чтобы стать одним из них. А заодно — вспомним первопроходцев, выдающихся аналитиков прошлого и над какими задачами они работали.
«В идеале мы хотели бы вообще заменить Spring на Micronaut» — интервью с Грэмом Роше о перспективах развития Micronaut
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 наконец помрёт.
Автономная кроссплатформенная монолитная программа на Java
Еще я люблю языки высокого уровня с аккуратной архитектурой и строгой типизацией. Мои фавориты — Java и C#. Оба они предоставляют разработчику множество преимуществ по сравнению с C++, оба избавляют от ряда забот. Чем приходится платить? Тем, что таскаешь за собой тяжелую колоду, которая называется Oracle JVM, .NET или mono. Все три колоды весят сотни мегабайт и лицензию имеют такую, что каждый пользователь вынужден качать эту штуку сам, не путая при этом разрядность своего компьютера, а главное — программа на Java не может быть совместима со всеми версиями JVM разом, не так ли? И вот — мы приходим к тому, что просто скинуть программку другу (или миллиону друзей) и не заботиться о том, что она у него не запустится, не выходит. Приходится делать хитрые сетапы, вбивать костыли, и это я еще не упомянул .NET — однажды я видел у друга сразу 3 установленных версии, причем все три были нужны разным приложениям…
Стоп! А давайте напишем программу на Java, но так, чтобы она не требовала установки на машину какой-либо JVM, чтобы одним касанием собиралась под Windows, Linux и OS X и чтобы при этом занимала совсем чуть-чуть; так, чтобы никто даже не понял, что она написана, скажем, не на C. Невозможно? Совсем наоборот! (И нет, я имею в виду не gcj, который лишает Java всех ее прелестей. Рефлексия будет работать и даже сторонние jar вы сможете запускать).
Как написать простое консольное приложение с аргументами на Java
Пост про то, как начинающий программист разбирается с консольными утилитами, Java и args4j
У меня появилось задание написать консольное приложение , которое должно разделять и соединять текстовые файлы...
Пять причин, по которым вам нужны синтетические данные
Для обучения модели машинного обучения нужны данные. Задачи data science обычно непохожи на соревнования Kaggle, где у вас есть отличный крупный датасет с готовой разметкой. Иногда приходится собирать, упорядочивать и очищать данные самостоятельно. Такой процесс сбора и разметки данных в реальном мире может быть долгим, неудобным, неточным, а иногда и опасным. Более того, в конце этого процесса может оказаться, что полученные в реальном мире данные не соответствуют вашим требованиям с точки зрения качества, разнообразия (например, дисбаланс классов) и количества.
Как самостоятельно прокачивать английский
Как я сам себе организовал процесс повышения уровня английского языка. Что хорошо работало для меня, а что лучше не делать. На преподавателей надейся, но сам не плошай.
Выгорание программиста. Интересная работа — самая опасная
Среди айтишников мало жизнерадостных людей… Скорее наоборот, многие выглядят несчастными, а если провести анкетирование, то 83% проявляют признаки выгорания, хотя до крайней степени истощения и цинизма ещё не дошли. Но постоянная когнитивная нагрузка и хронический стресс ведут к закономерному результату:
- выгорание,
- физическая деградация,
- депрессия,
- ранний уход из профессии.
Все эти последствия хорошо предсказуемы. Поэтому их можно предотвратить.
Как новичку подарить жизнь telegram-боту на java
Мне 43 года и я профессиональный юрист. Неуемная интеллектуальная энергия и неудовлетворенность основной профессией 2,5 года назад привели меня в IT. Да-да, вот так – взрослая тетя с гуманитарным образованием решила попробовать себя на ниве программирования и замахнулась аж на такой язык как… JAVA!!!
Замахнулась, переквалифицировалась на дистанционных курсах одного крупного рогатого скота образовательного ресурса и, поскольку прагматичная жажда наживы необходимость зарабатывать на кусок хлеба с маслом здесь и сейчас не дает ей возможности оставить основное место работы и уйти на неведомые просторы для it-специалиста, решила совместить опыт юриста и знания java-разработчика.
Оглянувшись по сторонам и не встретив направленных на меня глаз я поняла – все эти глаза устремлены в гаджеты! Месседжеры и социальные сети правят умами. Значит, надо действовать через них.
И тут я вспомнила, что самый частый юридический вопрос, с которым ко мне обращаются друзья/знакомые – это просьба дать ту или иную форму документа (договора, расписки, заявления, доверенности и т.д.). Эврика! – нужна несложная мобильная программа с формами самых востребованных документов, чтобы их оставалось просто скачать и наполнить необходимыми сведениями. И тут самым коротким путем к конечному пользователю мне представился telegram-бот.
Поскольку на курсах таким тонкостям не учили, вооружившись статьями и видеороликами из всемирной паутины, закатав рукава я принялась создавать свою первую «взрослую» программу-помощника человечеству!
Telegram-бот в качестве подарка
Учимся правильно спать
Если вам кажется, что сон — не самое важное для продуктивной работы в течение дня (и даже недели), поздравляю, значит у вас нет проблем с недосыпанием. Всех остальных приглашаю к прочтению.
Как избегать конфликтов в общении
Общение является ключевым элементом взаимодействия между людьми. Каким бы ни был ваш опыт в общении, иногда может возникать необходимость улучшить свои навыки, чтобы избегать конфликтов и более продуктивно решать возникающие проблемы. В этой статье я приведу механику возникновения конфликтов при общении, а также расскажу, что делать, чтобы их избегать.
Полезные и неизвестные библиотеки Java
Из этой статьи вы узнаете о некоторых не очень известных, но полезных библиотеках Java. Это вторая статья из серии «Полезное и неизвестное». Предыдущая описывала несколько привлекательных, но малоизвестных возможностей Java. Подробнее об этом можно прочитать здесь.
Сегодня мы сосредоточимся на библиотеках Java. Обычно мы используем в своих проектах несколько внешних библиотек — даже если не включаем их напрямую. Например, Spring Boot поставляется с определенным набором зависимостей, включенным стартерами. Если мы включаем, например, spring-boot-starter-test
, то одновременно мы включаем такие библиотеки, как mockito
, junit-jupiter
или hamcrest
. Конечно, это известные библиотеки для сообщества.
На самом деле существует множество различных Java‑библиотек. Обычно мне не нужно использовать многие из них (или даже они мне не нужны) при работе с такими фреймворками, как Spring Boot или Quarkus.
Однако есть несколько очень интересных библиотек, которые могут пригодиться везде. Возможно, вы не слышали ни об одной из них. Я собираюсь представить 5 моих любимых «полезных и неизвестных» Java‑библиотек. Давай начнем!
Основы Ansible, без которых ваши плейбуки — комок слипшихся макарон, часть 2
Я продолжаю выразительно пересказывать документацию Ансибла и разбирать последствия её незнания (ссылка на предыдущую часть).
В этой части мы обсуждаем инвентори. Я обещал ещё и переменные, но инвентори оказалась большой темой, так что посвящаем ей отдельную статью.
Мы будем разбирать каждый элемент инвентори (кроме host_group_vars plugin
) и обсуждать зачем он, как его использовать правильно, и как неправильно.
Оглавление:
- Что такое хост? (и немного про транспорты)
- Доступ IP vs FQDN;
inventory_hostname
vsansible_host
ansible_user
— писать или не писать?- Группы
- Переменные: в инвентори или в плейбуку?
- Классификация инвентори по происхождению.
Генеральный конструктор vs Скрам-мастер
«Каспийский монстр» — советский экраноплан, который весил 544 тонны, что делало его самым тяжелым летательным аппаратом в мире. Сделан с нуля за два года. Думай об этом, закачивая лэндинг по продаже трусов «всего» за полгода.
Я бы хотел рассказать о некоторых приемах древнего(доскрамового периода) менеджмента, которые позволяли добиваться таких результатов. Поднять в воздух на новом принципе железную бандуру размером с хрущевку и разогнать ее до пятисот киломtnров в час, по мне — это более творческая и технически сложная задача, чем открытие очередного интернет магазина, поэтому возможно стоит перенять опыт предков.
Big Data головного мозга
Наверно, в мире данных нет подобного феномена настолько неоднозначного понимания того, что же такое Hadoop. Ни один подобный продукт не окутан таким большим количеством мифов, легенд, а главное непонимания со стороны пользователей. Не менее загадочным и противоречивым является термин "Big Data", который иногда хочется писать желтым шрифтом(спасибо маркетологам), а произносить с особым пафосом. Об этих двух понятиях — Hadoop и Big Data я бы хотел поделиться с сообществом, а возможно и развести небольшой холивар.
Возможно статья кого-то обидит, кого-то улыбнет, но я надеюсь, что не оставит никого равнодушным.
Демонстрация Hadoop пользователям
Information
- Rating
- Does not participate
- Location
- Кишинев, Молдова, Молдова
- Date of birth
- Registered
- Activity