Pull to refresh
6
0
Андрей Хищенко @SkyCloud555

Разработчик С++

Send message

Нет, она рассказывает о том же самом. Я просто взял стиль рассказа и вывод статьи и переложил его на неодушевленный предмет.

1) это большая иллюзия благородных технических специалистов, работающих преимущественно с машинами, а также ложное утверждение, что если я такой и руководствуюсь такими-то мотивами, то и другие такие же и поступают так же, а это не так (мы часто склонны окружающих судить по себе); люди не созданы для использования, но по факту в социальных взаимодействиях людей нередко используют, причём жестоко, цинично и омерзительно; общий посыл моего коммента - озадачить вопросом, как так получилось, что к человеку отнеслись не как к человеку со всеми его заслугами и достоинством, а как к "бездушному предмету", средству выполнения своих желаний, и его оказалось легко и удобно использовать вот таким вот образом, хотя это совсем неэтично и аморально, то есть как он вообще допустил, что к нему смогли отнестись плохо, хотя он этого ничем не заслужил;

2) к сожалению, это далеко не всегда бывает понятно сразу, обычно понимаешь только тогда, когда начинается самое интересное; тогда в этом случае следует найти в себе силы не продолжать это или как-то трансформировать это во что-то более благоприятное для себя, но это опять-таки сталкивается со страхом перестать быть "хорошим" в чьих-то глазах, перестать оправдывать чужие ожидания (как же так - на меня положились, а я их подвёл!), хотя уже самому очевидно, что продолжение участия в этом прямо противоречит собственным интересам и убеждениям и даже наносит прямой вред психике.

Вообще, подобные случаи - это всегда повод для потерпевших что-то пересмотреть в своей жизни, в своём отношении ко многому и т.д. Мы все учимся на ошибках, негативный опыт - самый лучший учитель. Потому-то меня и смущает вывод статьи, потому что она призывает вовсе не к этому. Вместо этого она переадресует проблему потерпевших к тем, кто с ними так поступил. Она говорит: "Смотрите, как нас много и как нам плохо! Пусть будет вам стыдно! Меняйтесь! Не делайте так!" Им не будет стыдно, потому что эти люди рассуждают совсем в других категориях. И меняться они тоже не будут, потому что решают свои задачи, и весьма успешно. Так что единственный выход здесь - сделать так, чтобы цена этого использования превышала возможную выгоду от него. Хотите меня использовать? Пожалуйста, попробуйте. Только вы получите при этом столько проблем, что пожалеете, что пошли на такое. И с вами в следующий раз остерегутся связываться, а пойдут к тому, из которого легче сделать очередной Drex. Или, наконец, как-то изменят свои планы так, чтобы было более щадяще к исполнителю, хотя и более затруднительно для самих, что тоже хорошо. Это их проблемы, в конце концов. Как, говорят, защищаться от хулигана? Заниматься спортом, пойти в секцию единоборств и т.п. И на вас остерегутся нападать, потому что понимают, что могут огрести в ответ, а приставать будут к тем, кто не может дать отпор. Вот здесь - то же самое, только в социально-психологическом плане. Но всё это означает, что для технического специалиста придётся оторваться от компьютера, программ и железок и начать развиваться в других сферах, что далеко не все готовы принять, не всем удобно или просто интересно.

Пребываю в согласии с комментариями:

https://habr.com/ru/post/688554/#comment_24738670

https://habr.com/ru/post/688554/#comment_24737844

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

Вообще я один из тех, кто только читает, но никогда не пишет, но сейчас, простите, просто не смог удержаться:

 

(18+) Привет. Меня зовут Drex. Я – использованный презерватив. Приглашаю вас в клуб использованных презервативов!

Я жизнерадостно лежал в упаковке, пах ванилью и цветами, был доволен жизнью и предвкушал нечто прекрасное и возвышенное, но затем я кому-то понадобился, меня достали, и я увидел такое! До сих пор забыть этого не могу! Ведь я не просто это увидел, мне пришлось во всём этом участвовать, причём самым тесным и непосредственным образом. Самым-самым тесным образом! Потом меня просто выбросили… Вы не представляете, до какой степени мне теперь ужасно, больно, мерзко и противно! Использованные гондоны, все сюда! Конечно, мы не будем с вами ломать голову над тем, как так получилось, что с нами смогли так мерзко поступить, не будем пытаться анализировать, в чём был просчёт и ошибка каждого из нас. Не будем пытаться понять, что надо изменить в своём поведении, отношении к чему-то и вообще в каждом из нас, чтобы по возможности избежать в будущем этого неприятного сценария или как-то защищаться от него. Вместо этого мы будем рассказывать друг другу истории и делиться впечатлениями о том, как именно каждому было противно. Безусловно, от этого всем нам станет легче! Дамы и господа, пожалуйста, больше не надо! Не делайте это! Меняйте себя! Ведь всегда можно заняться вдвоём чем-нибудь более духовным и возвышенным, а для резиновых изделий – найти другое, более приятное для них использование! Вы верим, что вы обязательно услышите нас!

С уважением, ваши использованные презервативы.

 

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

Спасибо! :)
Да я уже давно… Ещё 7 лет назад, когда делал свой менеджер потоков с учётом балансировки нагрузки на видеокартах. Там сделал свой аналог типа variant и аналог вызова функции наподобие std::function, но с ограниченным количеством параметров, потому что вариативных шаблонов тогда не было. Вернее, они были, но я про них ничего не знал. Тогда ещё и вошёл во вкус.:) Но этих менеджеров потоков… как собак… Потому всегда думал, что всем будет неинтересно про это читать.
Спасибо.

