Обновить

Rwal: Как я пишу кросс-платформенный менеджер обоев на C++20 в 10 классе

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели6.3K
Всего голосов 7: ↑2 и ↓5-3
Комментарии8

Комментарии 8

Одной из самых раздражающих проблем стали фризы интерфейса при загрузке 4K-изображений. Сейчас я работаю над внедрением std::jthread из стандарта C++20.

Каким образом jthread может решить вашу проблему, явно происходящую от того, что UI и загрузка не распараллелены?

так как проект использует современные фичи вроде std::format (в планах) и асинхронные потоки

ни того ни другого в коде нет

я реализовал обертку CurlWrapper с использованием принципов RAII.

не изобретайте велосипед, используйте библиотеку

стандарт C++20. Это критично, так как проект использует современные фичи вроде std::format

Вы удивитесь насколько слабая поддержка std::format в STL C++20. Используйте libfmt лучше сразу

Системное программирование — это не страшно

У вас не системная а прикладная утилита, несмотря на то что C++

Я понял. Учту в следующих статья. Спасибо за критику.

должна одинаково хорошо чувствовать себя в разных окружениях: от KDE и GNOME до Windows

В коде есть GnomeSetter и KdeSetter, упоминается несуществующий LinuxFallbackSetter. Поддержки Windows нет.

WallpaperFactory::create
/* soon

	#ifdef _WIN32
		return std::make_unique<WindowsSetter>();	
	#elif defined(__APPLE__)		
		return std::make_unique<MacosSetter>();
*/

	#ifdef RWAL_USE_KDE
        return std::make_unique<KdeSetter>();
    #elif defined(RWAL_USE_GNOME)
        return std::make_unique<GnomeSetter>();
    #elif defined(RWAL_USE_FALLBACK)
        return std::make_unique<LinuxFallbackSetter>();
    #else
        return nullptr; 
    #endif

Изначально я пробовал использовать Docker для изоляции окружения, но для системной утилиты, которой нужен доступ к D-Bus хоста, это создавало лишние накладные расходы. В итоге я перешел на «чистый» CMake.

Как связаны Docker и CMake?

И статья выглядит очень похожей на ИИ-генерацию, учитвая, что био профиля, README (и прочие .md файлы в репозитории) явно сгенерированы нейронкой

Про LinuxFallbackSetter и Windows - мой косяк. В коде пока только заготовки и планы, в статье я имел ввиду только плановую поддержку Windows.

Связь Docker и CMake была в попытке сделать контейнерную среду сборки, но из-за проблем с пробросом я в итоге выбрал обычный CMake.

Для оформления README и профилей действительно использую ИИ. Но архитектуру и статью пишу сам. Ошибки в репозитории это как раз подтверждают)

Скрытый текст

Я думал, что у меня шиза, но чекеры типа gptzero и gigacheck действительно показывают, что писал ИИ.

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

Проблема не в самом ИИ, а в том, что за статьёй по факту ничего не стоит. Вместо того, чтобы просить нейронку "напиши статью, вот код", можно было написать личный опыт при разработке, аля на какие грабли наступил. Я не проф писатель статей, но именно это я примерно и ожидал, когда увидел статью в ленте, как читатель.

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

У тебя крутой возраст и проект для старта в C++, но не стоит это тратить на какой-то промпт-инжиниринг для Хабра

Да, ты прав.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации