Что такое ООП?
ООП - Объектно-ориентированное программирование, это парадигма, идея которой
состоит в том что основным элементом при таком подходе является объект, то есть
программа состоит из объектов как дом из кирпичей.
Где объект это отдельный представитель класса, а классы могут образовывать
иерархии наследования.
Класс выступает шаблоном, то есть набором полей, методов, и других характеристик,
будущего объекта, построенного на основе класса.
Еще раз ООП строится на взаимодействии объектов, в отличии от например процедурного,
у которого основным компонентом является процедура, то есть по простому функция
решающая определенную задачу.
Плюсы и минусы которые я заметил при программировании на Java как на
объектно-ориентированном языке.
Плюсы:
- Объектная модель, воспринять такую концепцию легче чем ту же процедурную,
потому что человеку для понимания легко приводить примеры из
обычного человеческого мира.
- Переиспользование, возможность писать код и создавать модули
для многоразового использования, что прилично упрощает разработку.
- Возможность создавать системы, которые потом легко расширять или
изменять, если грамотно их реализовывать.
- Каждый принцип ООП несет в себе определенные мощные плюсы.
(о принципах в следующих постах)
Минусы:
- Возможность писать boilerplate код, то есть много лишнего, не продуктивного
функционала который можно было бы написать короче и проще.
- Возможность реализовывать сложные длинные иерархии, в которых можно запутаться))
P.S. Про принципы в отдельных постах.
№2. Принципы ООП
№1. ООП
Комментарии (11)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Денис Enterprise Java Developer
21 ноября 2024, 09:43
Немножко подушню, но мне кажется в статьях это выглядело бы уместней :)
0
solemnly swear that I am up to no good
21 ноября 2024, 10:13
Просто как то смешно мне кажется будет, если я как ученик, еще не имеющий реального опыта буду умничать в разделе статей, как то странно звучит, типа "я написал статью, вчитайтесь в мою мудрость", на деле я просто пишу как понял, и готов к критике, но лучше к добрым подсказкам.
Форум для обсуждения, насчет чего я и не против, т.к. мне важно самому тоже понять максимально, что бы на том же собесе в будущем не завалиться на какой то мелочи...
И плюс на JR последнее время так тихо что я не думаю что кому то сильно мешаю своими постами)) Раньше было больше актива..
0
solemnly swear that I am up to no good
21 ноября 2024, 10:15
Кстати я заметил, что реально приличный кусок понимания и знаний я получил именно в общении / переписке с разработчиками, чем в просмотре какого то материала на том же ютубе, или статьи..
0
Денис Enterprise Java Developer
21 ноября 2024, 11:38
Здесь люди не чураются в статьи писать "как получить элемент из массива" :) а ты пытаешься в ООП :) думаю вполне тянет на группу рандом. Заодно и ачивку получишь.
...реально приличный кусок понимания...
Суха теория, мой друг, а древо жизни пышно зеленеет (с)
0
solemnly swear that I am up to no good
21 ноября 2024, 11:40
Заодно и ачивку получишь.
Мне все равно на ачивку, не она моя цель)
Суха теория, мой друг, а древо жизни пышно зеленеет (с)
=)
Я стараюсь балансировать, теория практика теория практика,
сейчас хочу повторить старое, потом доучу теорию по тому где
в практике я вылез вперед, потом опять практика,
я помню помню что не за теорию деньги платят)
Но без теории начать изучать практическую сторону сложно,
как ежик в тумане..
0
Денис Enterprise Java Developer
21 ноября 2024, 11:49
Там цитата про другое немножко была. Теория метрва без практики, потому курсы на ютубе хоть засмотрись толку от них не будет. И напротив, общаясь с практикующими специалистами, которые каждый день этим делом зарабатывают на хлеб ты получаешь реальные советы и реальный опыт... их опыт фактически. Ты не получаешь, к сожалению, их шишки, набитые в пути к этому опыту, но это все равно лучше чем просто абстракция.
Вот я вчера воевал с мускулем например :) они в свежих версиях переработали механизм авторизации, потому тестовый контейнер не мог выполнить проверку того что база готова принимать коннекты от созданного пользака. Пользователь то создан, но в ответ на команду получаешь не ожидаемый ответ, а access denied :) и большая часть того что я нашёл в сети по этому вопросу это хрестоматийные happyPath варианты, типа чтобы квернуть мускуль сделайте mysql -u -p бла-бла-бла, как будто я блин этого не знаю. Решение то я нашёл и придумал, но оно мне не нравится, потому пока отложил задачу в сторону просто сделав даунгрейд версии в тест контейнере. Тоже хреновый подход, даже очень хреновый, но быстрый и пока вроде ничего не сломалось.
0
solemnly swear that I am up to no good
21 ноября 2024, 11:53
но это все равно лучше чем просто абстракция.
++
что еще остается ученику)
mysql -u -p
ну я вот кстати тоже так писал mysql -u rootname -p
и потом пассворд вводил
и тогда контейнер подымался..
0
Денис Enterprise Java Developer
21 ноября 2024, 12:09
У меня чуток другая ситуация :) во первых руками там ничего не вводится. testcontainers это либа такая. И для тестов у меня создаётся кастомный контейнер с мускулем, в нём же для тестов создаются несколько пользаков динамически ну и еще немного магии. Вопрос в том, что когда контейнер поднимается нужно проверить что он готов работать, что пользак создан без проблем и тому подобное.
Там было решение достаточно банальное, но простое: выполнялась команда типа mysql -uuser -ppass -e show databases и проверялось что в ответе есть имя нужной базы данных, что значило сразу несколько вещей, пользак создан и имеет доступы, база создана и можно стартовать тесты. Сами тесты так же ранятся автоматически, ну это обычный junit. Ну и само собой на CI они тоже ранятся автоматически и удалённо. Короче "ручками" ввести пароль не получится :) есть решение через конфигурации типа my.cnf, но надо будет его еще попинать, чуйка подсказывает что сразу оно тоже может не взлететь и надо будет подумать как эти файлы красиво билдить и засовывать в контейнер, и убедиться что все нужные пользователи подхватились.
В общем самым простым оказалось сменить версию до той где это еще не является проблемой. Если бы оно было не для тестов, я бы конечно подолбался еще, а так вроде не критично, в рамках одной и той же мажорной версии.
0
solemnly swear that I am up to no good
21 ноября 2024, 12:28
В общем самым простым оказалось сменить версию до той где это еще не является проблемой.
Сильно не буду влазить, для меня половина слов пока не известна, но как выглядит
смена версии? переустановка либы этой? на более старую версию?
0
Денис Enterprise Java Developer
21 ноября 2024, 12:48
Если очень на пальцах, то так:
https://java.testcontainers.org/features/creating_container/
Где IMAGE_VERSION это нужная тебе версия. Например "mysql:8.4"
Ну как и в обычном компоуз файле так то.
0
solemnly swear that I am up to no good
21 ноября 2024, 13:14
ааа, понял, окей
0