Библиотека С# С++
10.5K subscribers
156 photos
8 videos
179 files
152 links
https://t.iss.one/+WgGTjeH0p1NjMDFi - ссылка на канал
По всем вопросам- @workakkk

@ai_machinelearning_big_data - Machine learning

@itchannels_telegram - 🔥лучшие ит-каналы

@csharp_ci- C# академия

@pythonlbooks- python книги📚

РКН: clck.ru/3Fmvsw
Download Telegram
🖥 Эта статья объясняет, как использовать команду scp для передачи файлов между локальной и удаленной системами через SSH!

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

🔗 Ссылка: *клик*
Please open Telegram to view this post
VIEW IN TELEGRAM
🤡3🤔2
⚡️ «Stop Conflating CQRS and MediatR» от Milan Jovanovic Tech развеивает миф о том, что CQRS и MediatR — одно и то же.

Вот основные моменты:

CQRS – архитектурный паттерн: Разделяет операции чтения и записи, позволяя оптимизировать модели для разных задач.
MediatR – инструмент посредника: Обеспечивает централизованное взаимодействие компонентов, но не заменяет принципы CQRS.
Часто вместе, но не всегда: Совмещение MediatR с CQRS может добавить лишнюю сложность там, где достаточно простого решения.
Главное: Выбирайте инструменты, исходя из потребностей проекта, а не следуйте модным шаблонам.

Подробнее: Stop Conflating CQRS and MediatR

@cpluscsharp
👍53
ЛУЧШАЯ шпаргалка по директориям Linux — всё четко разложено для новичков.

Здесь собраны основные папки файловой системы с простыми объяснениями.

Сохраните и не потеряйте.
👍143🔥2
🔥 Awesome на GitHub

Это курируемые подборки ресурсов (книг, статей, инструментов, библиотек и многое другое) по конкретным темам, созданные сообществом разработчиков и энтузиастов.

Собрали подборку лучших из них. Сохраняйте, чтобы не потерять

• C: awesome-c
• C++: awesome-cpp
• C#: awesome-dotnet
• Хакинг: https://github.com/Hack-with-Github/Awesome-Hacking
• Информационная безопасность: awesome-security
• Базы данных: awesome-database-learning
• JavaScript: awesome-javascript
• React: awesome-react
• Vue: awesome-vue
• Angular: awesome-angular
• Node.js: awesome-nodes
• Typescript: awesome-typescript
• Java: awesome-java
• Go: awesome-go
• Ruby: awesome-ruby
• PHP: awesome-php
• Kotlin: awesome-kotlin
• Rust: awesome-rust
• Swift: awesome-swift
• iOS-разработка: awesome-ios
• Android-разработка: awesome-android
• Unreal Engine: awesome-unreal
• Unity: awesome-unity3d
• Python: awesome-python
• Django: awesome-django
• Data Science: awesome-datascience
• TensorFlow: awesome-tensorflow
• Linux: Awesome-Linux-Software
• DevOps: awesome-devops
• SysAdmins: awesome-sysadmin
• Nginx: awesome-nginx
• Kubernetes: awesome-kubernetes
• Docker: awesome-docker
• Автоматизация сетевой инфраструктуры: awesome-network-automation
• QA: awesome-testing

@cpluscsharp
5👍3🔥3
⚡️ Статья Джоша Карателли "The forgotten art of Struct Packing in C/C++" посвящена оптимизации структуры данных в языках программирования C и C++ путём правильного упорядочивания членов структур для минимизации их размера. ​
Josh Caratelli - Game Programmer

Основные моменты статьи:

Проблема выравнивания и паддинга: Компьютеры читают и записывают данные из памяти блоками определённого размера (например, 16 байт). Чтобы обеспечить корректный доступ к данным, компиляторы автоматически добавляют дополнительные байты (паддинг) для выравнивания данных. Это может привести к тому, что структуры занимают больше памяти, чем необходимо. ​
Josh Caratelli - Game Programmer

Оптимизация порядка членов структуры: Располагая члены структуры от наибольшего к наименьшему по размеру, можно уменьшить или устранить паддинг. Поскольку структура выравнивается по размеру её самого большого члена, такое упорядочивание помогает минимизировать общий размер структуры. ​
Josh Caratelli - Game Programmer

Практический пример: Два примера структур с одинаковыми членами, но разным порядком их расположения, демонстрируют, что правильное упорядочивание может уменьшить размер структуры на 8 байт. ​
Josh Caratelli - Game Programmer

