xStream 86 Опубликовано 1 Февраля 2015 Карлан писал(а): В общем и целом поддержу Дениса, критиковать думаю уместно разве что с предложением альтернативно-лучшего варианта выложенной разработки. , то есть, если на фоне существующих решений, решение кажется не айс, то эти существующие нельзя как вариант приводить? Обязательно очередной лисапед? Карлан писал(а): Остальная критика как по мне - снобизм. А я считаю, что те, кто написал такие же велосипеды, имеют право критиковать - опыт есть. Карлан писал(а): Да и для большинства модов суперсистем Это что за системы такие? Если вы про высокоуровневые, то у меня для вас плохие новости: вы повторяете путь тех, кто прошел "эволюцию" несколько лет назад, выдаете такие же решения, и при этом говорите, что костыльного типа решения (один в один как те, олдскульные и якобы непригодные) - айс, а получше и поэффективнее - фигня. Удачи, чо Карлан писал(а): оно уже есть в нормальном варианте, Как вы смеете это использовать?! Это же суперсистема! Карлан писал(а): опять же я сам лично колоссальных различий не замечал Тогда чего это конкретно то, что тут предлагается, нужно принимать с радостью и уважением? Про бритву Оккама слышали? 1 Все, кто стоит на моем пути: идите нахрен и там погибните! © Поделиться этим сообщением Ссылка на сообщение
xStream 86 Опубликовано 1 Февраля 2015 Dennis_Chikin писал(а): Означает ли все написанное, что в 2015-ом году все обязаны делать вот так: Это означает, что выкинуть это "вот так" вообще в принципе И это не зависит от года. Твой лисапед не сильно от этого отличается. Dennis_Chikin писал(а): только прикрутить еще куда-то сбоку систему ивинтов и песочницу от одного конкретного автора (указать, какого именно) Системы ивентов - всего лишь один файл! О.Д.И.Н. с более менее внятными примерами. И для его работы напрочь не нужно "вот так". Dennis_Chikin писал(а): Кто не хочет делать так - отключить от интернетов и сослать на лесоповал ? Естественно. На земле дерьмокода и так тысячи 1 Все, кто стоит на моем пути: идите нахрен и там погибните! © Поделиться этим сообщением Ссылка на сообщение
xStream 86 Опубликовано 1 Февраля 2015 Карлан писал(а): только в противном случае ты должна меня ткнуть носом в какую-то более менее вменяемую сборку модулей Тыкали. Неоднократно. Но видимо там слишком сложно с интрукцией и примерами. Карлан писал(а): Ну это вот всякие новомодные ивенты, хранилища и тэпэ (хотя и это все далеко не вчера придумано ). То же самое - новомодному сто лет в обед. Даже у Артоса, которого так хвалишь, благополучно затырены в мод все эти вещи. Карлан писал(а): Видимо ты меня не поняла... Поняла, но есть такая штука, как сарказм Все, кто стоит на моем пути: идите нахрен и там погибните! © Поделиться этим сообщением Ссылка на сообщение
xStream 86 Опубликовано 1 Февраля 2015 Карлан писал(а): Можно еще раз? Предполагаю конечно что это за сборка, но боюсь там как раз и есть та самая бритва . Вами любимый Артос, к примеру, но он сделал тоже то еще гм... Просто брал то, что делали другие и убивал часть идеи, но и на том спасибо - часть удобства доходила до конечных потребителей. Карлан писал(а): И именно после этого и начал хвалить Артоса, т.к. собственно подобного нигде ранее не наблюдалось. Хвалить надо тех, кто сделал то, что он натырил Тогда какие еще могут быть вопросы то? Вот оно - удобное, а то что здесь, гм... Все, кто стоит на моем пути: идите нахрен и там погибните! © Поделиться этим сообщением Ссылка на сообщение
xStream 86 Опубликовано 1 Февраля 2015 Artos писал(а): подтверди, плз, свои слова о "он натырил" конкретными фактами плагиата/воровства, Ну я не употребляла слово "плагиат" или "воровство". И я не говорила, что это плохо. Так что в позу богомола не стоит вставать. Мне не нравилось никогда твое стремление все сделать универсальным и я этого никогда не скрывала. Стиль программирования тоже не импонирует, но тут уж точно личное дело каждого. Более того, я признаю и даже спасибо скажу за то, что хоть так, но в массы пошло то, что действительно развивалось со временем, а не хромоножки. Спасибо. Artos писал(а): "натырил/своровал" Акцентирую: натырил - напихал всего и вся, своровал - я не употребляла это слово. Ты всегда указывал авторов, никаких претензий. Artos писал(а): схоже с изливанием накопившейся желчи... Это даже смешно Nazgool писал(а): Но не у всех же ещё зубы выросли. Но уже ведь пытаются грызть. Если я правильно поняла метафору, то... То вот: если грызут, то это отлично! Если грызут и хаят предшественников, на чьем труде учились - не айс. Если грызут и говорят, что их леденец круче и вкуснее, то пусть готовятся аргументировать и доказывать. И тут дело не вкуса даже. В программировании есть такое понятие, как эффективность (помимо читаемости, скорости кода, скорости разработки и т.п.). Так вот эту эффективность стоит доказывать, иначе будет то, из-за чего весь бор и пошел - вместо одной рухляди писать свой велосипед и называть его мотоциклом. Да ради Б-га! Но отстаивать надо. Как делали другие 2 Все, кто стоит на моем пути: идите нахрен и там погибните! © Поделиться этим сообщением Ссылка на сообщение
xStream 86 Опубликовано 1 Февраля 2015 Artos писал(а): Не нужно извращать русский язык, пытаясь именно воровское/криминальное слово Вот только не надо вот этого Были "непонятки", мы разобрались, я объяснила, что имела ввиду, а вот учить меня речи не стоит, право слово. Artos писал(а): свой базар! Раз вы столь ревностный блюститель чистоты речи, то что же вы тюремный жаргон используете? Атата. Artos писал(а): И не смешно, если бы не было грустно что и в новый форум переносятся манеры и дрязги детских песочниц: "Не трожь мой песочек и лопатку. Мой куличик самый красивый и не смей его трогать и ругать...А вот твой куличик - это дрянь, и даже вовсе не твой..." Ну простите, что взрослая тетя пришла и поломала ваш куличик и попортила душевное равновесие. Artos писал(а): Жаль сама не всегда следуешь этому принципу, "критикуя" труд других. Разница в том, что, как я написала, я стараюсь доказать, аргументировать, почему мой... гм... куличик, лучше или отличается от других. Без категоричного "мой куличик лучше всех!". Разве нет? Более того, "нападая" на несчастных окружающих, я готова вытерпеть такое же "нападение": важно движение вперед, тут демократия не работает. Artos писал(а): Далее предлагаю "курильщикам" не продолжать скользкие темы, принижающие одних и выпячивающие других. Эм... Ок. Да, босс. ЗЫ Зная твою любовь к тому, чтобы последнее слово было за тобой, уступаю: ты белый и пушистый, я была неправа и все такое. Все, кто стоит на моем пути: идите нахрен и там погибните! © Поделиться этим сообщением Ссылка на сообщение
xStream 86 Опубликовано 1 Февраля 2015 @Карлан, эм. Вы напрашиваетесь на нецензурный ответ, молодой человек. Это ваши половые трудности, что вы так реагируете на слова. А про все остальное уже уважаемый @Viнt@rь расписал. Просто пошло переливание из пустого в порожнее в который раз, да еще проявилась ущемленная гордость у кое-кого. Ректальный нагрев произошел. Так что к этому всему прибавить нечего - присоединяюсь к Назгулу. Карлан писал(а): 3 года назад общими усилиями изобрели эти все системы, и каждый их видимо допилил до такого состояния, которое ему было нужно (мне так показалось). Не было никаких общих усилий и не было никакого "под себя". Но это все ерунда. Все началось с некоего персонажа, весьма резко высказавшегося в духе "вот хреново-то сделано было, а я д'артаньян - у меня крутяк". Собственно лично меня именно это немножко огорчило. А там дальше по накатанной понеслось: ЧСВ звездных величин, отсутствие знаний и возможности идти на компромиссы, когда закончились аргументы, то перешли на грамматику и словарный запас. Что примечательно, извинения не работают и каждый пытается учить остальных. Это нормально? Прошу заметить: лично я не хаяла, я задавала вопросы и высказывала мнение, которое всего лишь не было "толерантным". Что, в принципе, и вызывало ректум темпера. Спокойной ночи. Все, кто стоит на моем пути: идите нахрен и там погибните! © Поделиться этим сообщением Ссылка на сообщение
xStream 86 Опубликовано 2 Февраля 2015 Viнt@rь писал(а): Больше склоняюсь к кое-когда сказанному xStream - термину псевдо-ООП. Ненене, девидблейн Я это говорила не про луа. А про простую реализацию, которую я выкладывала. Она была очень упрощенной, потому и была "всевдо-ооп" - я хотела показать, что не так уж и сложно реализовать парадигму с помощью ЛУА. 1 Все, кто стоит на моем пути: идите нахрен и там погибните! © Поделиться этим сообщением Ссылка на сообщение
xStream 86 Опубликовано 2 Февраля 2015 malandrinus писал(а): Именно для упрощения сопровождения я очень густо комментирую свой код. Тоже в качестве лирики: у нас принято писать self-explaining код. Если появились комментарии, значит где-то код перестал быть тривиальным, и это тревожный звоночек. Это не значит, что их не должно быть: если логика нетривиальна или громоздка и это не исправить (а иногда просто незачем), они необходимы. 1 Все, кто стоит на моем пути: идите нахрен и там погибните! © Поделиться этим сообщением Ссылка на сообщение
xStream 86 Опубликовано 2 Февраля 2015 malandrinus писал(а): self explained код - это миф. Что можно сделать, чтобы код говорил сам за себя, кроме того, что красиво его отформатировать и дать переменными и функциям внятные имена? Я это в обязательном порядке делаю, но этого совершенно недостаточно. А у нас на роёне это не миф. Да и вообще, я же там мелким ан нет, не мелким шрифтом написала: до тех пор, пока этого достаточно. В одном месте с меня требовали, например, описывать вплоть до блоков кода. А в другом всем было пофиг. И те и другие благополучно сопровождают проекты до сих пор. malandrinus писал(а): Например Ну вот собственно это нормальный пример, который на мой взгляд документирован слегка избыточно (ибо названия функций, но не полностью избыточно - из-за разношерстного интерфейса), но в целом все то, о чем и говорим. @Malandrinus, про хуки и хаки - само собой, это не относится к тривиальным вещам в принципе. @abramcumner, да, точно! Nazgool писал(а): И код будет читаться намного быстрее, т.к. уже знаешь чего от него ожидать. Для меня быстро читается distance_between, а если ты не знаешь, что это и кто такие сталкеры, то тут не комментарии нужны, а ртфм Все, кто стоит на моем пути: идите нахрен и там погибните! © Поделиться этим сообщением Ссылка на сообщение
xStream 86 Опубликовано 2 Февраля 2015 (изменено) @Desertir, а мне, кстати, нравится (сам подход с декораторами, аггрегаторами и прочей приблудой). Пришерстить отступами и будет вообще шоколадно. Изменено 2 Февраля 2015 пользователем xStream Все, кто стоит на моем пути: идите нахрен и там погибните! © Поделиться этим сообщением Ссылка на сообщение
xStream 86 Опубликовано 2 Февраля 2015 @Desertir, это называется call chaining. Это есть много где, если постараться и построить нормальный интерфейс. Все, кто стоит на моем пути: идите нахрен и там погибните! © Поделиться этим сообщением Ссылка на сообщение
xStream 86 Опубликовано 2 Февраля 2015 malandrinus писал(а): Вот и вся суть. Написать комментарий - секундное дело для человека, который этот код написал. Ненене, так низзя. Еще потому, что комменты не помогут сопроводить этот кусок кода в принципе - ну даже если сторонний человек посмотрит код, то толку не будет, ибо если не имеет представления с чем работает в принципе, то пшик. Если нетривиальное что-то, можно описать функцию/метод. В общем, все это остается на совести автора так или иначе. Все, кто стоит на моем пути: идите нахрен и там погибните! © Поделиться этим сообщением Ссылка на сообщение
xStream 86 Опубликовано 3 Февраля 2015 @KD87, отступы бы существенно помогли. А еще оно действительно делает не то, что написано в комменте Все, кто стоит на моем пути: идите нахрен и там погибните! © Поделиться этим сообщением Ссылка на сообщение
xStream 86 Опубликовано 3 Февраля 2015 (изменено) @Malandrinus, в догонку к твоему шикарному описанию в контексте сталкера: становится возможным быстрое манипулирование модулями (что самоочевидно вытекает из концепции) - то, что столько непонимания вызывало в моих аи-схемах, например, - достаточно просто удалить или переименовать модуль, или закомментировать его подключение. (Кстати, поэтому я назвала систему песочницей - изоляция модулей и возможность "играться" ) Эта фича позволяет методом бинарного поиска быстро определить сбойный модуль, если что не так. Хотя это самый жесткач - система построена так, что при подключении модуля может дать предварительный лог, если модуль не подключился - мол айайай, проверьте синтаксис. Короче говоря: это еще и средство отладки (в нагрузку к проверке зависаний и прочему). @Dennis_Chikin, собственно речь о том и была - что хорошо бы людям прививать культуру кода, а не копипастить (вот Саша, к примеру жаловался, что так и не смог изжить АМКшный подход к таймерам и событиям) - все просто привыкли, а обучаться и лень и некому. Вот в ОГСЕ научились и вышло неплохо. Dennis_Chikin писал(а): аналогично, неочевидно, почему именно. Если комментарии это не разъясняют. Либо отдельное описание. Собственно к системам есть довольно подробные мануалы с десяток пунктов с примерами (да и самих методов у тех же сигналов 3-4 штуки - вот и весь интерфейс). Все очень просто. Другим колбекам даже не надо знать, что объект удалили - они просто не сработают. Изменено 3 Февраля 2015 пользователем xStream 2 Все, кто стоит на моем пути: идите нахрен и там погибните! © Поделиться этим сообщением Ссылка на сообщение
xStream 86 Опубликовано 4 Февраля 2015 (изменено) abramcumner писал(а): А не получится так, что за ним шел коллбек, который у себя вел учет предметов в инвентаре(на on_take добавлял в словарик, на on_drop удалял из словарика). Для такого я делаю две вещи: 1) подключаю модуль самым первым ( ну или повыше), поэтому отказалась от идеи как у Саши просто кидать файлик - чуть больше контроля. 2) Там где надо я могу выстрелить еще один ивент, скажем on_post_take (после взятия) или on_pre_drop (перед удалением), ну или банально дропать, как предлагают ребята. Не суть как назвать - внутри события можно кинуть еще одно, и это решает вопрос о сложных зависимостях. Однако, не могу не согласиться с Сашей - лучше дисциплины ничего нет, легкие ограничения помогают выдерживать строгость проектирования и не позволять появляться ситуациям типа undefined behaviour. malandrinus писал(а): это вообще отдельный файл, Удобно, но я чуть выше написала, почему так не сделала (помимо фала надо еще описание подключения), хотя была мысль. Скажем так - архитектурное решение. Все же один файлик подправить не страшно, а невозможность загрузить модуль не приведет к краху. Плюс, там можно определить как раз последовательность и зависимости модулей, тоже выше написала. malandrinus писал(а): Я же не могу никак заставить следовать этому требованию всех пользователей системы событий. Я делала так - отслеживала состояние объектов на выходе из колбека. Имею ввиду, которые подавались на вход. И если было что-то сделано фатальное (я переопределяла, например, метод release у алайфа), и не было остановки ивента, я кидала ворнинг. ЗЫ Сделала я это правда существенно позже, чем отдала ее в огсе, а потом было влом :-) Изменено 4 Февраля 2015 пользователем xStream Все, кто стоит на моем пути: идите нахрен и там погибните! © Поделиться этим сообщением Ссылка на сообщение
xStream 86 Опубликовано 4 Февраля 2015 Allender писал(а): новое-новое Этому новому-новому сто лет в обед. Я выдавала на гора свою песочницу в еще 2012 году, кажется, Саша тогда же слоты выдал. (Да и куча других вещей датируется теми временами) Это тут разговор вылился из темы рефакторинга: не надо исправлять макаронный код, а надо использовать более эффективные вещи. 1 1 Все, кто стоит на моем пути: идите нахрен и там погибните! © Поделиться этим сообщением Ссылка на сообщение
xStream 86 Опубликовано 4 Февраля 2015 abramcumner писал(а): Его в on_drop и удалили. А половина модулей об этом не оповещена. , ммм. Что-то я потеряла нить размышлений.Я говорила не конкретно об item_drop, а каких-то других вещах - например скриптом сделали удаление (не внутри какого-либо колбека), имитируем дроп, стартанув ивент вручную. Видимо, мой полет мысли слишком стремительно увел ее, мысль, далеко от конкретного примера Все, кто стоит на моем пути: идите нахрен и там погибните! © Поделиться этим сообщением Ссылка на сообщение
xStream 86 Опубликовано 4 Февраля 2015 abramcumner писал(а): Есть в этом нечто забавное - остановить ивент, а потом вместо него посылать новые. Хотя вполне возможно - оставшейся части посылать уже не on_drop, а on_release. Но тогда модулям придется обрабатывать 2 ивента вместо одного. Потому что это семантически суть разные вещи. А on_release будет обрабатывать другой стек колбеков, возможно совсем маленький. Главное, что такой ивент можно кинуть до непосредственно удаления, как только все "дочерние" колбеки отработают - сносим объект и стопаем текущий. Никаких проблем. По аналогии могу привести вязыках программирования так называемые rethow исключений - принцип тот же: поймали бяку, отработали и кинули новый эксепшн, который всплывает дальше. Все, кто стоит на моем пути: идите нахрен и там погибните! © Поделиться этим сообщением Ссылка на сообщение
xStream 86 Опубликовано 4 Февраля 2015 Хорошо, вот вам еще решение в лоб: создавать два сообщения on_item_drop_safe и on_item_drop. safe кидается перед обычным. Подписчики на safe гарантируют сохранность "объекта доставки". Это своеобразный аналог const функций в том же C++, например. Просто в ЛУА такого нет. 1 Все, кто стоит на моем пути: идите нахрен и там погибните! © Поделиться этим сообщением Ссылка на сообщение