Как стать автором
Обновить
1
@artemfisherread⁠-⁠only

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

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

Фундаментальное руководство по пакетам в Java

Уровень сложностиСредний
Время на прочтение23 мин
Количество просмотров30K

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

Java-пакеты реализуют так называемое пространство имен (namespace), позволяющее использовать в проекте файлы с одинаковыми именами. Такой подход существует с давних времен во многих языках.

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

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

Об этом и многом другом и пойдет речь в данной статье.

Читать далее
Всего голосов 10: ↑6 и ↓4+4
Комментарии11

Наполняем до краев: влияние порядка столбцов в таблицах на размеры баз данных PostgresQL

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров21K

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

И что же там прячется?
Всего голосов 49: ↑48 и ↓1+57
Комментарии19

Книга «Прикладные структуры данных и алгоритмы. Прокачиваем навыки»

Время на прочтение12 мин
Количество просмотров12K
image Привет, Хаброжители!

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

Книга полна реальных прикладных примеров на популярных языках программирования (Python, JavaScript и Ruby), которые помогут освоить структуры данных и алгоритмы и начать применять их в повседневной работе. Вы даже найдете слово, которое может существенно ускорить ваш код. Практикуйте новые навыки, выполняя упражнения и изучая подробные решения, которые приводятся в книге.

Начните использовать эти методы уже сейчас, чтобы сделать свой код более производительным и масштабируемым.
Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии6

Исчерпывающее руководство по одномерным массивам в Java

Уровень сложностиПростой
Время на прочтение20 мин
Количество просмотров17K

Для хранения данных, используемых при работе программы, применяются переменные того или иного типа. Например, если требуется сохранить имя игрока, то создается переменная String name, если целочисленное значение, то int number и т. д. Когда таких значений немного или их количество заранее известно, то для них приемлемо использовать отдельные переменные.

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

Вот тут-то и приходит на выручку такая структура данных как массив, которая позволяет хранить в себе значения одного типа, что значительно упрощает их обработку.

Читать далее
Всего голосов 6: ↑5 и ↓1+6
Комментарии8

Поднимаем кластер PostgreSQL в Docker и Testcontainers

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров25K

Ранее я рассказывал о том, как запустить PostgreSQL в Docker. Тогда речь шла об использовании «ванильных» образов Postgres и поднятии одного хоста. В большинстве случаев этого достаточно как для тестов, так и для экспериментов, но нужно понимать, что в промышленной эксплуатации чаще всего используются высокодоступные (отказоустойчивые, кластеризованные) конфигурации PostgreSQL.

Сегодня я покажу, как запустить уже целый кластер PostgreSQL в Docker, а также в тестах через Testcontainers, и как вручную инициировать смену мастер-хоста.

Читать далее
Всего голосов 17: ↑17 и ↓0+17
Комментарии1

Шпаргалка по структурам данных в Java

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров16K

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

Читать далее
Всего голосов 10: ↑6 и ↓4+5
Комментарии13

Использование PostgreSQL Enum в SQLAlchemy. И проблемы с ним

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров7.8K

В ходе использования postgresql совместно с sqlalchemy я столкнулся с рядом особенностей, которые слабо документированы, о которых мне и хотелось бы поведать

Тут описаны как простые примеры использования, так и решения разнообазных проблем. Так что если вы являетесь пользователем postgresql и sqlalchemy данная статья может значительно упростить вашу жизнь

Читать далее
Всего голосов 3: ↑3 и ↓0+3
Комментарии7

PostgreSQL: обходим подводные камни при миграции

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров8.6K

Привет! Меня зовут Антон Казачков, я специалист вендорской поддержки СУБД Platform V Pangolin. Это реляционная СУБД уровня enterprise, которая разработана в СберТехе на основе PostgreSQL и доработана до корпоративного уровня надёжности и производительности. Сегодня Pangolin — целевая СУБД Сбера, основа для миграции всех существующих приложений и разработки новых.

Расскажу о ситуациях, с которыми сталкиваются команды на последних этапах миграции СУБД и в начале производственного цикла. На Хабре часто обсуждаются нюансы переезда СУБД из разных проприетарных версий на PostgreSQL. А вот информации о том, как вводить базы в эксплуатацию и выявлять производственные «болячки», на мой взгляд, не так много.

Читать далее
Всего голосов 20: ↑20 и ↓0+20
Комментарии1

Разница между загрузкой и инициализацией классов в Java на любопытном примере

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров14K

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


Поводом для написания статьи стал вопрос на StackOverflow. Откройте, но не торопитесь читать ответ ;)

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

Домашка на лето: что почитать разработчику

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

У нашего разработчика Михаила Ефремова есть хобби — читать книги и делать подборки особенно полезных. В этой статье он расскажет, как собрал книжную полку с лучшими, на его взгляд, книгами для разработчиков и поделится мнением о них. Миша подобрал книги по алгоритмам, архитектуре, базам данных, Linux/UNIX, Golang, Python.

Читать далее
Всего голосов 16: ↑16 и ↓0+16
Комментарии3

Как с помощью практики на LeetCode я получил несколько офферов

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров53K

После рассказа о том, как я получил работу в Amazon, в этом посте на reddit мне задали множество вопросов о том, как мне помог LeetCode в подготовке к собеседованиям.

В статье я отвечу на эти вопросы.

Сколько времени это заняло?

