powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как сделать проект более структурно понятным?
25 сообщений из 170, страница 6 из 7
Как сделать проект более структурно понятным?
    #39825187
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeriyKв моем случае это подсистема гарантированного выполнения переданной функциивы правильно делаете что ищите Повторяемы код или функционал.
Я не пойму что это такое выше вы назвали.
На первый взгляд это слишком мелко.
Вы бы код показали.
- легаси проект или новый?
- просто класс выделить подходит?
...
Рейтинг: 0 / 0
Как сделать проект более структурно понятным?
    #39825195
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeriyKпереводчика" с языка одной подсистемы на язык другой)посмотрите вокруг себя. Все уже изобретено.
В веб таким переводчиком является код возврата Http.error. Это просто перечислимое.
Но это гетерогенные среды!
...
Рейтинг: 0 / 0
Как сделать проект более структурно понятным?
    #39825196
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeriyKгарантированного выполнения переданной функциикак корабль назовешь, так он и поплывёт)))
Юмор люблю.
..
Названия подмодулей должен понимать заказчик не программист.
Измените название чтобы записать в ТЗ и его понимали.
То есть опять таки функционал!
...
Рейтинг: 0 / 0
Как сделать проект более структурно понятным?
    #39825198
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeriyK1. Ниже по стеку должны знать потенциальные варианты действий подсистемы, находящейся выше по стеку (и подготавливали данные исходя из этого, сообщая об ошибке).при http.error это нет.
Внизу тупо передают код 404 по факту.
...
Рейтинг: 0 / 0
Как сделать проект более структурно понятным?
    #39825212
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeriyKПроблема в том, что получение из инета может быть с ошибкой и надо как- то из второй подсистемы сообщить первой о необходимости повтора запроса. И тут они становятся зависимыми друг от друга!Я бы сделал так (мы недавно делали похожую систему, правда я потом отошёл от дел, поэтому точность не гарантирую):
- 2 очереди, одна с командами, вторая с ответами (у нас даже очередь с командами разбирали несколько исполнителей).
- обе очереди - это отдельные подсистемы, с API, которые по вводимым данным формируют у себя объект в своём формате. Т.е. если это ошибка, ты можешь установить через отдельный метод код ошибки, если надо ещё сообщение - через отдельный метод сообщение. И так далее. Тоже самое с командной очередью: свой объект, своё API.
- оба API делаются по необходимому минимуму.
- ни принимающая, ни обрабатывающая системы друг о друге не знают. Они так же не знают формат объектов в очередях, у них просто есть несколько функций, через которые они могут устанавливать/читать информацию о событии/команде.

кейс:SeriyKполучение из инета может быть с ошибкой- вторая система создаёт в очереди сообщений объект сообщения, передаёт в него код и текст.
- первая разгребает очередь, получает информацию об ошибке
- первая создаёт объект в очереди команд на повторное выполнение запроса.

скорее всего, есть какой-нибудь паттерн про это, но я в их названиях плохо разбираюсь
...
Рейтинг: 0 / 0
Как сделать проект более структурно понятным?
    #39825215
SeriyK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CEMbSeriyKПроблема в том, что получение из инета может быть с ошибкой и надо как- то из второй подсистемы сообщить первой о необходимости повтора запроса. И тут они становятся зависимыми друг от друга!Я бы сделал так (мы недавно делали похожую систему, правда я потом отошёл от дел, поэтому точность не гарантирую):
- 2 очереди, одна с командами, вторая с ответами (у нас даже очередь с командами разбирали несколько исполнителей).
- обе очереди - это отдельные подсистемы, с API, которые по вводимым данным формируют у себя объект в своём формате. Т.е. если это ошибка, ты можешь установить через отдельный метод код ошибки, если надо ещё сообщение - через отдельный метод сообщение. И так далее. Тоже самое с командной очередью: свой объект, своё API.
- оба API делаются по необходимому минимуму.
- ни принимающая, ни обрабатывающая системы друг о друге не знают. Они так же не знают формат объектов в очередях, у них просто есть несколько функций, через которые они могут устанавливать/читать информацию о событии/команде.

