Авторы анализатора PVS-Studio предлагают вам проверить свою внимательность и развлечься. Попробуйте быстро отыскать баг в фрагменте исходного кода и ткнуть в него мышкой.
Рубрика «Программирование» - 51
Игра: найди ошибку в C++ коде
2022-06-29 в 8:00, admin, рубрики: C, c++, code review, quiz, баги, Блог компании PVS-Studio, игра, КодоБред, найди ошибку, никто не читает теги, ошибки в коде, Программирование, Си, тестированиеSimulating Return Type Inference in C#
2022-06-28 в 17:00, admin, рубрики: .net, C#, csharp, dotnet, inference, type inference, обобщения, обобщённое программирование, обобщенные типы, ооп, Программирование
Мне по-настоящему нравится больше чего-либо в разработке ПО делать фреймворки, позволяющие другим разработчикам создавать что-то крутое. Иногда, в погоне за идеальным кодом, мне на ум приходят странные идеи, при реализации которых C# может дойти до предела своих возможностей.
Разработчик с мозгом груга
2022-06-28 в 11:49, admin, рубрики: api, Программирование, Проектирование и рефакторинг, рефакторинг, сложность разработки, Совершенный код, управление разработкой, факторизация кода
Введение
это сборник мыслей о разработке программ собранный разработчиком с мозгом груга
разработчик с мозгом груга не очень умный, но разработчик с мозгом груга программирует много лет и научился кое чему, хоть всё равно часто запутывается
разработчик с мозгом груга хочет собрать знания в маленькую, простую и интересную страницу не только для тебя, молодой груг, но и для себя, потому что разработчик с мозгом груга стареет и забывает важные вещи, например что ел на завтрак или надеть штаны
разработчиков с большим мозгом много, некоторым страница не понравится, скривят кислая рожа
Ещё больше-больше ДУМАЮТ, что они разработчики с большим мозгом и им она тоже не понравится
(груг раньше думал груг с большим мозгом, но потом всё понял)
это ладно!
груг надеется, что тебе понравится читать и может ты научишься на много-много ошибка груг совершил за длинную жизнь программиста
Читать полностью »
Так все же, насколько быстры каналы в Linux?
2022-06-26 в 18:49, admin, рубрики: linux, высокая производительность, каналы, Настройка Linux, оптимизация, Программирование, ПроцессорыВ этом посте будет проанализировано, как каналы Unix реализуются в Linux. Для этого мы напишем и в несколько итераций оптимизируем тестовую программу, которая записывает и считывает данные через канал1.
Сноска 1
Стилистически эта работа будет напоминать исследование производительности на примере atan2fЧитать полностью »
Почему всё ломается даже у хороших программистов? Часть 2-2
2022-06-25 в 6:16, admin, рубрики: jsdd, золотая шестеренка, ошибки программистов, Программирование, разработка по, Управление продуктом, управление проектами, управление разработкойПосле несерьёзной статьи на серьёзную тему Job Safety Driven Development стоит рассказать о том, почему даже опытные и добросовестные программисты волей случая могут попадать в схожие ситуации. Сначала захотелось написать, почему программисты ошибаются вообще, но оказалось, что это слишком разные темы. Потом оказалось, что и на эту тему получился очень длинный текст. Пришлось разбить его на части. В первой части мы рассмотрим обычные случаи, которые знакомы многим крупным компаниям. И дополним понятие «Читать полностью »
Раздувание кода стало астрономическим
2022-06-24 в 10:48, admin, рубрики: bloatware, copypaste programming, github, Клиентская оптимизация, копипейстинг, Программирование, раздутый код
Время от времени я пользуюсь одним сервисом: мне нужно загрузить файлы в какое-то место (название сервиса не имеет роли, потому что, откровенно говоря, все они одинаковы). По сути, я просто указываю папку на своём жёстком диске, после чего её содержимое копируется на удалённый сервер, на котором, вероятно, происходит что-то связанное с базами данных — этим файлам присваиваются имена и выполняются проверки того, кто их скачивает.
Сервисом владеет большая компания, поэтому её процессы масштабны; вероятно, её часто пытаются взломать, поэтому требуется какая-то защита, а также проверка того, что файлы никто не модифицировал в промежутке между загрузкой с моего компьютера и получением на сервере. Всё это я понимаю.
… но по сути, речь идёт о том, что нужно зарегистрировать несколько файлов, считать их, загрузить, а затем закрыть соединение и записать в файл лога, всё ли прошло успешно, а если нет, то что именно случилось. В этом нет ничего сложного, и даже я писал с нуля подобный код при помощи Wininet API и PHP на сервере, общающемся с моей базой данных MySQL. Наверно, моя система была не такой надёжной, как системы уровня энтерпрайза, однако поддерживала сотни тысяч загруженных файлов, их верификацию, скачивание и логирование. Наверно, это работа для одного кодера на две-три недели?
Специальный инструмент загрузки на сервер, которым я пользуюсь сегодня, суммарно имеет 230 МБ клиентских файлов и задействует 2,7 тысяч файлов для управления этим процессом.
Читать полностью »
Математическое решение задачи о матрице «змейкой»
2022-06-18 в 21:14, admin, рубрики: c++, Алгоритмы, Занимательные задачки, Лайфхаки для гиков, математика, математика для программистов, Программирование, условия, циклыНастоящая статья продолжает тему предыдущей работы (https://habr.com/ru/post/560266/Читать полностью »
Вопросы на собеседовании к вакансии Middle Unity-разработчик + полезная информация
2022-06-18 в 15:06, admin, рубрики: C#, solid, unity, вакансии, вопросы, новичкам, обучение, ооп, Программирование, разработка игр, тестовые заданияНекоторое время назад пытался устроиться на подобные вакансии (меня не взяли). Но теперь есть список вопросов, которые помогут подготовиться и углубиться в мир программирования.
(список вопросов взят из самого долгого интервью, остальные были в разы короче)
Список вопросов
Что такое Game Object? Что такое scene?
Что такое canvas? Где и для чего его нужно использовать?
Что такое MonoBehaviour? От чего он наследуется?
Расскажите Жизненный цикл MonoBehaviour.
В каком порядке вызываются события MonoBehaviour в процессе рендеринга кадра?
Зачем нужны отдельные Update и FixedUpdate?
Читать полностью »
Многопоточный Python на примерах: избавляемся от дедлоков
2022-06-16 в 8:15, admin, рубрики: deadlocks, dfs, graph, python, python3, threading, wfg, Блог компании Ozon Tech, параллельное программирование, ПрограммированиеДедлоки — распространенная проблема в многопоточном программировании. В больших приложениях вручную отслеживать порядок блокировок может быть достаточно сложно, причем эта проблема может не всплыть на этапе тестирования и случиться только в каких-то сложновоспроизводимых кейсах при реальном использовании. Существует много способов их избегания, но здесь мы рассмотрим только один — автоматическое выявление дедлоков на основе графа ожидания.
SObjectizer: что это, для чего это и почему это выглядит именно так? Взгляд из 2022-го
2022-06-15 в 8:34, admin, рубрики: actor model, c++, c++17, concurrency, multithreading, open source, sobjectizer, ПрограммированиеШесть лет назад, в июне 2016-го года, вышла первая статья об инструменте, с разработкой которого я связан уже много лет. Шестилетней давности публикация дала толчок интереса к SObjectizer-у и, как я понимаю, кто-то сумел попробовать этот инструмент в деле (или собрался попробовать) именно благодаря той статье. Поскольку за прошедшее время SObjectizer несколько изменился, то я подумал, что не помешало бы выпустить обновленную версию статьи. Исправленную и дополненную. С учетом не только того, что изменилось/появилось/исчезло, но и отталкиваясь от критических отзывов на предыдущие обзорные статьи.