суббота, 29 марта 2025 г.

[prog.kill-them-all] И снова слова проклятия в адрес любителей длинных строк в исходном коде...

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

Пример, переполнивший сегодня чашу терпения на скриншоте. Это полный скрин моего основного Windows-ноутбука. Именно так все выглядит на экране в обычном режиме.

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

Ну и да, привет всем тем чудикам, которые утверждают, что код читают только в IDE. Да хрен вам!

Так что вредный совет тем, кто по какой-то причине обратил внимание на этот пост: если вам начхать на удобство тех, кто будет читать и сопровождать ваш код в дальнейшем, то смело пишите строки длиной по 100, 120, 150 символов. Да и 150 не предел, зачем останавливаться?

PS. Прошу понять и простить за резкость, но за минувшую неделю пришлось слишком много проблемных фрагментов кода копипастить из исходников в email-ы, мессенджеры и GoogleDoc-документы. Где куски с длинной строки в 120+ символов превращались в совсем уж нечитаемое ХЗ что. В отличие от.

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

пятница, 28 марта 2025 г.

[prog.forums] Попробую продлить вынужденный режим read-only на RSDN/LOR/Habr...

Когда начались проблемы со здоровьем, то вынужденно ушел в режим "только чтение" на таких ресурсах, как RSDN, LOR и Habr. Хотя до этого регулярно позволял себе что-то там комментировать и иногда (или постоянно?) встревал в тот или иной срач холивар.

И знаете что? Мне понравилось быть в режиме молчания.

Куча времени освободилось. Да и нервы как-то целее 😉

Поэтому хочу попробовать сохранять этот же режим и дальше. Возможно, что-то буду писать на RSDN/LOR когда представится возможность выкатить очередной релиз SObjectizer/RESTinio и нужно будет сделать анонс. Аналогично, если представится возможность написать какую-то статью для Хабра (скорее всего связанную с очередными релизами наших OpenSource продуктов), то сделаю это. Таки это площадки для PR-а, негоже от них отказываться полностью.

Но вот чтобы читать вопросы и пытаться помочь людям, задающим эти самые вопросы... Или пробовать опровергать очередные вредные заблуждения... Вот это уже вряд ли.


Касательно RSDN/LOR мне кажется, что оба эти ресурса стали жертвами закона "разбитых окон": и там, и там есть деструктивные персонажи, которых следовало давным давно забанить, но этого не сделали, поэтому и там, и там уровень дискуссий заметно снизился.

Плюс к тому, как мне неоднократно говорили коллеги, информационная среда изменилась, время профильных форумов прошло. Сейчас проффи где-то в других местах тусуются, вроде телеграмм-каналов. А RSDN/LOR остаются пережитками прошлого. Какие-то старые персонажи, которые живут на RSDN/LOR десятилетиями, остаются там по привычке. Но их мало. Изрядная часть из них пишет одно и то же или делает одни и те же однотипные вбросы. Поэтому все чаще и чаще возникает ощущение дежа-вю, мол, где-то я все это видел раньше, причем неоднократно.

С Habr-ом же другая история. С моей колокольни кажется, что там слишком уж много школоты, т.е. уровень авторов многих статей и комментариев к ним настолько низок, что иногда просто остается только тихо вопрошать в воздух "ну как так-то?"


Что касается моего участия в прошлых разборках на RSDN/LOR, если я кого-то своей резкостью обидел, то прошу прощения.

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

четверг, 27 марта 2025 г.

[prog.c++.vcpkg] Внезапные приключения с подключением OpenSSL к проекту посредством vcpkg

Есть проект, который собирается под Windows и под Linux. Для управления зависимостями используется vcpkg (вместе с манифестами, т.е. с файлами vcpkg-configuration.json и vcpkg.json, хотя манифесты тут вряд ли виноваты).

В зависимостях есть OpenSSL. Подключение OpenSSL в CMakeLists.txt проекта выглядит стандартным образом:

find_package(OpenSSL CONFIG REQUIRED)
...
target_link_libraries(some_executable_file OpenSSL::SSL OpenSSL::Crypto)

Так вот под Windows все это работает как часы, тогда как под Linux-ом случился нежданчик: внезапно™ выяснилось, что нет таких CMake-овских таргетов, как OpenSSL::SSL и OpenSSL::Crypto.

Вот нет и все, хотя find_package успешно отрабатывает.

Блуждания по потрохам кучи CMake-овских файлов, установленных vcpkg, привело вот к такому фрагменту в файле OpenSSLConfig.cmake, который лежит в vcpkg_installed/x64-linux/share/openssl (извиняюсь за его объем, но здесь все самое важное):