кейс:SeriyKполучение из инета может быть с ошибкой- вторая система создаёт в очереди сообщений объект сообщения, передаёт в него код и текст.
- первая разгребает очередь, получает информацию об ошибке
- первая создаёт объект в очереди команд на повторное выполнение запроса.

скорее всего, есть какой-нибудь паттерн про это, но я в их названиях плохо разбираюсь


Балин! Да не в средстве доставки ошибки дело! Уже третий раз на этом циклятся!
Беда в том, что эти две подсистемы должны ОДИНАКОВО понимать произошедшии ситуации, т.е. теряют взаимную независимость, потому что одна подсистема должна подстраиваться под другую.
...
Рейтинг: 0 / 0
Как сделать проект более структурно понятным?
    #39825218
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CEMbпаттернОчереди - message orienred middleware
...
Рейтинг: 0 / 0
Как сделать проект более структурно понятным?
    #39825221
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeriyKтеряют взаимную независимость,девственность всегда теряется.
https://ru.m.wikipedia.org/wiki/Контрактное_программирование
Контракты это документация к API
...
Рейтинг: 0 / 0
Как сделать проект более структурно понятным?
    #39825223
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeriyK,
Откуда неприязнь к зависимостям?
ИС моделирует реальный мир. А не вымышленный.
...
Рейтинг: 0 / 0
Как сделать проект более структурно понятным?
    #39825226
SeriyK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC SharpSeriyK,
Откуда неприязнь к зависимостям?
ИС моделирует реальный мир. А не вымышленный.

Тогда надо отказываться от универсального функционала. Ведь если он зависим от чего- то специфичного, то каждый раз эта специфика будет разной.
...
Рейтинг: 0 / 0
Как сделать проект более структурно понятным?
    #39825229
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeriyK,
Универсальность враг хорошего.
Заказчик требует УНИКАЛЬНУЮ программу.
А менеджеры придумывают универсальность от лени и от прибыли.
...
Рейтинг: 0 / 0
Как сделать проект более структурно понятным?
    #39825230
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeriyK,

Ну и молирование прелметки это УПРОЩЕНИЕ модели мира в некоторой степени. Она не один к олному.
А насколько упростить это искусство архитектора.
...
Рейтинг: 0 / 0
Как сделать проект более структурно понятным?
    #39825231
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC SharpмолированиемоДелирование.
Блин, этот тачпад))
...
Рейтинг: 0 / 0
Как сделать проект более структурно понятным?
    #39825235
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC SharpSeriyK,
Универсальность враг хорошего.
Заказчик требует УНИКАЛЬНУЮ программу.
А менеджеры придумывают универсальность от лени и от прибыли.
Уникальность и универсальность - антагонизмы?
...
Рейтинг: 0 / 0
Как сделать проект более структурно понятным?
    #39825239
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
И да и нет. От контекста зависит.
Универсальная абстрактно не бывает.
...
Рейтинг: 0 / 0
Как сделать проект более структурно понятным?
    #39825241
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
В тз по гост не случайно главные это функциональные требования.
Там есть универсальность? Обычно нет.
...
Рейтинг: 0 / 0
Как сделать проект более структурно понятным?
    #39825286
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeriyKПовторюсь, что могу без лишних объектов (таких как очередь) бросить исключение, и оно само поднимется выше по стеку и передаст информацию о произошедшем. Вопрос в том, чтобы выше по стеку поняли как себя вести в этой ситуации. Возможно одно из двух:
1. Ниже по стеку должны знать потенциальные варианты действий подсистемы, находящейся выше по стеку (и подготавливали данные исходя из этого, сообщая об ошибке).
2. Выше по стеку умели интерпретировать результаты того, что происходит ниже."Смешались в кучу кони, люди ..."
Не нужно ничего такого : исключения для того и придуманы, чтобы много не думать.
В нормальной ситуации, необходимая информация об ошибке содержится в типе исключения. В редких случаях можно "завернуть" в исключение "что-нибудь дополнительное".
...
Рейтинг: 0 / 0
Как сделать проект более структурно понятным?
    #39825312
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeriyKБеда в том, что эти две подсистемы должны ОДИНАКОВО понимать произошедшии ситуации

