Продолжаю писать
Entlink - будущий движок Лиги и других сайтов. Казалось бы, я всё расписала, нарисовала схемы, определилась с методом действия... И всё равно столько всего вылезает -_-
Например.
У нас есть сущность "неофит". Когда мы нажимаем кнопку "редактировать", то можем (сможем) редактировать его название, тексты всякие, список атак... Но не можем редактировать его
базовую форму - первого покемона в дереве эволюции. Он проставляется автоматически.
Когда мы нажимаем "Отправить", система должна проверить полноту, корректность и безопасность данных. Несмотря на то, что в отправленных данных нет "базовой формы", система должна считать их полными. И сама рассчитать этот параметр. Если какие-то графы отсутствовали в редактировании и изменяются в другом месте, их отсутствие не должно говорить о неполноте картины. Чтобы проверить корректность, она должна убедиться в уникальности имён неофита. Кроме того, она должна удалить из списка атак те, которые были удалены, сохранить те, которые пользователь не трогал, и добавить те, которые он добавил... Также проверив всё это на корректность - не была ли приписана несуществующая атака, например? А если была создана новая атака - то её надо проверить, добавить в список сущностей "атаки", а потом приписать неофиту... А если что-то не так, система должна оценить корректируемость данных, а также вернуть список ошибок. А потом расшифровать их пользователю: "У тебя вот здесь недостаточно длинное название атаки..."
И всё это должно делаться более ли менее универсальными методами, а не как сейчас на Лиге: каждая подобная проверка написана вручную. Новый движок должен применять одни и те же подходя для неофитов, статей, комментариев, да даже ловли, если цели совпадают.
Наверное, я ещё не гожусь в профессиональные программисты, потому что голова от этого пухнет жутко. Думаю, когда я решу устройство этого ядра, останется в основном рутина, но пока что...