Блог*
前往频道在 Telegram
Блог со звёздочкой. Много репостов, немножко программирования. Небольшое прикольное комьюнити: @decltype_chat_ptr_t Автор: @insert_reference_here
显示更多1 987
订阅者
+124 小时
-77 天
+630 天
帖子存档
1 987
#prog #rust #rustlib #article
Introducing facet: Reflection for Rust
Как сказано в facet.rs:
the last proc macro / the last derive you’ll ever needСердце библиотеки — трейт Facet и derive-макрос для него. В отличие от других крейтов, которые ползают по определениям типов, facet генерирует не код обхода значений, а константы, которые описывают формы значений и потому могут быть утилизированы разными библиотеками разными способами. Из примеров: (де)сериализация, отладочная печать, ассерты с диффами (которые не полагаются на пост-обработку Debug-выхлопа). В силу того, что код не генерируется, эти реализации могут использовать нерекурсивные алгоритмы и таким образом избежать переполнение стека и легко регулировать глубину вложенности. В статье рассказывается, зачем это создано и какие ещё преимущества даёт.
1 987
#prog #article
Зло живёт в функциях сравнения
Оказывается, программисты тяготеют к тому, чтобы допустить ошибку в функциях сравнения двух объектов. Такое утверждение выглядит неправдоподобным, однако, я покажу огромное количество примеров ошибок, которые шокируют читателяВ статье примеры на C++ и C#, но указанные ошибки, кмк, легко допустить в любом языке, который не позволяет синтезировать функции сравнения и равенства.
1 987
#prog #go #article
[ On | No ] syntactic support for error handling (перевод)
this_is_fine.jpg
For the foreseeable future, the Go team will stop pursuing syntactic language changes for error handling. We will also close all open and incoming proposals that concern themselves primarily with the syntax of error handling, without further investigation.В статье приведены аргументы в пользу сохранения статуса-кво, но они почти все — полный мусор. Особенно доставляет следующая пара: 1. Один аргумент говорит о том, что IDE и LLM могут помочь с написанием бойлерплейта, а в IDE можно этот бойлерплейт потом скрывать. 2. Второй аргумент говорит о пользе печати отладкой и возможности поставить точеи останова и о том, как специфичный синтаксис этому мешает — дескать, надо на if переписывать, а это затрудняет отладку (???) и может внести тонкие ошибки. Автор тактично умалчивает о том, что инструменты, описанные в первом аргументе, могут помочь с проблемами во втором. Особенно дико это смотрится с учётом того, что в оригинальном тексте эти два аргумента идут подряд.
1 987
#prog #python #article
Новый лучший способ форматирования строк в Python
t-строки — новый вид строк в Python. Походит на format_args! в Rust в том смысле, что позволяет захватывать переменные по имени и создаёт просто шаблон со значениями переменных вместо уже форматированной строки. Как следствие, это позволяет одновременно ускорить форматирование и отделить собственно образование шаблона от его интерпретации. В статье приводится пример форматировщика SQL-запросов: он может при форматировании автоматически экранировать значения. Аналогично для шаблонизатора HTML.
1 987
Чиновник по ошибке зачитал отказ нейросети в написании речи
Сам государственный служащий сначала отказался давать комментарии, затем сделал заявление, в котором отрицал, что когда-либо пользовался искусственным или каким-либо другим интеллектом, а затем всё-таки признал допущенную ошибку и разместил на своей странице в социальной сети извинения из 10 пунктов, заканчивающиеся фразой: «Если вы хотите сгенерировать ещё какие-либо извинения, дайте знать!»