Я начал готовиться за 2-3 месяца до собеседований в BigTech. В то время я тратил по 2-3 часа в день на подготовку.

Читать далее
Всего голосов 36: ↑30 и ↓6+34
Комментарии54

«Входить в IT неспеша» или как стать Middle Java Backend разработчиком минуя ступень Junior

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров41K

Статья о том, как шаг за шагом при дефиците свободного времени обучиться и устроиться на работу сразу Middle Java разработчиком перескочив через Junior ступеньку, основанная на личном опыте, и о том, как мне это помогло, когда сразу после трудоустройства пришлось тянуть проект практически в solo.

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

Давай-ка разберёмся с этим
Всего голосов 22: ↑17 и ↓5+12
Комментарии80

Простыми словами об InlineKeyboard в Телеграмм ботах на java

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров21K

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

И такая возможность есть, если применить InlineKeyboard — вариант кнопок (за которыми скрыт необходимый функционал), прикрепленных непосредственно к сообщению от бота.

Применить такую клавиатуру я решила при разработке другого бота. Однако столкнулась с тем, что ни в документации Telegram bot Api, ни в статьях / разборах, размещенных в Интернет, нет прозрачного пошагового пояснения всей цепочки процессов. Разобравшись для себя с взаимосвязями вызовов в InlineKeyboard я решила этим поделиться с другими разработчиками.

Читать далее
Всего голосов 5: ↑3 и ↓2+3
Комментарии12

Как писать по-настоящему масштабируемый код?

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

Почему масштабировать вообще сложно?

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

Основная причина тут в том, что как только вы начинаете изменять какую-то большую систему, она начинает разваливаться. Ну, за исключением тех случаев, когда у вас вообще всё на 100% покрыто тестами. Однако, в реальном мире история с покрытием тестами такова, что код современных приложений покрыт (в лучшем случае) примерно на 1%.

Может быть, 100% покрытие тестами — это реальность не только для библиотек, утилит или компиляторов (ведь мы можем формализовать их поведение математически), но и для веб-приложения? Да не, фигня какая-то...

Читать далее
Всего голосов 17: ↑13 и ↓4+12
Комментарии4

Как расти, когда ты уже вырос: развитие и обучение до мидла и выше

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров9.5K

Курсов и историй про то, как развиваться на старте карьеры в IT, в интернете полно. Но как быть, если ты уже хороший специалист и хочешь большего? С чего вообще начать и с какой стороны подступиться к росту и обучению?

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

Читать далее
Всего голосов 18: ↑13 и ↓5+8
Комментарии7

Parallel Stream — не панацея или используй с умом (tutorial для начинающих)

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров18K

Данная статья может быть интересна тем, кто только изучает Stream API, либо набирает практический опыт их использования. В ней раскрывается функционал, плюсы и минусы использования Parallel Stream, но не касаемся использования последовательных Stream API в целом.

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

Читать далее
Всего голосов 6: ↑2 и ↓4-2
Комментарии5

Дорожная карта для изучения Java

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров54K

Java — настолько популярный и развитый язык, что контента на любую связанную с ним тему хоть отбавляй. Будь то технические разборы, обзоры популярных библиотек с открытым исходным кодом, статьи о поиске работы Java-программистом, сравнение с другими языками — всего не перечесть. Поиск по слову «java» в гугле выдал мне около 1,56,00,00,000 (?) результатов.

Читать далее
Всего голосов 21: ↑12 и ↓9+6
Комментарии43

Немного о Stream API(Java 8)

Время на прочтение6 мин
Количество просмотров115K
Небольшая статья с примерами использования Stream API в Java8, которая, надеюсь, поможет начинающим пользователям освоить и использовать функционал.


Читать дальше →
Всего голосов 16: ↑12 и ↓4+8
Комментарии24

Новичкам: как устроен IT-рынок и как сейчас войти в IT

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров7.8K

Недавно у нас вместе с VK прошла образовательная движуха по поиску первой работы в IT.

Под катом — выдержка из нашего первого разговора с Анной Атрошкиной, IT-рекрутером из INDEX. Она рассказала о том, как устроен IT-рынок и дала несколько советов новичкам.

Читать далее
Всего голосов 11: ↑5 и ↓6+4
Комментарии4

Несколько мыслей по подготовке к алгоритмической части собеседования

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров8.5K
image

Всем привет! На связи снова Петр Коробейников, техлид сервисов DBaaS for Redis и RabbitMQ (релиз скоро) в #CloudMTS. В этой статье хочу поделиться с вами некоторым опытом подготовки к прохождению алгоритмических интервью. Конечно, статья не про хардкорные алгоритмы. Это, скорее, эскиз к роадмапу по подготовке. Тем не менее, я надеюсь, он будет полезен новичкам (и даже некоторым «старичкам»).

Готовьтесь


Это первый и самый важный совет. Если вы думаете, что, ворочая базами в десятки терабайт, вывозя 50-100k RPS к фронту, обрабатывая десятки миллионов сообщений в Kafka, вы сможете перенести свой опыт на решение алгоритмических задач, то могу вас немного расстроить.

Двоичное дерево без подготовки вы сможете покрутить в лучшем случае только на неприличном месте. Это чем-то похоже на экзамен по математике или физике: вы не сможете вывести формулу, если не знакомы с теорией и не решали задачи заранее. И вас будет ждать обидный провал.
Читать дальше →
Всего голосов 25: ↑20 и ↓5+19
Комментарии13

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность