Сообщение Re[6]: бессмысленные интерфейсы от 19.02.2022 3:01
Изменено 19.02.2022 3:09 AlexGin
Re[6]: бессмысленные интерфейсы
Здравствуйте, ·, Вы писали:
AG>>Но у меня — универсальный узел и интерфейс к нему.
·>Нет, у тебя узел и иузел.
Напомню, что в терминологии C++ (в отличие от C# и Java) понятие интерфейс отсутствует.
Вместо него обычно применяется: абстрактный_класс:
https://www.tutorialspoint.com/cplusplus/cpp_interfaces.htm
AG>>Именно наличие программного интерфейса — позволяет уменьшить связанность (coupling) в проекте.
·>А конкретно в данном случае что именно уменьшается?
Показана идея применения абстрактного_класса C++ в качестве интерфейса.
Здесь (в приведенном примере) всё просто, поэтому избыточной связанности нет.
AG>>За счёт этого, получим упрощение архитектуры и уменьшение количества ошибок.
·>Введение новой сущности интерфейса не упрощает, а усложняет.
Конкретно здесь — упрощает понимание (даже если незначительно и увеличивает объём кода).
AG>>Конечно же, можно было обойтись и без интерфейса, однако так красивее и понятнее.
·>Эмоции. "Я так всегда делал и мне нравится"
Если быть точным, то делал я так не всегда.
Первые лет пять/шесть разработки на C++ я практически не применял абстрактные классы.
Но примерно с 2015-го понял, что такой подход упрощает понимание проекта.
Даже мне самому легче понять то, что я разработал несколько лет назад.
В литературе это именуют: best practices.
P.S. Мы не ждём, когда спроектируются новыеузлы поезда/вагоны, а подготавливаем проект "рельсового пути" для существующих и новых поездов.
Вы же предлагаете проектировать новые рельсы, как только появятся новые вагоны.
AG>>Но у меня — универсальный узел и интерфейс к нему.
·>Нет, у тебя узел и иузел.
Напомню, что в терминологии C++ (в отличие от C# и Java) понятие интерфейс отсутствует.
Вместо него обычно применяется: абстрактный_класс:
https://www.tutorialspoint.com/cplusplus/cpp_interfaces.htm
AG>>Именно наличие программного интерфейса — позволяет уменьшить связанность (coupling) в проекте.
·>А конкретно в данном случае что именно уменьшается?
Показана идея применения абстрактного_класса C++ в качестве интерфейса.
Здесь (в приведенном примере) всё просто, поэтому избыточной связанности нет.
AG>>За счёт этого, получим упрощение архитектуры и уменьшение количества ошибок.
·>Введение новой сущности интерфейса не упрощает, а усложняет.
Конкретно здесь — упрощает понимание (даже если незначительно и увеличивает объём кода).
AG>>Конечно же, можно было обойтись и без интерфейса, однако так красивее и понятнее.
·>Эмоции. "Я так всегда делал и мне нравится"
Если быть точным, то делал я так не всегда.
Первые лет пять/шесть разработки на C++ я практически не применял абстрактные классы.
Но примерно с 2015-го понял, что такой подход упрощает понимание проекта.
Даже мне самому легче понять то, что я разработал несколько лет назад.
В литературе это именуют: best practices.
P.S. Мы не ждём, когда спроектируются новые
Вы же предлагаете проектировать новые рельсы, как только появятся новые вагоны.
Re[6]: бессмысленные интерфейсы
Здравствуйте, ·, Вы писали:
AG>>Но у меня — универсальный узел и интерфейс к нему.
·>Нет, у тебя узел и иузел.
Напомню, что в терминологии C++ (в отличие от C# и Java) понятие интерфейс отсутствует.
Вместо него обычно применяется: абстрактный_класс:
https://www.tutorialspoint.com/cplusplus/cpp_interfaces.htm
AG>>Именно наличие программного интерфейса — позволяет уменьшить связанность (coupling) в проекте.
·>А конкретно в данном случае что именно уменьшается?
Показана идея применения абстрактного_класса C++ в качестве интерфейса.
Здесь (в приведенном примере) всё просто, поэтому избыточной связанности нет.
AG>>За счёт этого, получим упрощение архитектуры и уменьшение количества ошибок.
·>Введение новой сущности интерфейса не упрощает, а усложняет.
Конкретно здесь — упрощает понимание (даже если незначительно и увеличивает объём кода).
AG>>Конечно же, можно было обойтись и без интерфейса, однако так красивее и понятнее.
·>Эмоции. "Я так всегда делал и мне нравится"
Если быть точным, то делал я так не всегда.
Первые лет пять/шесть разработки на C++ я практически не применял абстрактные классы.
Но примерно с 2015-го понял, что такой подход упрощает понимание проекта.
Даже мне самому легче понять то, что я разработал несколько лет назад.
В литературе это именуют: best practices.
P.S. Мы не ждём, когда спроектируются новыеузлы поезда/вагоны, а подготавливаем проект "рельсового пути" для существующих и новых поездов.
Вы же предлагаете проектировать новые рельсы, как только появятся новые вагоны.
YAGNI — если бы я предлагал проектировать поезд на магнитной подушке, для поездки по линии длиной 5 км, где вполне хватит обычного трамвая.
AG>>Но у меня — универсальный узел и интерфейс к нему.
·>Нет, у тебя узел и иузел.
Напомню, что в терминологии C++ (в отличие от C# и Java) понятие интерфейс отсутствует.
Вместо него обычно применяется: абстрактный_класс:
https://www.tutorialspoint.com/cplusplus/cpp_interfaces.htm
AG>>Именно наличие программного интерфейса — позволяет уменьшить связанность (coupling) в проекте.
·>А конкретно в данном случае что именно уменьшается?
Показана идея применения абстрактного_класса C++ в качестве интерфейса.
Здесь (в приведенном примере) всё просто, поэтому избыточной связанности нет.
AG>>За счёт этого, получим упрощение архитектуры и уменьшение количества ошибок.
·>Введение новой сущности интерфейса не упрощает, а усложняет.
Конкретно здесь — упрощает понимание (даже если незначительно и увеличивает объём кода).
AG>>Конечно же, можно было обойтись и без интерфейса, однако так красивее и понятнее.
·>Эмоции. "Я так всегда делал и мне нравится"
Если быть точным, то делал я так не всегда.
Первые лет пять/шесть разработки на C++ я практически не применял абстрактные классы.
Но примерно с 2015-го понял, что такой подход упрощает понимание проекта.
Даже мне самому легче понять то, что я разработал несколько лет назад.
В литературе это именуют: best practices.
P.S. Мы не ждём, когда спроектируются новые
Вы же предлагаете проектировать новые рельсы, как только появятся новые вагоны.
YAGNI — если бы я предлагал проектировать поезд на магнитной подушке, для поездки по линии длиной 5 км, где вполне хватит обычного трамвая.