Про CRTP узнал чисто случайно, и то не сразу.

«а вот что потом, не нашли ничего «по теме»… уже не так хорошо».
Да я и не искал особо, если честно. Я бы скорее начал искать, если бы что-то не получилось.

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

Спасибо. Книгу тоже посмотрю. :)
Ну слава Богу, хоть кто-то рассказал, что у меня получилось и что это где-то реально используется!

«это ни один нормальный разработчик в здравом уме в реальности ничего подобного использовать не будет»
Вы не поверите, но мне действительно так казалось.

«template class ATL_NO_VTABLE CFrameWindowImplBase:
public ATL::CWindowImplBaseT< TBase, TWinTraits >»
Отлично! Значит, когда я таки доберусь до этой библиотеки, мне будет гораздо проще и продуктивнее её изучать.

«Возникает когнитивный диссонанс: автор вообще в курсе что именно он переизобрёл или нет?»
Наверное, был бы в курсе, статьи бы не было или она была бы написана в другом ключе.

«И да, разумеется при этом динамический перестаёт действовать. Нормальное, стандартное поведение. Где новизна и какие-то странные «неведомые» проблемы, собственно???»
Неведомые проблемы были не в динамическом полиморфизме, а в поведении указателей и преобразований типов. Вы, наверное, уже в конце статьи не обратили на это внимание.

«И при этом рефреном идёт мысль «как это всё удивительно, ново и странно». И замечания, что «использовать это никак нельзя».»
Для меня это была не более чем интересная задачка. То, что это действительно полезно и где-то используется, я не предполагал. И обсудить это было не с кем. Нельзя объять необъятное.

Но, вообще, Вы правы. В свете этих новых сведений статью стоило бы переписать по-другому или хотя бы обязательно упомянуть об ATL/WTL, а потом начать так: «я пришёл к этому таким образом...». Но лучше бы вообще сначала поглубже познакомиться с этими библиотеками, что для меня в данный момент затруднительно.
«и список — какая-то извращённая хештаблица (почему бы её и не использовать?)»
Список здесь так и остался списком, а извращённая, как Вы выразились, хештаблица идёт в довесок. Эту извращённую хештаблицу можно также к другим структурам пристроить: например, к дереву или графу.

«и параллельности нет, а о сопутствующей ей скорости тоже говорить не приходиться (тестов: однопоточная очередь + транзакции, не увидел)»
Параллельности в прямом смысле — нет, т.к. идёт блокировка. Но есть многопоточность, т.к. идёт речь об организации доступа к общей структуре данных из разных потоков. В этом смысле параллельность. Сравнения с другими подходами действительно нет, и тестов, соответственно, тоже: я описывал пока только свою идею.

«Что касается общей идеи, то вы натягиваете сову на глобус»
Идея-то как раз-то предельно простая и незамысловатая. Я даже не знаю, можно ли вообще придумать на эту тему что-нибудь ещё проще. Да, у неё есть свои недостатки, но идеального ничего не бывает, особенно в таком непростом вопросе. Основной минус в том, что, как там выше указали, блокировки серьёзно ухудшают производительность. С этим спорить не буду. Если те, другие, подходы лучше во всех отношениях, ну… что поделаешь. Бывает. Но если им тоже свойственны какие-то ограничения, недостатки или тонкие моменты, может, эта работа сможет занять свою нишу в практических приложениях. Трудно пока сказать.
Меня больше всего смущало, что этим простым и незамысловатом путём уже давно прошли, а я ничего об этом не знаю и ничего нового, соответственно, не сказал. Ну что ж, в таком случае хотя бы просто поупражнялся в навыках языка и создания структур данных. Тоже полезно бывает. Пригодится, если понадобится создавать что-нибудь более специализированное под конкретную задачу.

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

«В итоге у меня лично сложилось убеждение, что надо всеми силами избегать ситуаций, которые вы пытаетесь разрулить в своей работе. Т.е. не должны несоколько потоков одновременно копаться в одном и том же списке. Наверное, где-то без этого никак не обойтись, но в тех реальных задачах, что вставали передо мной, всегда удавалось путем изначального проектирования этого избежать».
Вы совершенно правы! Вопрос проектирования здесь ключевой в любом случае! Если можно избежать сложностей, разбить задачу на какие-то независимые части и реализовать как-то по-другому, то именно так и надо делать! Я же в своей работе исхожу из предположения: «Ну, предположим, что мне очень надо сделать именно так! Все другие решения оказались по тем или иным причинам хуже или менее подходящими. Можно ли что-то сделать в этой ситуации?» Всё, что предоставляет мой вариант этой известной структуры данных — это хоть какие-то гарантии, что программа по крайней мере не сломается, даст возможность отреагировать на ошибочную ситуацию, а также то, что работу со списком можно сделать хотя бы относительно быстрой. Все вопросы же насчёт ошибочных ситуаций и накладных расходов опять же ложатся на плечи того, кто проектирует программу, так что опять всё сводится к Вашему же исходному тезису.

Конкретно по вопросам:
1. Началось всё с конкретного практического примера, а потом я задумался, что можно сделать тут вообще.
2. Нет, опыт не очень большой, к сожалению.
Спасибо! Обязательно стоит с этой темой познакомиться в будущем.

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity