Приведу итоговый набор правил, сущностей и ограничений, которые использовались в видео, для построения модели функционирования ресурсов:
1. Все ресурсы - структуры
2. URN развертывается в представление данных
3. Ресурс с типом сущность неделим
4. {...} - структура обозначает тип "сущность"
5. [...] - структура обозначает тип "коллекция"
6. (a,b) - структура обозначает "связь"
7. косой чертой (/) - обозначается бинарное отношение между структурами разных типов
8. "связь" имеет специальный смысл и всегда должна находиться в служебном подмножестве "связи"
9. идентификаторы могут быть составными и результат получается путем свертки (слева направо) и применению правила развертывания в представление.
1. Все ресурсы - структуры
2. URN развертывается в представление данных
3. Ресурс с типом сущность неделим
4. {...} - структура обозначает тип "сущность"
5. [...] - структура обозначает тип "коллекция"
6. (a,b) - структура обозначает "связь"
7. косой чертой (/) - обозначается бинарное отношение между структурами разных типов
8. "связь" имеет специальный смысл и всегда должна находиться в служебном подмножестве "связи"
9. идентификаторы могут быть составными и результат получается путем свертки (слева направо) и применению правила развертывания в представление.
👍30
TGIF поэтому давайте запустим конкурс на лучшую фотку по теме "Я работаю в кафе". Если хотите принять участие в конкурсе, то опубликуйте в этой теме фотку из кафе с "рабочим интерьером" где есть ноут или планшет (ну чтобы было понятно, что вы не просто едите, а работаете!). Себя фотать не надо!
Та фотка, которая наберет больше всего эмоций, получит подарочный сертификат на soer.pro уровня стрим (а если у вас уже есть подписка, то будет левелап).
Так же оставляю за собой право отдельно отметить фотку, которая понравится лично мне (если такая будет, то она тоже получит аналогичный приз).
Ну хватит слов... GO! GO! GO! 🖼🖼🖼
Стоп конкурса утром 21.05.2022
Та фотка, которая наберет больше всего эмоций, получит подарочный сертификат на soer.pro уровня стрим (а если у вас уже есть подписка, то будет левелап).
Так же оставляю за собой право отдельно отметить фотку, которая понравится лично мне (если такая будет, то она тоже получит аналогичный приз).
Ну хватит слов... GO! GO! GO! 🖼🖼🖼
Стоп конкурса утром 21.05.2022
👍18😁7🤮5🔥2
Все кто задавал вопросы на платформе, ответил! )
Все кто имеет платную подписку могут послушать ответы другим участникам.
Все кто имеет платную подписку могут послушать ответы другим участникам.
Audio
Ответы идут в аудио формате, вот ответ на один из последних вопросов (для примера).
На платформе всегда можно получить ответ. Это бесплатно, ответ даю по мере времени.
Для тех кто на платных подписках можно слушать ответы другим участникам в "Вопрос/ответ" вкладка "Все вопросы".
На платформе всегда можно получить ответ. Это бесплатно, ответ даю по мере времени.
Для тех кто на платных подписках можно слушать ответы другим участникам в "Вопрос/ответ" вкладка "Все вопросы".
👍22
Давайте поговорим про приватные и публичные свойства в классах. Существует много разных претензий к публичным свойствам, в этом видео поговорим, про ограничения на значения свойств.
https://youtu.be/0lQFrD7kq3k
https://youtu.be/0lQFrD7kq3k
YouTube
Конкретный пример почему в ООП приватные атрибуты лучше публичных
#soer #itubeteam
Основной канал для общения и публикации новых видео - Телегарм - https://news.1rj.ru/str/softwareengineervlog
Спонсорство - https://donate.s0er.ru
Сайт платным контентом - https://soer.pro
Зеркало для видео Дзен Видео - https://zen.yandex.ru/i…
Основной канал для общения и публикации новых видео - Телегарм - https://news.1rj.ru/str/softwareengineervlog
Спонсорство - https://donate.s0er.ru
Сайт платным контентом - https://soer.pro
Зеркало для видео Дзен Видео - https://zen.yandex.ru/i…
👍30
За годы проектирования я понял только одно - всегда можно сказать почему то или иное решение плохое, но это нисколько не приблизит тебя к понимаю того что нужно сделать, чтобы решение (я больше про архитектуру говорю) стало хорошим.
Обычно устраняя одни недостатки, получаешь другие.
Обычно устраняя одни недостатки, получаешь другие.
👍51❤3🤔3
Как гласит китайская мудрость, если тебе кажется, что есть палочками неудобно, то просто подожди немного и это пройдет.
😁59👍7🤔5
Можно ли бросать исключение из конструктора?
Коротко: Да
Чуть более длинно:
https://isocpp.org/wiki/faq/exceptions#ctors-can-throw
Обычно конструктор вызывает страхи потому что нет уверенности в том как он работает. Вроде как особый метод, который находится на границе когда объект вроде как создан, а вроде как и нет (не инициализирован). Отсюда мысль "мало ли что". В свой практике я каких-то диких проблем с бросанием исключений в конструкторе не встречал.
Коротко: Да
Чуть более длинно:
https://isocpp.org/wiki/faq/exceptions#ctors-can-throw
Обычно конструктор вызывает страхи потому что нет уверенности в том как он работает. Вроде как особый метод, который находится на границе когда объект вроде как создан, а вроде как и нет (не инициализирован). Отсюда мысль "мало ли что". В свой практике я каких-то диких проблем с бросанием исключений в конструкторе не встречал.
👍22🤔1
Кстати, да. Но мне такой терминологией пользоваться неудобно. Я не знаю кто изначально придумал отделять поля (field) от свойства (property), думаю это впервые появилось в С#. Но проблема вот в чем: поле - это техническая реализация свойства, т.е. поле - это "переменная" класса, а свойство - это геттер или сеттер для этого поля. Запутались?
Проблем в том, что эта терминология еще хуже проявляет себя когда вы работаете с заказчиком (вспоминаем про DDD и Ubiquitous Language) у вас есть объекты предметной области, и для их описания вполне достаточно свойств и методов.
Более того, если сказать бизнес аналитику, что кроме свойств в обсуждаемом объекте есть еще и поля, то он просто этого не поймет.
На мой взгляд, программисты разделяют поля и свойства не чтобы лучше понимать друг друга, а чтобы сразу прикидывать реализацию. Это неправильно, потому что общее решение должно быть абстрактным и избавлено от технических деталей.
Мне кажется такие детали несущественны и только запутывают.
Проблем в том, что эта терминология еще хуже проявляет себя когда вы работаете с заказчиком (вспоминаем про DDD и Ubiquitous Language) у вас есть объекты предметной области, и для их описания вполне достаточно свойств и методов.
Более того, если сказать бизнес аналитику, что кроме свойств в обсуждаемом объекте есть еще и поля, то он просто этого не поймет.
На мой взгляд, программисты разделяют поля и свойства не чтобы лучше понимать друг друга, а чтобы сразу прикидывать реализацию. Это неправильно, потому что общее решение должно быть абстрактным и избавлено от технических деталей.
Мне кажется такие детали несущественны и только запутывают.
👍67🤔9👎2