|
![]() |
#1 |
Участник
|
> Никому не нужна общность отверстий кроме программистского мозга.
Я знаю одно выражение, использующее общность отверстий. Там прямо квантор всеобщности и просторечное выражение обозначающее отверстия (но по контексту ясно что не имеются ввиду прорехи в одежды). С моей стороны было бы адским ламеризмом что-то там заявлять, про общность рта и ануса, тем более, что непонятен контекст - хочет жаба лечить человека, препарировать его или кормить. Я бы стал извлекать сведения из доменного специалиста или книжки, но мне влом. В википедии: "The anus (from Latin anus meaning "ring", "circle") is an opening at the opposite end of an animal's digestive tract from the mouth." "In biological anatomy, commonly referred to as the mouth, under formal names such as the oral cavity, buccal cavity, or in Latin cavum oris,[1] is the opening through which many animals take in food and issue vocal sounds." "Some animal phyla, including vertebrates, have a complete digestive system, with a mouth at one end and an anus at the other. Which end forms first in ontogeny is a criterion used to classify animals into protostome and deuterostome." То есть у тех, у кого есть пищеварительная система на одном конце есть отверстие рот, на другом анус. Как эксплуатируется эта общность явно выраженная в википедии, фиг знает. Всякие вендоры, кастомеры и контрагенты как понятие не являются элементом реальности. С моей точки зрения. Они уже предмет какой-то классификации с какой-то точки зрения. Даже то, что вот эти два оранжевых кругляшка классифицированы как апельсины - уже результат анализа. Просто этот результат нам привычен и лежит в чьей-то голове, из которой его можно выковырять. Соответственно пример со ртом и анусом мне непонятен и почему вендор - взят из реальности, а контрагент - нет тоже. Еще следует учесть, что формальные языки отличаются от естественных: что-то может подразумеваться по контексту, что-то быть сформулированно выражением, так что вполне может появится класс РотИлиАнус или типа того. ![]() Плохо придумывать свои термины, когда есть готовые, надо смотреть что люди уже успели наклассифицировать, но из-за ограничения скопа и ограничений формальных языков иногда полезно. |
|
![]() |
#2 |
Banned
|
Цитата:
Сообщение от belugin
![]() тем более, что непонятен контекст - хочет жаба лечить человека, препарировать его или кормить.
... Еще следует учесть, что формальные языки отличаются от естественных: что-то может подразумеваться по контексту, что-то быть сформулированно выражением, так что вполне может появится класс РотИлиАнус или типа того. ![]() ... Плохо придумывать свои термины, когда есть готовые, надо смотреть что люди уже успели наклассифицировать, но из-за ограничения скопа и ограничений формальных языков иногда полезно. Посыл мой в том что нахождение ООП общности в бизнес-логике - неуместно. Это привело к кросс-модульной организации и DB и кода. Более того ООП вообще вредно и ненужно для ERP. |
|
![]() |
#3 |
Участник
|
Цитата:
![]() Цитата:
Посыл мой в том что нахождение ООП общности в бизнес-логике - неуместно. Это привело к кросс-модульной организации и DB и кода. Более того ООП вообще вредно и ненужно для ERP.
Что такое "Кросс-модульная организация кода"? |
|
![]() |
#4 |
SAP
|
Поддерживаю. Надо было апдейтить ядро, совершенствуя технологии и оставить в покое бизнес-логику и БД, написанную на 4GL.
|
|
![]() |
#5 |
NavAx
|
Цитата:
Есди продолжать проводить аналогии с биологической классификацией, то oris и anus объединили по каким-то общим признакам, а вот нос, желудок, верхние и средние разделы кишечника, протоки желез в эту классификацию почему-то не попали. При этом физиологически они сделаны разными, а вот перифирийная нервная система из одного узла активируется.
__________________
Isn't it nice when things just work? |
|
![]() |
#6 |
Участник
|
Цитата:
|
|
![]() |
#7 |
NavAx
|
Цитата:
В принципе, в древних системах, в CustTrans и VendTrans нужды вообще не было. Ты просто делаешь аналитику Клиент по этим счетам ГК и прямо оттуда можешь баллансы смотреть. В 2012-ю как раз этот допотопный механизм и притащили с таким героическими усилиями. Именно для этого и созданны все эти account structures. Заполняешь аналитику Customer в проводке, которая идет в AR счет. А дальше когда надо проводки по этому клиенту посмотреть, или балланс, прямо из ГК и берешь. Там даже сопоставление есть. А на AP счетах у тебя аналитика Vendor. Тоже все просто. Все можно делать тупо через журлал ГК с типом счета Ledger. И вот в системе у нас ГК, которая делает CustTrans, VendTrans ненужными. Но и CustVendTrans тоже никуда не неделись. При этом TaxTrans почему-то в эту чудесную иерархию не попадают. И payroll тоже. И даже для банков у нас какой-то причудливый reconciliation, который, по сути дела, тот же settlement, только чудовищно кривой. Т.е. как раз дублирования в коде и функционале выше крыши. И чтобы это дублирование поддерживать, приходится писать всякие феерические reconciliation reports. Количество дублирования только нарастает. Но при этом произвольные куски вдруг покрыты иерархиями. В то время как другие вполне себе отдельно живут.
__________________
Isn't it nice when things just work? Последний раз редактировалось macklakov; 27.06.2017 в 09:26. |
|
![]() |
#8 |
Модератор
|
Цитата:
Сообщение от macklakov
![]() Одновременно и слишком много и недостаточно. А все потому, что не было понимания, что и зачем обообщают.
В принципе, в древних системах, в CustTrans и VendTrans нужды вообще не было. Ты просто делаешь аналитику Клиент по этим счетам ГК и прямо оттуда можешь баллансы смотреть. В 2012-ю как раз этот допотопный механизм и притащили с таким героическими усилиями. Именно для этого и созданны все эти account structures. Заполняешь аналитику Customer в проводке, которая идет в AR счет. А дальше когда надо проводки по этому клиенту посмотреть, или балланс, прямо из ГК и берешь. Там даже сопоставление есть. А на AP счетах у тебя аналитика Vendor. Тоже все просто. Все можно делать тупо через журлал ГК с типом счета Ledger
__________________
-ТСЯ или -ТЬСЯ ? |
|
|
За это сообщение автора поблагодарили: macklakov (1). |
![]() |
#9 |
NavAx
|
Цитата:
И зачем было в ГК встраивать возможность вести учет в разрезе клиента или единицы номенклатуры, когда есть специализированные модули?
__________________
Isn't it nice when things just work? |
|
![]() |
#10 |
Модератор
|
Цитата:
Цитата:
И зачем было в ГК встраивать возможность вести учет в разрезе клиента или единицы номенклатуры, когда есть специализированные модули?
Цитата:
Зачем было городить искуственную иерархию сущностей, между которыми общего столько же, сколько и почти с любым другим модулем?
__________________
-ТСЯ или -ТЬСЯ ? |
|
|
За это сообщение автора поблагодарили: EVGL (1). |
![]() |
#11 |
Banned
|
Цитата:
Никому не нужна общность отверстий кроме программистского мозга.
|
|
![]() |
#12 |
Banned
|
Цитата:
Сообщение от belugin
![]() Тут мне ниже говорят, что в случае custvend общность признков-так есть и она полезна. И в исходном треде полно специалистов которые как мне кажется пришли к такому выводу
![]() ... Что такое ООП-общность и чем она отличается от других видов общности? Что такое "Кросс-модульная организация кода"? Прямо сейчас я делаю деплоймент своего кода в котором нет ООП но есть общность кода. BlaBlaUtilBlaClass: ![]() BlaBlaUtilBlaClass: ![]() Методы вызываются в седьми местах совсем разного кода где только больной будет искать ООП. Хотя если мне заплатят за ООП я его могу нарисовать на высшем Java уровне, я это умею. Но смысла в этом никакого нет. Все что мне нужно это вызывать общий код и менять его в одном месте. Тупо и надежно - все что мне нужно. Кросс-модульная - это конечно я загибаю так как ERP это практически у всех (как я понимаю) исторически монолит, но по хорошему ООП должно ограничиваться границами модуля. Чтобы модуль был отделяемым и самостоятельным. Достаточно утопично поэтому и говорю что лучше вообше без ООП. Систему на процедурах гораздо легче поделить на модули и по-моему намного проще расширять снаружи. Зачем не NAV, а AX положили на алтарь мне непонятно. Цитата:
Сообщение от Pavel
![]() Хмм... содержательная у вас тут дискуссия.)
Иногда заглядываю, что обсуждают кодеры в первых топиках и прихожу в ужас. Такая 'эволюция', просто как с навигатором по GPS в сортир дома ходить... а когда пропадает сигнал, 'забыв обо всем', решать вопросы со спутниками и коммуникациями. Если отвлечься от 'бытовухи' и чисто ради 'академического интереса' задаться вопросом: насколько ООП сочетается/противоречит технологии слоев (своего рода полиморфизм) или системным номерам таблиц и полей (выделение диапазонов для ядра и доработки)? - то становится интересно мнение творцов этого синтеза.) ООП это все не нужно, как самодостоточной технологии. Цитата:
![]() ![]() Последний раз редактировалось ax_mct; 28.06.2017 в 02:38. Причина: Заменил размер jpg |
|
|
За это сообщение автора поблагодарили: macklakov (1). |
![]() |
#13 |
Участник
|
|
|
![]() |
#14 |
Banned
|
То что модуль ERP должен быть самодостаточным доменом - это на самом деле золотая идея. Те же микро-сервисы но уровне модулей ERP.
ООП без границ модулей - создало неподьемный монолит. Цитата:
ООП - это хороший инструмент, но ООП для бизнес-логики ERP приносит намного больше вреда чем пользы. Поэтому код по несколько тысяч строк - меньшее из зол. |
|
![]() |
#15 |
Участник
|
Цитата:
А почему? Могу сказать, что корень всего зла кроется в сжатых сроках, в рамках которых необходимо выполнить задачу. Чаще всего самый дебильный код получается тогда, когда ты с ошалевшими глазами стучишь по клавиатуре, и нет у тебя времени на рефакторинг своего кода. ![]()
__________________
// no comments |
|
![]() |
#16 |
Участник
|
Цитата:
Сообщение от dech
![]() Полный бред. Вы соглашаетесь, что ООП - это хорошо и тут же пишете, что это плохо. С чего бы самому ООП быть злом? Может быть зло в тех, кто не умеет применять ООП? Я готов поспорить, в MS полно таких ребят. В АХ2012 появилось очень много "неправильной" архитектуры.
А почему? Могу сказать, что корень всего зла кроется в сжатых сроках, в рамках которых необходимо выполнить задачу. Чаще всего самый дебильный код получается тогда, когда ты с ошалевшими глазами стучишь по клавиатуре, и нет у тебя времени на рефакторинг своего кода. ![]() Не то чтобы я с вами не был согласен ![]() |
|
|
За это сообщение автора поблагодарили: Logger (1). |
![]() |
#17 |
Banned
|
Цитата:
Бизнес это живой функционирующий организм который сегодня ходит на ногах, а завтра на руках. SOP, SOA - здесь намного более уместнее чем OOP. Грубо SOA это функция в которую мы передаем объекты, бизнес-процесс отделим от данных. В то время как OOP это обьединение данных и функций как некое моделирование реальности. По факту с OOP мы натягиваем зад на глаз только ради парадигмы, а не как отражение реальности. При том что результат действия нашего кода - выполнение той или иной функции обработки. ООП это помеха быстрому и надежному программированию бизнес-логики. ООП хорошо только для платформы как единственного и технического фрэймворка. ООП это как короткая юбка на темной улице. Если бы Аксапта не поддерживала ООП то она былв бы сейчас живой. Последний раз редактировалось ax_mct; 13.07.2017 в 22:36. |
|
![]() |
#18 |
Участник
|
Мне кажется, важнее всего не то, что модуль можно вынуть и заменить на что-то, а то что этот модуль вообще выделен как сущность обособленная, то есть имеющая минимум связей с другими модулями. Не только связей по коду, но и связей по данным. Эти связи должны быть максимально четко специфицированы и их должно быть невозможно случайно нарушить. Если выделить в системе такой модуль, то оказывается, что сложность его познания и развития упала на порядок, что собственно и требуется. Можно ли использовать для реализации такой модульности ООП? Наверное, можно в какой-то части. Я бы наверное взял из ООП принцип инкапсуляции и постарался им ограничиться.
|
|
![]() |
#19 |
SAP
|
Цитата:
Сообщение от Bobkov
![]() Мне кажется, важнее всего не то, что модуль можно вынуть и заменить на что-то, а то что этот модуль вообще выделен как сущность обособленная, то есть имеющая минимум связей с другими модулями. Не только связей по коду, но и связей по данным. Эти связи должны быть максимально четко специфицированы и их должно быть невозможно случайно нарушить.
Разбить модули на независимые сервисы можно, но разделение данных нарушит нормализацию, вместо одной БД возникнет столько, сколько сервисов. Тогда возникнут новые проблемы... не менее интересные (кто занимался синхронизацией и репликацией распределенных данных, тот сталкивался). |
|
![]() |
#20 |
Banned
|
Цитата:
Сообщение от Bobkov
![]() Мне кажется, важнее всего не то, что модуль можно вынуть и заменить на что-то, а то что этот модуль вообще выделен как сущность обособленная, то есть имеющая минимум связей с другими модулями. Не только связей по коду, но и связей по данным. Эти связи должны быть максимально четко специфицированы и их должно быть невозможно случайно нарушить. Если выделить в системе такой модуль, то оказывается, что сложность его познания и развития упала на порядок, что собственно и требуется. Можно ли использовать для реализации такой модульности ООП? Наверное, можно в какой-то части. Я бы наверное взял из ООП принцип инкапсуляции и постарался им ограничиться.
Но нам скажут что "одним из методов написания модульных программ является объектно-ориентированное программирование. ООП обеспечивает высокую степень модульности благодаря таким свойствам, как инкапсуляция, полиморфизм и позднее связывание." В то время как ООП нельзя давать в руки адептов это религии в принципе, так как они сокрушат все стенки в доме просто потому что им так лучше видно. Проткнут насквозь все что можно проткнуть. Поэтому те люди что используют T-SQL для бизнес-логики - они гениальны. Потому как программисты больные на голову - им может не хватать слоев абстракции ![]() |
|
|
|