Как стать автором
Обновить
100
0.1
Slava Vedenin @vedenin1980

Java developer

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

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

Время на прочтение5 мин
Количество просмотров233K
Когда я учился в университете мне довольно тяжело было понять ООП (Объектно-ориентированное программирование), сейчас я понимаю, что просто нас учили ООП на не совсем ясных и правильных аналогиях и вообще, кажется, сами преподаватели не совсем понимали, в чем же суть ООП.

image

Вспомните, классические аналогии ООП, вот есть класс Домашние любимцы с методами «голос» и «есть», от него мы наследуем Кошку и Собаку и все хорошо.

Но тут приходит Света и приносит аквариумных рыбок, которые не разговаривают, а потом приходит Вася, которые приносит любимый кактус, которые не только не разговаривает, но и не ест.

Мы уже запутались, но Вовочка спрашивает: «а где в этом зоопарке статические методы, интерфейсы, абстрактные классы и чем отличается объект класса от самого класса?». Объяснить, несомненно, можно, но сложно. Понять, еще сложнее.

Или другой классический пример, вот есть прямоугольник, от которого так и хочется унаследовать квадрат (ну по логике, квадрат это частный случай прямоугольника), но у прямоугольника есть длина и ширина, а у квадрата только одна сторона. Что-то тут тоже запутано.

Теперь подумаем как объяснить ООП лучше?
Читать дальше →
Всего голосов 68: ↑53 и ↓15+38
Комментарии474

Шпаргалки Java программиста 10: Lombok

Время на прочтение9 мин
Количество просмотров98K
image

Lombok — проект по добавлению дополнительной функциональности в Java c помощью изменения исходного кода перед Java компиляцией.

По сути, проект Lombok позволяет избавиться от многословности Java в большинстве случаев и перестать писать огромные простыни кода из гетеров, сеттеров, equals, hashcode и toString (да их обычно генерит IDE, но читать и менять все равно приходится программисту), в результате Java становиться почти такой же краткой как Kotlin, Scala или C#.

Что особенно радует, Lombok очень прост и легок в добавлении к вашему проекту. Если вам, как и мне, нравится принцип KISS, то советую посмотреть на Lombok.

Так же рекомендую, посмотреть на другие статьи цикла, например последную шпаргалку по Java SE8
Интересно?
Всего голосов 21: ↑18 и ↓3+15
Комментарии38

Шпаргалки Java программиста 9: Java SE — Шпаргалка для собеседований и повторений

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

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

image

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

Внимание: я не буду касаться вопросов по самому языку Java (вроде для чего нужно слово final или чем overriding отличается от overloading), это потребует отдельной статьи, это вопросы именно по Java SE (6-9) платформе.
Читать дальше →
Всего голосов 30: ↑28 и ↓2+26
Комментарии10

Давайте подумаем 1 — Можно ли «победить» низкую гравитацию Марса?

Время на прочтение5 мин
Количество просмотров27K
image

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

Итак, на Geektimes я встречал мнение, что низкая гравитация Марса это чуть ли не главная проблема почему колонизация Марса невозможна или приведет к большому количеству заболеваний, к вырождению и вымиранию колонии на Марсе.
Давайте подумаем...
Всего голосов 26: ↑19 и ↓7+12
Комментарии353

Шпаргалка Java программиста 2: Триста пятьдесят самых популярных не мобильных Java opensource проектов на github

Время на прочтение39 мин
Количество просмотров169K
Что это и зачем оно надо: Как известно, главное преимущество Java мира в том в нем существует огромное количество open-source проектов на на все случаи жизни, однако найти нужный на github'e не так просто, так как описание проекта часто мало информативно, зачастую сложно даже понять этот проект для Android'a или нет. В этой статье я автоматически и полуавтоматически собрал Java проекты, убрал старые и проекты только для Android'a, выбрал 350 набравших больше всего звезд, разделил по категориям и перевел описания.

Если вы хотите убедиться что базы данных пишут не только на C, найти проекты для работы с большими данными или нейронными сетями, пишите свой язык программирования для JVM и хотите посмотреть как это уже сделано или же просто хотите узнать какие новые возможности можно найти в Java мире open-source то это статья вам, думаю, может пригодится.

В чем смысл серии статей 'Шпаргалки Java программиста'
За время работы Java программистом я заметил, что как правило программисты постоянно и планомерно используют от силы 10-20% от возможностей той или иной технологии, при этом остальные возможности быстро забываются и при появлении новых требований, переходе на новую работу или подготовке к техническому интервью приходится перечитывать все документации и спецификации с нуля. Зато наличие краткого конспекта особенностей тех или иных технологий (шпаргалок) позволяет быстро освежить в памяти особенности той или иной технологии.


Другие статьи серии: часть 1. JPA и Hibernate в вопросах и ответах

Update: Внимание, актуальная версия со много большим количеством ссылок, находиться теперь в моем github'e проекте useful-java-links, по этой ссылке.


Читать дальше →
Всего голосов 51: ↑43 и ↓8+35
Комментарии49

Шпаргалка Java программиста 1: JPA и Hibernate в вопросах и ответах

Время на прочтение36 мин
Количество просмотров591K
image

Знаете ли вы JPA? А Hibernate? А если проверить?

В чем смысл серии статей 'Шпаргалки Java программиста'
За время работы Java программистом я заметил, что как правило программисты постоянно и планомерно используют от силы 10-20% от возможностей той или иной технологии, при этом остальные возможности быстро забываются и при появлении новых требований, переходе на новую работу или подготовке к техническому интервью приходится перечитывать все документации и спецификации с нуля. Зато наличие краткого конспекта особенностей тех или иных технологий (шпаргалок) позволяет быстро освежить в памяти особенности той или иной технологии.




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

Поехали...
Всего голосов 37: ↑32 и ↓5+27
Комментарии16

Как оптимизировал работу с MongoDB с помощью устаревшего api или о чем молчит её спецификация…

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

Однажды столкнулся с задачей: mongoDb использовался как кэш/буфер между backend на Java и frontend на node.js. Все было хорошо, пока не появилось бизнес требование перебрасывать большие объемы за короткое время через mongoDb (до 200 тыс. записей не более чем за пару минут). Для чего не так важно, важна что задача такая появилась. И вот тут уж пришлось разбираться во внутренностях монги…

Начинаем разбираться по шагам...
Всего голосов 41: ↑30 и ↓11+19
Комментарии14

GSON. Добавим ему немного строгости и решаем проблему переполнения памяти при обработки больших JSON файлов

Время на прочтение8 мин
Количество просмотров13K
Вероятно многие сталкивались с библиотекой GSON от Google, которая легко превращает JSON файлы в Java объекты и обратно.

Для тех, кто с ней не сталкивался, я подготовил краткое описание под спойлером. А так же описал решения на GSON двух проблем, с которыми реально сталкивался в своей работе (решения не обязательно оптимальные или лучшие, но, возможно, кому-то они могут пригодится):

1) Проверки что мы не потеряли ни одного поля из JSON'a файла, а также проверки того что все обязательные поля в Java классе были заполнены (делаем GSON более строгим);
2) Ручной парсинг с помощью GSON, когда приходится обрабатывать очень большой JSON файл, чтобы избежать ошибки out of memory.
Читать дальше →
Всего голосов 6: ↑5 и ↓1+4
Комментарии2

Информация

В рейтинге
3 555-й
Откуда
Luxemburg, Luxembourg, Люксембург
Дата рождения
Зарегистрирован
Активность