Инструменты для анализа паддинга: Для просмотра добавленного компилятором паддинга можно использовать опцию командной строки /d1reportSingleClassLayoutXXX в Visual Studio, где XXX — имя вашей структуры. ​
Josh Caratelli - Game Programmer

Предостережения: Хотя упаковка структур может сэкономить память, иногда небольшое увеличение размера структуры оправдано, если это улучшает производительность во время выполнения программы. Например, часто используемые члены структуры можно разместить в начале для ускорения доступа к ним. ​
Josh Caratelli - Game Programmer

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

🔗 Читать

@cpluscsharp
👍4🔥4
🚀 .NET 10 Preview 3 уже доступен!
Новая версия приносит мощное обновление для C# — Extension Members:


💡 Теперь можно добавлять в static class расширения не только методов, но и:

🔹 Статические методы
🔹 Инстанс-свойства
🔹 Статические свойства

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

🔗 Подробнее:
https://github.com/dotnet/core/blob/main/release-notes/10.0/preview/preview3/csharp.md#extension-members

#dotnet #csharp #dotnet10 #devtools #preview

@csharp_ci
6👍3
📖 asmbook — мягкое введение в программирование на ассемблере для ARM. Для разработчиков, пишущих на C/C++, но желающих разобраться в низкоуровневых особенностях процессоров, проект предлагает практическое руководство по ассемблеру ARMv8.

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

🔗 GitHub

@cpluspluc
3👍1🔥1
🖥 В этой статье обсуждается ситуация, когда применение оптимизаций компилятора приводит к изменению поведения программы! Автор подчеркивает, что если поведение программы меняется при использовании определенного уровня оптимизации, это часто указывает на наличие неопределенного поведения в коде.

💡 Автор объясняет, что компиляторы, следуя правилу "as-if" (как если бы), могут применять любые преобразования кода, при условии, что они не изменяют его наблюдаемое поведение. Однако, если в программе присутствует неопределенное поведение, компилятор может производить оптимизации, которые изменяют поведение программы, поскольку исходное поведение не было строго определено

🔗 Ссылка: *клик*

@cpluscsharp
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
🖥 Эта статья рассказывает о подходах к бенчмаркингу при тестировании C++ кода!

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

🔗 Ссылка: *клик*

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
1
🧠 Beej's Guide to Network Programming — легендарный гайд по сокетам на C

Если ты хочешь понять, как работают сети на низком уровне — забудь всё и читай Beej's Guide.

📘 Это бесплатное руководство от Beej (Брайан Холл), которое:
• Объясняет сокеты, TCP, UDP, IPv4/IPv6
• Работает под Linux и Windows
• Написано на чистом C
• Покрывает всё: от socket() до select() и recvfrom()
• С нуля до уверенного уровня

🔥 Почему это круто:
- Простой и разговорный стиль
- Куча кода и реальных примеров
- Бесплатно и с открытой лицензией (CC)
- Один из самых уважаемых туториалов среди C-программистов

📎 Читай тут

Подходит всем, кто хочет научиться писать сетевые приложения руками, а не кнопками.

#CProgramming #SocketProgramming #NetworkProgramming #BeejGuide #LinuxNetworking #TCP #UDP #Coding
2🔥2
🔥 From C# to Rust: 42-дневный челлендж от Chris Woody Woodruff

Chris Woodruff, экспериментающий .NET-разработчик, объявил старт своего 42-дневного пути погружения в Rust — язык системного программирования, совмещающий производительность, безопасность и отсутствие null:contentReference[oaicite:0]{index=0}.

🎯 Цели проекта
- Жить и дышать Rust — по одному уроку в день.
- Противостоять строгому borrow checker.
- Осознанно учиться и делиться выводами от лица C#-разработчика.

🛠 Что ожидается изучить
- Владение памятью, шаблоны, трейты, времена жизни (`lifetimes`).
- Яркие сравнения Rust и C#: синтаксис, ownership vs GC, ошибки компилятора:contentReference[oaicite:2]{index=2}.
- Краткие ежедневные отражения из .NET-мира.

📅 Примерный план на 42 дня
1. День 1–7: Почему Rust? Установка, cargo new vs dotnet new, "Hello, World!", переменные, функции:contentReference[oaicite:4]{index=4}.
2. День 8–14: Неделя владения — темы: ownership, borrowing, borrow checker:contentReference[oaicite:5]{index=5}.
3. День 15–42: Структуры, перечисления (`enum`), match, Option<T>, Result<T, E>, модули, ошибки, трейты, дженерики, лямбды и многое другое.

