Автор Тема: Нужна ли "инженерия кодинга"?  (Прочитано 17264 раз)

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Нужна ли "инженерия кодинга"?
« Ответ #30 : Февраль 13, 2012, 08:59:08 am »
Илья, что скажишь по поводу вот этого:
А какой язык использовался?

C++ и библиотека boost.

Есть у кого в ББ готовые наработки, чтобы такое решить без отвлечения на частности (прежде всего речь о наработках в области межпроцессного взаимодействия разных экземпляров ББ)? Т.е. чтоб "IMPORT IPC;" и вперед. И если есть, то как это примерно выглядит (архитектурно)?

Как такое в ББ решается сейчас (и решается ли вообще?).
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

Илья Ермаков

  • Sr. Member
  • ****
  • Сообщений: 493
    • Просмотр профиля
Re: Нужна ли "инженерия кодинга"?
« Ответ #31 : Февраль 13, 2012, 09:01:35 am »
Мне не неприятно, мне всё равно то, о чём мы тут с Вами говорим. У меня нет такой трепетности к сетевому общению, как у многих. И какое там обрывочное впечатление кто-то себе достраивает по репликам на фоурмах - тоже.

Теперь о деле. Я не помню, что было в том сообщении. Могу предположить, что там был какой-то ответ на моё? Тогда его удалили вместе с моим сообщением раньше, чем я прочитал. Я редко бываю на форумах в "реальном времени".
Кроме того, вероятно, то, что было сочтено администрацией "пикировкой", начал я, а не Вы. Таким образом, именно моё нарушения стало причиной того, что потом вырезали что-то из Вашего сообщения (как упоминание моего удалённого). Мои сообщения тоже нередко модерируют, потому что водится за мной грешок - сначала написать, а потом уже подумать.
Т.е. в данной ситуации Вы, могу предполагать, ни в чём не нарушили правила. А нарушил я (или кому была адресована удалённая часть вашего сообщения?).

Илья Ермаков

  • Sr. Member
  • ****
  • Сообщений: 493
    • Просмотр профиля
Re: Нужна ли "инженерия кодинга"?
« Ответ #32 : Февраль 13, 2012, 09:04:01 am »
Илья, что скажишь по поводу вот этого:

Как такое в ББ решается сейчас (и решается ли вообще?).

Мы пробовали грузить несколько ББ в одно адресное пространство и взаимодействовать между ними через спец. объекты, типа Files.File  в памяти. Т.е. эти объекты инкапсулируют разделяемую память, работа с которой ведётся сторонами через ридеры-врайтеры.
Понимание есть, планы есть; реально проекты пока в однопоточном режиме, т.к. в коммерческих задачах хватало; а на "перспективу" не хватает времени...

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Нужна ли "инженерия кодинга"?
« Ответ #33 : Февраль 13, 2012, 09:10:42 am »
Илья, что скажишь по поводу вот этого:

Как такое в ББ решается сейчас (и решается ли вообще?).