Не должны. Если подсистемы выполняют разные функции, то ситуации у них совершенно разные.
Одна и та же ситуация не может произойти в разных подсистемах, соответственно и одинаковое
"понимание" её не требуется.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как сделать проект более структурно понятным?
    #39825344
SeriyK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. Sidorov"Смешались в кучу кони, люди ..."
Не нужно ничего такого : исключения для того и придуманы, чтобы много не думать.
В нормальной ситуации, необходимая информация об ошибке содержится в типе исключения. В редких случаях можно "завернуть" в исключение "что-нибудь дополнительное".

А типы исключений из воздуха появятся? У меня сейчас именно такая зависимость и присутствует: в одном модуле объявлены типы исключения, а второй модуль их порождает.
...
Рейтинг: 0 / 0
Как сделать проект более структурно понятным?
    #39825353
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeriyK,
Преобразовывай при передаче в "OLE совместимые типы".
Или ещё во что то.
Главное что тебе как прогеру будет неудобно.
...
Рейтинг: 0 / 0
Как сделать проект более структурно понятным?
    #39825354
SeriyK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пока я прихожу к такому решению: разделить задачу на:
1) универсальный неизменяемый функционал
2) все остальное

В этом случае п.1 можно положить в свою библиотеку функций (где лежат универсальные функции типа комбинация нескольких массивов в один) и не боясь устанавливать зависимость от этого неизменяемого функционала где только нужно. Иначе надо бояться в том числе изменения функций языка и с ними тоже работать через интерфесы (чтобы защититься от их изменения :) )

В представленном выше конкретном случае подсистему с бесконечным циклом надо лишить громкого звания подсистемы (забрав у нее интерфейс) и положить в общедоступные объекты, в ней определить необходимые для взаимодействия исключения и спокойно ее с этими исключениями использовать где нужно.
...
Рейтинг: 0 / 0
Как сделать проект более структурно понятным?
    #39825355
SeriyK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC SharpSeriyK,
Преобразовывай при передаче в "OLE совместимые типы".
Или ещё во что то.
Главное что тебе как прогеру будет неудобно.

Шестая страница обсуждения, а вы так и не поняли, что зависимость появляется из- за необходимости ДОГОВОРИТЬСЯ и ОДИНАКОВО понимать происходящие ситуации. Хоть в 10 слоев заворачивайся обертками- все равно в конечном итоге встанет вопрос как с языка событий одной подсистемы перевести на язык действий другой подсистемы.
...
Рейтинг: 0 / 0
Как сделать проект более структурно понятным?
    #39825360
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeriyKШестая страница обсуждения, а вы так и не поняли,а есть тут кто нибудь кто тебя понял?
...
Рейтинг: 0 / 0
Как сделать проект более структурно понятным?
    #39825363
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeriyKкак с языка событий одной подсистемы перевести на язык действий другой подсистемы.про SOAP слышал? Какие мнения?
Ну или про COM?
...
Рейтинг: 0 / 0
Как сделать проект более структурно понятным?
    #39825364
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeriyKвсе равно в конечном итоге встанет вопрос как с языка событий одной подсистемы перевести
на язык действий другой подсистемы.

Если программист неспособен внятно описать API каждой из подсистем - да, всегда будет
вопрос костылей и прокладок.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
25 сообщений из 170, страница 6 из 7
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как сделать проект более структурно понятным?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]