TGTGInsightтелеграм анализLIVE / telegram public index
← Такты, стеки, два колеса

TGINSIGHT SIMILAR POSTS

Намери подобно съдържание

Изходен канал @clockstackwheels · Post #296 · 11.04

Паттерн Декоратор — специальный способ организации модулей в программе, который позволяет подставить какую-то новую функцию прямо в середину цепочки вызовов, тем самым чуть-чуть подкорректировав поведение. Например, в реальном мире очки для чтения это декоратор. Вы ставите их между вашими глазами и текстом. Глобально взаимодействие ваших глаз и текста не меняется: отражённые световые лучи от страницы книги попадают в ваши зрачки, что с очками, что без них. Но очки располагаются посередине: они принимают лучи на вход и преломляют их, передавая дальше вам в глаза уже изменёнными. Важной особенностью является тот факт, что очки можно снять. Они не требуют ни модификации вашего тела, ни модификации книги. Вообще никакие условия не нужны, кроме наличия самих очков. А если вы в линзах, то внешний наблюдатель может даже этого не знать. Класс-декоратор должен быть спроектирован так, чтобы не требовать никаких изменений в объектах, с которыми он работает. Его можно отключить, чаще всего буквально закомментировав одну строку. В примере ниже программа выведет текст "Привет, мир, в натуре.", и вот это дополнение в конце как раз дописано декоратором. Можно убрать или закомментировать подчёркнутую строчку, не трогая остальной код, для всех внешних вызовов сигнатуры останутся теми же самыми, но выводиться будет уже просто "Привет, мир". В декораторы можно прятать логику, которую буквально навешивают поверх основной функции программы. Например, проверку прав на выполнение операции. Перевод на другой язык, логирование, поддержку обратной совместимости при обновлении и так далее. #dev

Hashtags

Резултати

Намерени 2 подобни публикации

Търсене: #meson

当前筛选 #meson清除筛选
宇宙航海誌

@uchuukoukaishi · Post #702 · 31.12.2024 г., 16:22

在一个小项目上第一次试用 #meson 就得到一个大大的惊喜!感觉比 #cmake 好用很多! 以这个「静态链接 submodule 里的 librime」为例: - 你可以直接 import cmake target! - 你可以像 cmake ExternalProject 一样设定 configure options,但同时能拿到完整的 target 信息! - 同时,subproject 会被整合到当前项目构建里(类似 cmake add_subdirectory),所以如果 subproject 里有修改,不需要做任何事,正常构建就可以正确rebuild。而且不会污染外部的变量、 option 和 target 命名空间。 - 在查询 dependency lib 时,可以设定一个 static 参数,用来控制是否优先选择静态库,它的值由 一个全局的参数 --prefer-static 控制,于是你可以一键把所有依赖都静态链接掉 - 静态库中一些对象文件可能会有 constructor 需要 -Wl,--whole-archive,这里只需要 as_link_whole() 创建一个新的 dependency 对象就可以了 - 最后,它可以正确处理所有静态库的依赖(因为可以取出完整的 target 信息),而不需要手动传递被依赖的库。如果用 cmake ExternalProject 构建静态库再链接,就会丢失掉所有相关信息,要手动补全。 虽然图上的这点代码做的事很简单,就是构造一个静态的 librime 再链接到可执行文件里,但在 cmake 里不管怎么做都很麻烦。 ---- 而且还充满了各种贴心的小设计: > Another thing to note is that include_directories adds both the source directory and corresponding build directory to include path, so you don't have to care.

Hashtags

TokenPocket

@tokenpocket_channel · Post #1287 · 13.03.2024 г., 10:34

🔥New DEX Integration on the [#TokenPocket] Market page: [@​mesonfi] ✅Starting now, effortlessly bridge the stablecoins on [@​BNBCHAIN], [@​arbitrum], etc. to [#BTC] on [@​MerlinLayer2], etc. directly on the TokenPocket Market page with the seamless cross-chain bridge service from [@​mesonfi]. Download and Enjoy 👉https://www.tokenpocket.pro/ [#TokenPocket] [#CrossChainBridges] [#meson] 【Details】https://twitter.com/TokenPocket_TP/status/1767861124576301076 【Powered By】Crypto Box