Pull to refresh
4
0.1
Send message

Пример из моей практики работы над криптографической библиотекой: знание на этапе компиляции определенных констант (если точнее: целых таблиц констант) - позволяет компилятору генерировать код, который лучше векторизуется и работает на 10-15% быстрее, чем код, скомпилированный с кодогенерацией)

Концепция черного ящика никак не связана с чистотой функций, но я вас понял. В вашей терминологии действительно фреймворк не черный ящик)

Думаю, ту лучше подойдёт концепция "серого ящика", когда мы имеем входы и выходы, но при этом знаем некоторые детали о внутренней структуре)

Да я на самом деле не против wrapper-ов, более того, я очень даже за и даже уже написал их) Просто заняло это прилично времени, значительно больше "на один час" и потребовало немало усилий) Не говоря уже о том, что теперь их ещё и поддерживать надо)

В общем, wrapper-ы это концептуально правильно, но чем их больше, чем больше сил на поддержку и доработку уходит, ведь хорошие API - сложно писать)

Возможно мы по разному понимаем черный ящик)

Да нет, я пишу вообще условный TLS Proxy. А заменить можно кучей всего. Ну, например BoringSSL, Botan, wolfSSL, NSS, GnuTLS, да тысячи их)

А в моём проекте потребуется значительно больше Verify) Как минимум весь API по работе с X509 сертификатами. А для этого придется ещё пяток других API обернуть, чтобы типы не протекали.

И это работа не на один день даже) Смысл этой работы правда не сильно ясен)

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

А для этого нужно сильно подумать наперёд, какие потребности реализует этот API и над какими сущностями работает. Это точно не работа на один час)

Фреймворк отличается от библиотеки тем, что в общем случае он выполняет некую работу сам по себе, обладает внутренним состоянием и (самое главное) — не является полностью черным ящиком с точки зрения приложения.

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

Получается библиотека реализует функциональность. Фреймворк реализует поведение, и предоставляет точки кастомизации этого поведения.

Обернуть любую внешнюю библиотеку в свой интерфейс — работа на час с перекурами

Штош :) Вот вам для затравки: OpenSSL. Оберните эту библиотеку в С++ интерфейсы "за час с перекурами")) Встретимся через недельку, когда вы будете всё ещё пыхтеть над API)

Но ведь вся история в том, что никуда я не пройду, никаких штрафов не заплачу и ничего со мной не будет.

Получается, вроде как не я живу в мире фантазий, а вы?)

Не знаю как предыдущий оратор, но да, я предлагаю) Если эффект от действий нулевой, суды - это пустая трата сил.

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

Я минусы ставить не могу, но мне в России вроде безопасно в бытовом смысле) Конечно, чувство безопасности пошатнулось из-за войны, но до неё я чувствовал себя вполне комфортно.

Продукты разные есть и рядовой айтишник вполне себе может позволить качественные) Да, они будут дороже, но другие вещи будут сильно дешевле. Коммуналка та же. В среднем, выйдет то же самое.

Как минимум, студенты будут знать про Postgres Pro) Так гляди, подрастут, да внедрят где-нибудь) Сам Postgres Pro с этого вообще ничего не теряет по сути.

Несмотря на все сетования людей тут, могу сказать, что новые фичи хоть в общем-то и не нужны, не ломают старый UX, что уже хорошо.

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

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

Возможность скопировать ссылку на любое сообщение;

Так это вроде есть. Тыкаешь на сообщение, выбираешь "Copy link"

А где есть?) Даже JS не в счёт, там что-то отличное от текста в консоли выводится только в браузере. За пределами браузера ничего нет)

Только в python можно графички повыводить, и в Java вроде чего-то есть, но опять же - не очень-то кроссплатформенно.

В С++ есть Qt. Работает вообще на всех платформах. Есть imgui, тоже работает почти везде и простой. Есть SFML. Всё вполне рабочее.

В стандартной библиотеке нет ничего, нельзя даже имея готовую 2D картинку в памяти, вывести ее на экран... (и далее)

Можно я задам тупой вопрос: а зачем? Ну, возьмите другой язык, чтобы вывести картинку.

У С++ одна ниша - делать что-то очень-очень быстро. Всё. Если вам нужно выводить 10000 объектов в секунду - вам нужен С++, но я вас уверяю, написание кода по соббсно отрисовки UI будет наименьшей из ваших проблем. В остальных случай возьмите JS, Python, Qt и не парьтесь особо.

Кто из практических программистов пользуется чем-то выходящим за рамки 11-го ну в крайнем случае 14-го стандартов ???

Ну, я пользуюсь вполне С++17 и считаю, что до этого стандарта плюсы довольно-таки гавно и если где-то пишут на С++14 я туда уже не пойду. А я ещё на С++98 успел пописать, т.е. прошёл все итерации стандарта.

Впрочем, С++20 тоже вполне себе неплох. consteval и концепты - очень приятная вещь. Вот С++23 да, чисто косметика, да ещё и не поддерживается нигде.

Будь моя воля, я бы вообще заморозил развитие С++ как языка и сосредоточился исключительно на библиотеках.

Нужно все и сразу - ну возьмите boost. Если уж совсем печально, но есть деньги - возьмите Qt.

Для тех кому нужен высокий уровень абстракции, есть куча куда более вкусных альтернатив.

Всё так и есть. Хочется высокого уровня и не думать о железках - используйте другие языки. Я вот успешно пишут на Python в параллель к плюсам и мне вполне нормально. Rust и Go в принципе тоже ничего.

Незаслуженно был забыт любимый многими YoptaScript

Год назад работал в месте, где были скрипты на Perl для самописной сборочной системы, написаны они были 7 лет назад одним энтузиастом, и с тех пор почти не изменились, т.к. никто в отделе из 70+ человек больше не знает Perl)

И это было единственное место за последние 10 лет, где я видел Perl)

Information

Rating
3,991-st
Registered
Activity