Перейти к контенту

Курилка программистов


Рекомендуемые сообщения

 

 

  Карлан писал(а):
В общем и целом поддержу Дениса, критиковать думаю уместно разве что с предложением альтернативно-лучшего варианта выложенной разработки.
, то есть, если на фоне существующих решений, решение кажется не айс, то эти существующие нельзя как вариант приводить? Обязательно очередной лисапед? :)

 

 

  Карлан писал(а):
Остальная критика как по мне - снобизм.

А я считаю, что те, кто написал такие же велосипеды, имеют право критиковать - опыт есть.

 

 

  Карлан писал(а):
Да и для большинства модов суперсистем

Это что за системы такие? Если вы про высокоуровневые, то у меня для вас плохие новости: вы повторяете путь тех, кто прошел "эволюцию" несколько лет назад, выдаете такие же решения, и при этом говорите, что костыльного типа решения (один в один как те, олдскульные и якобы непригодные) - айс, а получше и поэффективнее - фигня. Удачи, чо :)

 

 

  Карлан писал(а):
оно уже есть в нормальном варианте,

Как вы смеете это использовать?! Это же суперсистема!

 

 

  Карлан писал(а):
опять же я сам лично колоссальных различий не замечал

Тогда чего это конкретно то, что тут предлагается, нужно принимать с радостью и уважением? Про бритву Оккама слышали?

  • Согласен 1

Все, кто стоит на моем пути: идите нахрен и там погибните! ©

Поделиться этим сообщением


Ссылка на сообщение
  Dennis_Chikin писал(а):

Означает ли все написанное, что в 2015-ом году все обязаны делать вот так:

Это означает, что выкинуть это "вот так" вообще в принципе :) И это не зависит от года. Твой лисапед не сильно от этого отличается.

  Dennis_Chikin писал(а):

только прикрутить еще куда-то сбоку систему ивинтов и песочницу от одного конкретного автора (указать, какого именно)

Системы ивентов - всего лишь один файл! О.Д.И.Н. с более менее внятными примерами. И для его работы напрочь не нужно "вот так".

  Dennis_Chikin писал(а):

Кто не хочет делать так - отключить от интернетов и сослать на лесоповал ?

Естественно. На земле дерьмокода и так тысячи :)

  • Согласен 1

Все, кто стоит на моем пути: идите нахрен и там погибните! ©

Поделиться этим сообщением


Ссылка на сообщение

 

 

  Карлан писал(а):
только в противном случае ты должна меня ткнуть носом в какую-то более менее вменяемую сборку модулей

Тыкали. Неоднократно. Но видимо там слишком сложно с интрукцией и примерами.

 

 

  Карлан писал(а):
Ну это вот всякие новомодные ивенты, хранилища и тэпэ (хотя и это все далеко не вчера придумано ).

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

 

 

  Карлан писал(а):
Видимо ты меня не поняла...

Поняла, но есть такая штука, как сарказм :)

Все, кто стоит на моем пути: идите нахрен и там погибните! ©

Поделиться этим сообщением


Ссылка на сообщение

 

 

  Карлан писал(а):
Можно еще раз? Предполагаю конечно что это за сборка, но боюсь там как раз и есть та самая бритва .

Вами любимый Артос, к примеру, но он сделал тоже то еще гм... Просто брал то, что делали другие и убивал часть идеи, но и на том спасибо - часть удобства доходила до конечных потребителей.

 

 

  Карлан писал(а):
И именно после этого и начал хвалить Артоса, т.к. собственно подобного нигде ранее не наблюдалось.

Хвалить надо тех, кто сделал то, что он натырил :) Тогда какие еще могут быть вопросы то? Вот оно - удобное, а то что здесь, гм...

Все, кто стоит на моем пути: идите нахрен и там погибните! ©

Поделиться этим сообщением


Ссылка на сообщение

 

 

  Artos писал(а):
подтверди, плз, свои слова о "он натырил" конкретными фактами плагиата/воровства,

Ну я не употребляла слово "плагиат" или "воровство". И я не говорила, что это плохо. Так что в позу богомола не стоит вставать. Мне не нравилось никогда твое стремление все сделать универсальным и я этого никогда не скрывала. Стиль программирования тоже не импонирует, но тут уж точно личное дело каждого.

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

 

 

  Artos писал(а):
"натырил/своровал"

Акцентирую: натырил - напихал всего и вся, своровал - я не употребляла это слово. Ты всегда указывал авторов, никаких претензий.

 

 

  Artos писал(а):
схоже с изливанием накопившейся желчи...

Это даже смешно  :wub:

 

 

  Nazgool писал(а):
Но не у всех же ещё зубы выросли. Но уже ведь пытаются грызть.

Если я правильно поняла метафору, то... То вот: если грызут, то это отлично! Если грызут и хаят предшественников, на чьем труде учились - не айс. Если грызут и говорят, что их леденец круче и вкуснее, то пусть готовятся аргументировать и доказывать. И тут дело не вкуса даже. В программировании есть такое понятие, как эффективность (помимо читаемости, скорости кода, скорости разработки и т.п.). Так вот эту эффективность стоит доказывать, иначе будет то, из-за чего весь бор и пошел - вместо одной рухляди писать свой велосипед и называть его мотоциклом. Да ради Б-га! Но отстаивать надо. Как делали другие :)

  • Нравится 2

Все, кто стоит на моем пути: идите нахрен и там погибните! ©

Поделиться этим сообщением


Ссылка на сообщение

 

 

  Artos писал(а):
Не нужно извращать русский язык, пытаясь именно воровское/криминальное слово

Вот только не надо вот этого :) Были "непонятки", мы разобрались, я объяснила, что имела ввиду, а вот учить меня речи не стоит, право слово. 

 

 

  Artos писал(а):
свой базар!

Раз вы столь ревностный блюститель чистоты речи, то что же вы тюремный жаргон используете? Атата.

 

 

  Artos писал(а):
И не смешно, если бы не было грустно что и в новый форум переносятся манеры и дрязги детских песочниц: "Не трожь мой песочек и лопатку. Мой куличик самый красивый и не смей его трогать и ругать...А вот твой куличик - это дрянь, и даже вовсе не твой..."

Ну простите, что взрослая тетя пришла и поломала ваш куличик и попортила душевное равновесие.

 

 

  Artos писал(а):
Жаль сама не всегда следуешь этому принципу, "критикуя" труд других.

Разница в том, что, как я написала, я стараюсь доказать, аргументировать, почему мой... гм... куличик, лучше или отличается от других. Без категоричного "мой куличик лучше всех!". Разве нет? Более того, "нападая" на несчастных окружающих, я готова вытерпеть такое же "нападение": важно движение вперед, тут демократия не работает.

 

 

  Artos писал(а):
Далее предлагаю "курильщикам" не продолжать скользкие темы, принижающие одних и выпячивающие других.

Эм... Ок. Да, босс.

 

ЗЫ Зная твою любовь к тому, чтобы последнее слово было за тобой, уступаю: ты белый и пушистый, я была неправа и все такое.

Все, кто стоит на моем пути: идите нахрен и там погибните! ©

Поделиться этим сообщением


Ссылка на сообщение

@Карлан, эм. Вы напрашиваетесь на нецензурный ответ, молодой человек. Это ваши половые трудности, что вы так реагируете на слова.

А про все остальное уже уважаемый @Viнt@rь расписал. Просто пошло переливание из пустого в порожнее в который раз, да еще проявилась ущемленная гордость у кое-кого. Ректальный нагрев произошел. Так что к этому всему прибавить нечего - присоединяюсь к Назгулу.

 

 

  Карлан писал(а):
3 года назад общими усилиями изобрели эти все системы, и каждый их видимо допилил до такого состояния, которое ему было нужно (мне так показалось).

Не было никаких общих усилий и не было никакого "под себя". Но это все ерунда. Все началось с некоего персонажа, весьма резко высказавшегося в духе "вот хреново-то сделано было, а я д'артаньян - у меня крутяк". Собственно лично меня именно это немножко огорчило. А там дальше по накатанной понеслось: ЧСВ звездных величин, отсутствие знаний и возможности идти на компромиссы, когда закончились аргументы, то перешли на грамматику и словарный запас. Что примечательно, извинения не работают и каждый пытается учить остальных. Это нормально?

Прошу заметить: лично я не хаяла, я задавала вопросы и высказывала мнение, которое всего лишь не было "толерантным". Что, в принципе, и вызывало ректум темпера.

Спокойной ночи. 

Все, кто стоит на моем пути: идите нахрен и там погибните! ©

Поделиться этим сообщением


Ссылка на сообщение

 

 

  Viнt@rь писал(а):
Больше склоняюсь к кое-когда сказанному xStream - термину псевдо-ООП.

Ненене, девидблейн :) Я это говорила не про луа. А про простую реализацию, которую я выкладывала. Она была очень упрощенной, потому и была "всевдо-ооп" - я хотела показать, что не так уж и сложно реализовать парадигму с помощью ЛУА.

  • Полезно 1

Все, кто стоит на моем пути: идите нахрен и там погибните! ©

Поделиться этим сообщением


Ссылка на сообщение

 

 

  malandrinus писал(а):
Именно для упрощения сопровождения я очень густо комментирую свой код.

Тоже в качестве лирики: у нас принято писать self-explaining код. Если появились комментарии, значит где-то код перестал быть тривиальным, и это тревожный звоночек.

Это не значит, что их не должно быть: если логика нетривиальна или громоздка и это не исправить (а иногда просто незачем), они необходимы.

  • Согласен 1

Все, кто стоит на моем пути: идите нахрен и там погибните! ©

Поделиться этим сообщением


Ссылка на сообщение

 

 

  malandrinus писал(а):
self explained код - это миф. Что можно сделать, чтобы код говорил сам за себя, кроме того, что красиво его отформатировать и дать переменными и функциям внятные имена? Я это в обязательном порядке делаю, но этого совершенно недостаточно.

А у нас на роёне это не миф. Да и вообще, я же там мелким ан нет, не мелким шрифтом написала: до тех пор, пока этого достаточно. В одном месте с меня требовали, например, описывать вплоть до блоков кода. А в другом всем было пофиг. И те и другие благополучно сопровождают проекты до сих пор.

 

 

  malandrinus писал(а):
Например

Ну вот собственно это нормальный пример, который на мой взгляд документирован слегка избыточно (ибо названия функций, но не полностью избыточно - из-за разношерстного интерфейса), но в целом все то, о чем и говорим.

@Malandrinus, про хуки и хаки - само собой, это не относится к тривиальным вещам в принципе.


@abramcumner, да, точно!


 

 

  Nazgool писал(а):
И код будет читаться намного быстрее, т.к. уже знаешь чего от него ожидать.

Для меня быстро читается distance_between, а если ты не знаешь, что это и кто такие сталкеры, то тут не комментарии нужны, а ртфм :)

Все, кто стоит на моем пути: идите нахрен и там погибните! ©

Поделиться этим сообщением


Ссылка на сообщение

@Desertir, а мне, кстати, нравится (сам подход с декораторами, аггрегаторами и прочей приблудой). Пришерстить отступами и будет вообще шоколадно.

Изменено пользователем xStream

Все, кто стоит на моем пути: идите нахрен и там погибните! ©

Поделиться этим сообщением


Ссылка на сообщение

@Desertir, это называется call chaining. Это есть много где, если постараться и построить нормальный интерфейс.

Все, кто стоит на моем пути: идите нахрен и там погибните! ©

Поделиться этим сообщением


Ссылка на сообщение

 

 

  malandrinus писал(а):
Вот и вся суть. Написать комментарий - секундное дело для человека, который этот код написал.

Ненене, так низзя. Еще потому, что комменты не помогут сопроводить этот кусок кода в принципе - ну даже если сторонний человек посмотрит код, то толку не будет, ибо если не имеет представления с чем работает в принципе, то пшик.

Если нетривиальное что-то, можно описать функцию/метод. В общем, все это остается на совести автора так или иначе.

Все, кто стоит на моем пути: идите нахрен и там погибните! ©

Поделиться этим сообщением


Ссылка на сообщение

@KD87, отступы бы существенно помогли. А еще оно действительно делает не то, что написано в комменте :)

Все, кто стоит на моем пути: идите нахрен и там погибните! ©

Поделиться этим сообщением


Ссылка на сообщение

@Malandrinus, в догонку к твоему шикарному описанию в контексте сталкера: становится возможным быстрое манипулирование модулями (что самоочевидно вытекает из концепции) - то, что столько непонимания вызывало в моих аи-схемах, например, - достаточно просто удалить или переименовать модуль, или закомментировать его подключение. (Кстати, поэтому я назвала систему песочницей - изоляция модулей и возможность "играться" :) )

Эта фича позволяет методом бинарного поиска быстро определить сбойный модуль, если что не так. Хотя это самый жесткач - система построена так, что при подключении модуля может дать предварительный лог, если модуль не подключился - мол айайай, проверьте синтаксис. Короче говоря: это еще и средство отладки (в нагрузку к проверке зависаний и прочему).

@Dennis_Chikin, собственно речь о том и была - что хорошо бы людям прививать культуру кода, а не копипастить (вот Саша, к примеру жаловался, что так и не смог изжить АМКшный подход к таймерам и событиям) - все просто привыкли, а обучаться и лень и некому. Вот в ОГСЕ научились и вышло неплохо.


 

 

  Dennis_Chikin писал(а):
аналогично, неочевидно, почему именно. Если комментарии это не разъясняют. Либо отдельное описание.

