Naira: Небольшой девлог

В общем, добрался я до нового модуля и решил запилить постик. Заодно благодаря этому я вынужден вести документацию, уверен, мне это послужит хорошую службу.

КДПВ - рандомная ламия из яндекса.<br />
КДПВ - рандомная ламия из яндекса.

Для начала, я немного прибрался в таблице связи элементов. Теперь она выглядит куда как чище. Поводом для этого стала оптимизация расположения элементов... но хэй, зато теперь всё стало немного лучше и проще.

Было - куча перекрывающихся элементов, всё вокруг всего - в общем, нагромождение.<br />
Было - куча перекрывающихся элементов, всё вокруг всего - в общем, нагромождение.
Стало. перекрестия только в одном месте - да и то больше для эстетики.<br />
Стало. перекрестия только в одном месте - да и то больше для эстетики.

Да, глядя на схему можно уже заметить потенциальную проблему со связкой Act<->Script, но это вопрос к тому, чтобы написать сборщик мусора в том или ином виде. С другой стороны, забывание историй не то что бы предполагается с одной стороны, а с другой стороны "мне кажется, что я что-то не могу вспомнить" - вот вроде и баг, а как-то человечнее смотрится. Главное, чтобы не вышло "And it's design is very human".

Ну да ладно, просто блоки двигать каждый ёж сможет, а что по делу-то?

Вот он, плод любви ежа и ужа, а вернее больной фантазии и питона. Пока что не оттестированный.<br />
Вот он, плод любви ежа и ужа, а вернее больной фантазии и питона. Пока что не оттестированный.

Хотел я написать либо что-то прекрасное, либо что-то ужасающее, но получилось что-то среднее.

Эта функция - текущая база Act'a. Но интересна она тем, какой говнокод я в ней навертел, зацените.

Во-первых коммент русскими буквами - это маркер качества. Вернее его отрицательного значения.

Во-вторых, внимательный читатель воскликнет: "Э, паря, ты там IF не забыл вообще!?" Хотя нет. Не знакомый с Питоном читатель словит панику, потому что "Где типы?! Что я вообще вижу!?

В общем, что я тут наговнокодил:

"Ты куда IF'ы дел, окаянный!?"<br />
"Ты куда IF'ы дел, окаянный!?"

Так как питон не умеет в перегрузки (т.е. "выбирать куда совать исходя из данных") тут я кручу-верчу перегрузку "ручками", чтобы на выходе данные были одинаковыми вне зависимости от того как я это потом реализую. И всё бы ничего, если бы я не захотел избавиться от IF'ов (которых тут и нет). Ниже будет пример с ними.

Этот код делает одно и то же, просто записано по-разному.<br />
Этот код делает одно и то же, просто записано по-разному.

Избавиться от IF'ов оказалось довольно просто: всего лишь надо было избавиться от операций присвоения (питон такой питон). Потому что IF пускает если получает на вход бульку True и не пускает, если получает бульку False. Но вопрос: а зачем мне вообще IF, если я могу отложить бульку вникуда? Вот именно, не за чем, а значит можно записать в одну строку.

Хотя на самом деле - просто питон не умеет в переводы строк нормально. Вот и выходит кошмар из 80-х.

Ну а внизу я проверяю что типы совпадают и всё работает.

собственно, логика.<br />
собственно, логика.

А тут можно увидеть гораздо более читаемый код с IF'ами, а так же несколькими попытками переписать это в компактный говнокод, которые я буду проверять после тестов.

Теперь Найра может сравнивать истории по степени подобия. Надо теперь понять что я от этого хочу.

Подытоживая я набросал небольшую схему связи новой логики. Лишь бы прокрастинировать, ага.

Схема сделана далеко не по ГОСТу, но зато всё видно.<br />
Схема сделана далеко не по ГОСТу, но зато всё видно.

На ней можно видеть как примерное направление течения данных, так и кусок из "Истории/Скрипта", который как раз для того чтобы контактировать предназначен. В общем, пока что так побудет, а там переделаю, может удастся сделать ещё ужаснее.

А вот с тестами не задалось.

С одной стороны - прошлая неделя была геморройной в плане здоровья, а с другой стороны - у меня мозги заклинило. Какую-то имитацию мобы типа картошки набросал с захватом баз, потом упростил до сингловой РПГ про спасение принцессы, где просто надо пройти по прямой. Поторговав, дёрнув за рычаг и убежав от магмы.

На сегодня это всё, о чём стоит упомянуть, наверное.

Хочу энерогос =_=". С ним думается полегче.

821821 показ
5353 открытия
Начать дискуссию