💬 Голос из сообщества
> «What happens when a C# dev swaps null for Option, garbage collection for ownership… You get 42 days of brain‑bending, compiler‑fighting…»

Подытожим
- Проект идёт с апреля 2025 года, уже опубликованы десятки дневных эссе.
- Каждая запись по мотивам реального опыта: «why won’t this compile?!», сравнения с привычным C#.
- В финале — обзор полученного опыта, личные инсайты и примеры рабочего CLI‑приложения на Rust:contentReference[oaicite:8]{index=8}.

🚀 Готовы бросить вызов себе и глубже понять Rust?

Следите за дневником Woody и за входом в мир безопасных без‑GC систем прямо с .NET-опытов!

🔗 Подробнее: From C# to Rust: A 42-Day Developer Challenge

https://woodruff.dev/from-c-to-rust-a-42-day-developer-challenge/
7👍2
📘 Combining .NET Aspire with Temporal – часть 1

💡 В блоге Rebecca Powell на aspireify.NET описан старт серии статей о том, как интегрировать .NET Aspire с системой оркестрации Temporal :contentReference[oaicite:0]{index=0}.

🔍 Что в выпуске:
- An introduction to combining .NET Aspire apps with Temporal workflows
- Демонстрация того, как добавление Temporal упрощает надёжную обработку задач с состоянием и повторениями
- Подробный пример начала покрытия процессов с помощью Temporal SDK для .NET

📈 Почему это важно:
- Temporal помогает строить устойчивые распределённые системы с автоматическим управлением retries, временными метками и дедлайнами
- Интеграция с .NET Aspire — отличная основа для создания масштабируемых и отказоустойчивых приложений

➡️ Это только часть 1 — в следующих публикациях ожидаются глубже пример кода, best practices и кейсы. Отличный старт для разработчиков на .NET, интересующихся workflow-автоматизацией.

👉 Читать полностью

#dotnet #Aspire #Temporal #workflow #softwareengineering #rebeccapowell
2👍1
Forwarded from Machinelearning
This media is not supported in your browser
VIEW IN TELEGRAM
📚 ArXiv Research Agent — отличный помощник для научных исследований.

Агент самостоятельно:
• Найдёт релевантные статьи с arXiv, bioRxiv, medRxiv и Semantic Scholar
• Проведёт полноценный обзор и поиск нужных материалов
• Покажет, что упущено, и предложит, что добавить
• Даст инсайты и цитаты из миллионов научных работ
• Генерирует готовые конспекты
И др.

Вскоре обещают добавить поддержку MCP.

🔜 Попробовать: https://www.alphaxiv.org/assistant

@ai_machinelearning_big_data


#agent #ArXiv #ai #ml
Please open Telegram to view this post
VIEW IN TELEGRAM
7
🚀 Заблуждение: Dapper не быстрее EF Core на 50%

При запуске реальных бенчмарков в .NET 8 получены следующие результаты:

• Dapper: 2.07 мс
• EF Core: 2.43 мс

Разница составила 0.36 мс, или 14%, а не заявленные 50%.
Хотя Dapper расходует чуть меньше памяти, в 80% проектов это несущественно.

Вывод
Для большинства задач такая разница в производительности не влияет на выбор технологии, поэтому EF Core часто становится основным инструментом работы с данными.

12 причин предпочесть EF Core вместо Dapper:
1. Автоматическое отслеживание изменений сущностей
2. LINQ с проверкой запросов на этапе компиляции
3. Code-first миграции для управления схемой БД
4. Обратное создание моделей из существующих баз данных
5. Навигационные свойства вместо ручных JOIN
6. Eager, lazy и explicit загрузка данных
7. Глобальные фильтры запросов (soft delete, multitenancy)
8. Value conversions для пользовательских типов
9. Встроенные retry-политики для устойчивости подключений
10. Interceptors для аудита и логирования
11. Одна кодовая база для разных СУБД (SQL Server, PostgreSQL, MySQL, Oracle, SQLite и др.)
12. Централизованное управление миграциями для нескольких баз данных

В микробенчмарках EF Core может уступать, но в реальных проектах его возможности экономят разработчикам часы и дни работы.

Что предпочитают разработчики: EF Core или Dapper?
♻️ Репост, чтобы поделиться результатами сравнения производительности!
5👍4👎1