Собственно к системам есть довольно подробные мануалы с десяток пунктов с примерами (да и самих методов у тех же сигналов 3-4 штуки - вот и весь интерфейс). Все очень просто. Другим колбекам даже не надо знать, что объект удалили - они просто не сработают.

Изменено пользователем xStream
  • Согласен 2

Все, кто стоит на моем пути: идите нахрен и там погибните! ©

Поделиться этим сообщением


Ссылка на сообщение
  abramcumner писал(а):
А не получится так, что за ним шел коллбек, который у себя вел учет предметов в инвентаре(на on_take добавлял в словарик, на on_drop удалял из словарика).

Для такого я делаю две вещи: 1) подключаю модуль самым первым ( ну или повыше), поэтому отказалась от идеи как у Саши просто кидать файлик - чуть больше контроля. 2) Там где надо я могу выстрелить еще один ивент, скажем on_post_take (после взятия) или on_pre_drop (перед удалением), ну или банально дропать, как предлагают ребята. Не суть как назвать - внутри события можно кинуть еще одно, и это решает вопрос о сложных зависимостях.

Однако, не могу не согласиться с Сашей - лучше дисциплины ничего нет, легкие ограничения помогают выдерживать строгость проектирования и не позволять появляться ситуациям типа undefined behaviour.

 

  malandrinus писал(а):
это вообще отдельный файл,

Удобно, но я чуть выше написала, почему так не сделала (помимо фала надо еще описание подключения), хотя была мысль. Скажем так - архитектурное решение. Все же один файлик подправить не страшно, а невозможность загрузить модуль не приведет к краху. Плюс, там можно определить как раз последовательность и зависимости модулей, тоже выше написала.

 

  malandrinus писал(а):
Я же не могу никак заставить следовать этому требованию всех пользователей системы событий.

Я делала так - отслеживала состояние объектов на выходе из колбека. Имею ввиду, которые подавались на вход. И если было что-то сделано фатальное (я переопределяла, например, метод release у алайфа), и не было остановки ивента, я кидала ворнинг.

ЗЫ Сделала я это правда существенно позже, чем отдала ее в огсе, а потом было влом :-)

Изменено пользователем xStream

Все, кто стоит на моем пути: идите нахрен и там погибните! ©

Поделиться этим сообщением


Ссылка на сообщение

 

 

  Allender писал(а):
новое-новое

Этому новому-новому сто лет в обед. Я выдавала на гора свою песочницу в еще 2012 году, кажется, Саша тогда же слоты выдал. (Да и куча других вещей датируется теми временами)

Это тут разговор вылился из темы рефакторинга: не надо исправлять макаронный код, а надо использовать более эффективные вещи.

  • Спасибо 1
  • Согласен 1

Все, кто стоит на моем пути: идите нахрен и там погибните! ©

Поделиться этим сообщением


Ссылка на сообщение

 

 

  abramcumner писал(а):
Его в on_drop и удалили. А половина модулей об этом не оповещена.
, ммм. Что-то я потеряла нить размышлений.

Я говорила не конкретно об item_drop, а каких-то других вещах - например скриптом сделали удаление (не внутри какого-либо колбека), имитируем дроп, стартанув ивент вручную.

Видимо, мой полет мысли слишком стремительно увел ее, мысль, далеко от конкретного примера :)

Все, кто стоит на моем пути: идите нахрен и там погибните! ©

Поделиться этим сообщением


Ссылка на сообщение

 

 

  abramcumner писал(а):
Есть в этом нечто забавное - остановить ивент, а потом вместо него посылать новые. Хотя вполне возможно - оставшейся части посылать уже не on_drop, а on_release. Но тогда модулям придется обрабатывать 2 ивента вместо одного.

Потому что это семантически суть разные вещи. А on_release будет обрабатывать другой стек колбеков, возможно совсем маленький.

Главное, что такой ивент можно кинуть до непосредственно удаления, как только все "дочерние" колбеки отработают - сносим объект и стопаем текущий. Никаких проблем.

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

Все, кто стоит на моем пути: идите нахрен и там погибните! ©

Поделиться этим сообщением


Ссылка на сообщение
Хорошо, вот вам еще решение  в лоб: создавать два сообщения on_item_drop_safe и on_item_drop.

safe кидается перед обычным. Подписчики на safe гарантируют сохранность "объекта доставки".

Это своеобразный аналог const функций в том же C++, например. Просто в ЛУА такого нет.

  • Согласен 1

Все, кто стоит на моем пути: идите нахрен и там погибните! ©

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...