Решил записывать на доске на кухне офиса различные мысли (свои и не очень) в надежде на зарождение горячей дискуссии; пока что всем всё равно🥲

Решил записывать на доске на кухне офиса различные мысли (свои и не очень) в надежде на зарождение горячей дискуссии; пока что всем всё равно🥲

Впервые услышав о принципе единой ответственности был очень недоволен такой концепцией, потому как в моей голове это означало, что теперь, допустим, на любую операцию с моделью из базы, у которой есть зависимость от другой модели, придётся делать по два отдельных класса, например: класс удаления самой модели и класс удаления связи с зависимой моделью (реализация какая угодно, от формы до репозитория)
Однако, на деле всё оказалось куда удобнее и интереснее: srp это об единой причине для изменения, то есть в один класс можно запихнуть и удаление самой модели, и различные связанные действия, так как все они относятся к одному событию — удалению модели. После этого меня перестала мучить совесть🙃
краткий гайд о том как подключаться по ssh без пароля (надоело каждый раз лезть в гугл)
1. ssh-keygen -t rsa
2. путь указываем такой, чтобы было понятно к какому именно сервера вы подключаетесь
3. пароль не обязательно вводить
4. копируем ключи на удалённый сервак: ssh-copy-id -p порт пользователь@айпи
5. авторизуемся при помощи пароля от учётки, чтобы завершить процедуру
6. для удобства можно внести в alias'ы консольной оболочки что-нибудь типа myssh="ssh user@ip", чтобы не вводить каждый раз
На своей первой работе по воле судьбы оказался фуллстак-разработчиком, это сильно облегчало работу на ранних стадиях проекта, в котором я участвовал, но не позволяло мне увидеть один интересный и удобный приём работы с данными — DataTransferObject. Мы чаще на фронт просто передавали объекты напрямую и пользовались методами для доступа к данным как попало.
На текущей же работе, в веб-агентстве, разделение на бэк и фронт максимально явное и передавать фронтендерам объекты из своей области совсем перехотелось; собственно, dto стали ответом на многие вопросы и часто приходят на помощь; тут главное не переборщить, но это уже совсем другая история
Недавно подумал, что не понимаю зачем в базовых принципах ооп указывают и наследование, и полиморфизм (например, https://tproger.ru/translations/oop-principles-cheatsheet), потому что вроде как абсолютно очевидно, что они в ооп идут рука об руку и друг без друга не могут
Логичный вопрос: так ли это?
Оказалось, что ответ ещё очевиднее и полиморфизм может существовать без наследования, например, в языках без статической типизации; чуть более подробно можно узнать тут: https://stackoverflow.com/questions/11732422/is-polymorphism-possible-without-inheritance
«Кажется, я понял чем отличается инкапсуляция от сокрытия», выпуск 1
Сокрытие это про данные, инкапсуляция это сокрытие взаимодействия данных
То есть, инкапсуляция это подмножество сокрытия
Да ведь? Ждём следующий выпуск за авторством моего мозга через какое-то время