Мы пробовали грузить несколько ББ в одно адресное пространство и взаимодействовать между ними через спец. объекты, типа Files.File  в памяти. Т.е. эти объекты инкапсулируют разделяемую память, работа с которой ведётся сторонами через ридеры-врайтеры.
Понимание есть, планы есть; реально проекты пока в однопоточном режиме, т.к. в коммерческих задачах хватало; а на "перспективу" не хватает времени...
А в принципе как задача подобная той что у Влада решается (http://oberspace.dyndns.org/index.php/topic,184.msg3217.html#msg3217)? В рамках одного ББ, или же в рамках ансамбля ББ (каждый в своем адресном пространстве, то есть по процессу на брата)?
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

alexus

  • Гость
Re: Нужна ли "инженерия кодинга"?
« Ответ #34 : Февраль 13, 2012, 09:10:56 am »
Т.е. в данной ситуации Вы, могу предполагать, ни в чём не нарушили правила. А нарушил я (или кому была адресована удалённая часть вашего сообщения?).
... а может и правда не поздно?..
Удивительно, что подобие организованных структур встречается в хаосе... правда, оно очень недолговечно и рассыпается так же быстро, как и образуется...

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Нужна ли "инженерия кодинга"?
« Ответ #35 : Февраль 13, 2012, 04:11:17 pm »
Мы пробовали грузить несколько ББ в одно адресное пространство и взаимодействовать между ними через спец. объекты, типа Files.File  в памяти. Т.е. эти объекты инкапсулируют разделяемую память, работа с которой ведётся сторонами через ридеры-врайтеры.
Понимание есть, планы есть; реально проекты пока в однопоточном режиме, т.к. в коммерческих задачах хватало; а на "перспективу" не хватает времени...

Попытаюсь конкретизировать. Если мне скажут, что мне больше недоступна многопоточность, то применительно к запуску копий у меня сразу возникнут следующие вопросы:
1. Как два и более экземпляров будут уживаться одновременно:
- как они делят логгинг
- как они делят взаимодействие с ОС (регистрируются себя на каких-то портах или как теперь будут открываться файлы .odc).
2. Как будет выглядеть неблокирующее взаимодействие. Т.е., в какой момент будет делаться push и в какой момент будет делаться poll/pull.
3. Насколько прозрачно это будет для приложения в целом. Т.е. что можно и что нельзя делать при написании совершенно других частей приложения, не имеющих прямого отношения к такой реализации "многопоточности". Например, если я добавляю фичу, показывающую иконку в трее - не должно возникнуть ситуации, что в какой-то момент в трэе стало показываться 10 иконок.

P.S. Сама "связь" с точки зрения реализации IPC (pipes, shared memory, mutexes), включая сериализацию - не сильно интересно, легко представить и про "типизированные файлы" в обероне я уже читал.
« Последнее редактирование: Февраль 13, 2012, 04:14:19 pm от vlad »

alexus

  • Гость
Re: Нужна ли "инженерия кодинга"?
« Ответ #36 : Февраль 13, 2012, 08:31:33 pm »
Мы пробовали грузить несколько ББ в одно адресное пространство и взаимодействовать между ними через спец. объекты, типа Files.File  в памяти. Т.е. эти объекты инкапсулируют разделяемую память, работа с которой ведётся сторонами через ридеры-врайтеры.
Понимание есть, планы есть; реально проекты пока в однопоточном режиме, т.к. в коммерческих задачах хватало; а на "перспективу" не хватает времени...

Попытаюсь конкретизировать. Если мне скажут, что мне больше недоступна многопоточность, то применительно к запуску копий у меня сразу возникнут следующие вопросы:
1. Как два и более экземпляров будут уживаться одновременно:
- как они делят логгинг
- как они делят взаимодействие с ОС (регистрируются себя на каких-то портах или как теперь будут открываться файлы .odc).
2. Как будет выглядеть неблокирующее взаимодействие. Т.е., в какой момент будет делаться push и в какой момент будет делаться poll/pull.
3. Насколько прозрачно это будет для приложения в целом. Т.е. что можно и что нельзя делать при написании совершенно других частей приложения, не имеющих прямого отношения к такой реализации "многопоточности". Например, если я добавляю фичу, показывающую иконку в трее - не должно возникнуть ситуации, что в какой-то момент в трэе стало показываться 10 иконок.

P.S. Сама "связь" с точки зрения реализации IPC (pipes, shared memory, mutexes), включая сериализацию - не сильно интересно, легко представить и про "типизированные файлы" в обероне я уже читал.
Вот к примеру браузер... На каждое окно по процессу (почти)... и логи делят, и трей... и из оконного интерфейса не конфликтуют, но это было изначально заложено/спроектировано. А прикручивать "по ходу дела"... одна головная боль. Дело даже не в том, как разделить ресурсы, нужен качественный арбитраж... над-система... а её из частных задач не выведешь, надо сесть и специально спроектировать.

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Нужна ли "инженерия кодинга"?
« Ответ #37 : Февраль 13, 2012, 08:53:41 pm »
Вот к примеру браузер... На каждое окно по процессу (почти)... и логи делят, и трей... и из оконного интерфейса не конфликтуют, но это было изначально заложено/спроектировано. А прикручивать "по ходу дела"... одна головная боль. Дело даже не в том, как разделить ресурсы, нужен качественный арбитраж... над-система... а её из частных задач не выведешь, надо сесть и специально спроектировать.

Угу. Вот у меня точно такое же ощущение - нужно садиться и специально проектировать. Иначе будет лажа, которую постоянно залатывать надо.

Илья Ермаков

  • Sr. Member
  • ****
  • Сообщений: 493
    • Просмотр профиля
Re: Нужна ли "инженерия кодинга"?
« Ответ #38 : Февраль 15, 2012, 04:39:57 am »
Попытаюсь конкретизировать. Если мне скажут, что мне больше недоступна многопоточность, то применительно к запуску копий у меня сразу возникнут следующие вопросы:

Нет, многопоточности нет в каждой отдельно взятой копии ББ. А так - каждая копия запускается со своим потоком.
Получаются изолированные объектные пространства (и сборки мусора в них), но общее адресное, что позволяет разделять двоичную память.
Как в MS Singularity - "software isolated processes".