Pull to refresh
2
0.1
Сергей @gres_84

C++ Developer

Send message

Основные принципы разработки (SOLID, KISS и т. д.)

Level of difficultyEasy
Reading time21 min
Views12K

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

В общем вас ждет теория, ещё теория, словесные примеры и даже примеры кода (он на С++, но написан понятно).

А еще это полезно знать на собесах :-)

Читать далее
Total votes 16: ↑13 and ↓3+15
Comments10

REST API на котиках

Level of difficultyEasy
Reading time7 min
Views23K

Привет любителям котиков! Меня зовут Юля, я backend‑разработчик компании CDEK. Я сама не так давно изучала все эти сложные понятия в программировании, поэтому решила помочь и вам разобраться с одним из них.

С какой стороны IT вы бы не пытались войти — в какой‑то момент столкнётесь с понятием REST API. Эта статья создана, чтобы смягчить данное столкновение. Новые темы всегда легче воспринимаются на простых примерах, ну а если это примеры с котиками, то варианта не разобраться просто нет. Хочется обойтись без сложных научных определений, а рассказать самым простым языком. Поэтому, если вы любите сухие и точные формулировки, то вам нужна другая статья :)

Читать далее
Total votes 63: ↑60 and ↓3+61
Comments26

Обработка ошибок и C++

Reading time8 min
Views29K

О чём тут не будет: напоминания базовых конструкций языка и основных моментов о том, как с ними работать; подробного разбора, как работают исключения (писали тут и тут); как грамотно спроектировать ваш класс/программу, чтобы не наломать дров в будущем с гарантией исключений (разве что совсем чуть-чуть, хотя я сам и не очень-то тук-тук).

О чём будет: разные способы обработки ошибок в C++, несколько советов от сообщества и немного заметок о различных жизненных (и не очень) ситуациях.

Обработать ошибки.
Total votes 20: ↑19 and ↓1+25
Comments20

Где решать задачи по программированию, чтобы пройти путь from zero to hero

Level of difficultyEasy
Reading time4 min
Views110K

Если вам о чём-то говорят фамилии Зив, Хомченко и Рымкевич, иди сюда, дай обниму, бедолага-олимпиадник, то вы наверняка знаете, как важно прорешивать задачи для полноценного, осознанного и глубокого понимания изученного материала. Когда нет или совсем мало реальной практики, задачи дают возможность покрыть практикой все теоретические знания, погрузиться в неожиданные выводы, сложности, баги, препятствия. Более того, даже если практики достаточно, задачи помогают относительно быстро, комплексно и глубоко проработать типичные и нетипичные ситуации, возникающие в разработке (любой другой науке). Это всегда безопасный (никто не взрывает лабораторию и не роняет прод), доступный и удобный способ подробно разобраться в предмете. Определённо, программирования это касается в первую очередь.

Читать далее
Total votes 42: ↑41 and ↓1+65
Comments25

Погоня с препятствиями

Reading time26 min
Views8.9K
 
           Какая медлительная страна! — сказала Королева. — Ну, а здесь,
знаешь ли, приходится бежать со всех ног, чтобы только остаться
на том же месте! Если же хочешь попасть в другое место, тогда
нужно бежать по меньшей мере вдвое быстрее! 
 
                        Льюис Кэрролл "Алиса в Зазеркалье


Сегодня, я хочу рассказать об удивительной и недооценённой игре, с которой я познакомился чуть менее двух лет назад. В каком-то смысле, именно с этой игры, а также с Ура, началось моё знакомство с Дмитрием Скирюком. В те дни я только начинал интересоваться настольными играми. Мои познания были скудны и, во многом, наивны. Такие игры как "Чейз", буквально открыли для меня новый необъятный мир. Даже сейчас, работа над этой игрой, в большой степени, напоминает детективную историю. В этом отношении, игра "Chase" полностью оправдала как своё название так и сходство с псевдонимом известного американского писателя.
Читать дальше →
Total votes 15: ↑15 and ↓0+15
Comments6

Дерево отрезков

Reading time21 min
Views9.3K

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

Читать далее
Total votes 29: ↑29 and ↓0+34
Comments11

35+ бесплатных ресурсов для начинающих разработчиков С++

Level of difficultyEasy
Reading time7 min
Views20K

Привет. Предположим, вы захотели начать изучать языĸ программирования C++ или, возможно, тех материалов, что уже изучили, вам недостаточно.

Я — Савва, программирую уже больше 7 лет, работаю менеджером команды наставников в Практикуме на курсе «Разработчик С++», а с недавнего времени — разработчиком в Positive Technologies. В этой статье мы с вместе с Практикумом собрали леĸции, ĸниги, курсы и всяĸое таĸое, чтобы шансов выстрелить себе в ногу самостоятельно было меньше :) По C++ существуют и другие подборĸи, но, ĸ удивлению, на Хабре их всего две.

Читать далее
Total votes 26: ↑25 and ↓1+27
Comments19

Числа и байты: как работает память в Linux?

Level of difficultyHard
Reading time27 min
Views16K
image

Часть первая: физическая память


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

Также память включает в себя оперативное запоминающее устройство (ОЗУ) или RAM, где можно записывать и считывать информацию. Существует статическая ОЗУ (SRAM) и динамическая ОЗУ (DRAM), различающиеся в том, как хранится информация. В SRAM информация сохраняется до выключения питания, в то время как в DRAM используются транзисторы и конденсаторы, что позволяет хранить данные, но требует их периодического обновления. Разные типы ОЗУ имеют свои преимущества и недостатки, и выбор зависит от конкретных потребностей.

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

Но что такое физическая память, как она работает в Linux? Что такое сегментация, утечки памяти и некие «страницы»?

Все, что вы хотели знать, но боялись спросить о памяти пингвина — читайте здесь и сейчас!
Читать дальше →
Total votes 31: ↑31 and ↓0+35
Comments18

Проджект менеджер свалился под стол с кровавой пеной во рту — что делать?

Level of difficultyEasy
Reading time5 min
Views6.9K

Айтишный труд опасен: можно отравиться соевым латте, словить инфаркт от правок и подраться на корпоративе. Можем ли мы рассчитывать на помощь коллег в случае ЧП? Пока вы врубаете VPN, чтобы спросить совета у ChatGPT, ваш коллега отправится на тот свет. 

В этой статье разобрали несчастные случаи, которые могут настигнуть вас в офисе. Рассказываем, что нужно сделать в таких ситуациях (и что делать ни в коем случае нельзя). Кстати, ВОЗ говорит, что на рабочем месте ежегодно умирает до 600 000 человек. 

Читать далее
Total votes 23: ↑21 and ↓2+27
Comments51

Как не надо проверять размер массива в С++

Level of difficultyMedium
Reading time7 min
Views25K

Как часто вам приходится сталкиваться с конструкцией sizeof(array)/sizeof(array[0]) для определения размера массива? Очень надеюсь, что не часто, ведь на дворе уже 2024 год. В заметке поговорим о недостатках конструкции, откуда она берётся в современном коде и как от неё наконец избавиться.

Читать далее
Total votes 66: ↑63 and ↓3+83
Comments103

Парадоксы в данных, и почему визуализация бывает необходима

Level of difficultyEasy
Reading time6 min
Views8.1K

В этой заметке я хочу разобрать несколько «парадоксов» в данных, о которых полезно знать как начинающему аналитику данных, так и любому человеку, кто не хочет быть введенным в заблуждение некорректными статистическими выводами.

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

Погнали!
Total votes 40: ↑40 and ↓0+41
Comments3

Стандартное отклонение и стандартная ошибка: две статистики с похожими названиями, но разными смыслами

Level of difficultyMedium
Reading time9 min
Views18K

Я читаю курс статистического мышления магистрам, и одна тема вызывает у них явные затруднения — чем стандартное отклонение отличается от стандартной ошибки, и в каких случаях, применять ту или иную статистику. Думаю, будет интересно поговорить об этом в блоге ЛАНИТ.

Читать далее
Total votes 35: ↑35 and ↓0+36
Comments8

Бесконтактные и слабые измерения, контрфактические вычисления и контрпортация

Level of difficultyMedium
Reading time20 min
Views3.3K

От философов-антиреалистов, эзотериков и богословов часто можно услышать проповеди на тему ограниченности научных методов и о существовании за пределами физического мира иных планов бытия, которые нематериальны и не могут быть познаны экспериментальным путём. Но они не в курсе, что наука уже много лет занимается изучением контрфактуалов - «потусторонних» событий, происходящих не в нашей вселенной, но тем не менее подчиняющихся известным физическим законам. Учёные постоянно открывают новые способы «взломать» классическую физику и ставят умопомрачительные эксперименты, результаты которых заставляют нас пересмотреть традиционные определения реальности. Практика показывает, что природа познаваема и содержит в себе всё необходимое для роста знания, главное – задавать ей правильные вопросы. Как измерить светочувствительную бомбу, не подрывая её? Как провести вычисление, не включая компьютер? Как увидеть, не глядя, и узнать о событии, которое не произошло? Как подсмотреть за котом Шрёдингера и воскресить его? Как отменить коллапс волновой функции? Наконец, как осуществить настоящую телепортацию без локального обмена информацией? Если обычная квантовая телепортация, запутанность и туннелирование уже не кажутся вам чем-то удивительным, готовьтесь к настоящим чудесам. В этой статье я разберу пять экспериментов, о которых вы вряд ли слышали, но результаты которых действительно взрывают мозг.

Читать далее
Total votes 12: ↑11 and ↓1+12
Comments6

SSH-Туннели простыми словами

Level of difficultyEasy
Reading time7 min
Views18K

В какой-то момент у меня возникла необходимость разобраться с простыми SSH-туннелями: как из запускать и какие туннели могут помочь мне (обычному web-разработчику). Разобраться в этом удалось и я решил поделиться пояснениями в простой понятной форме.

Читать далее
Total votes 17: ↑16 and ↓1+18
Comments27

Преобразование Уолша-Адамара

Level of difficultyHard
Reading time11 min
Views13K

На сайте hackerrank.com есть отличная задача. По заданному массиву short[] A; найти максимальное количество его подмассивов, xor элементов которых будет одинаковым. Сам этот xor тоже нужно найти.

Максимальная длина массива равна 105, так что квадратичный алгоритм не укладывается в лимит по времени исполнения. Я в своё время с этой задачей не справился и сдался, решив подсмотреть авторское решение. И в этот момент я понял почему не справился — автор предлагал решать задачу через дискретное преобразование Фурье.

Читать далее
Total votes 64: ↑64 and ↓0+64
Comments5

Стрела времени, демон Лошмидта и квантовая термодинамика. Почему время необратимо?

Level of difficultyMedium
Reading time36 min
Views20K

Когда всё вокруг стремится к хаосу и жизнь с каждым днём становится только хуже, невольно возникает желание обратить время вспять. Но почему-то реальность всячески противится попыткам развернуть стрелу времени на 180°. Что же заставляет время идти только вперёд и не даёт повернуть его назад? Чем прошлое отличается от будущего? И почему мы помним прошлое, а не будущее? Почему разрушать, рассеивать и смешивать легко, а строить, концентрировать и сортировать – сложно? Как вывести асимметричные во времени законы термодинамики из симметричных во времени законов механики? Является ли второй закон термодинамики единственной причиной необратимости времени? Связана ли необратимость времени с расширением Вселенной? Поискам ответов на эти и другие связанные со временем вопросы посвящён весь мой блог, поэтому объяснений в двух словах не будет. В данной статье я лишь задам направление мысли и разберу самую проработанную на сегодняшний день теорию, позволяющую описать время на языке квантовой физики. Также мы выясним, насколько правдоподобен фильм «Довод» и можно ли инвертировать энтропию человека, чтобы он жил назад во времени.

Читать далее
Total votes 34: ↑30 and ↓4+37
Comments55

О Wikidata для тех кто вообще не слышал: открытая база данных, сестринский проект Википедии — с ней же и интегрирован

Level of difficultyEasy
Reading time3 min
Views5.5K

Здравствуйте, на Хабре не много о Викиданных, хочу рассказать об этом бесплатном открытом интересном и полезном сервисе. Веб интерфейс располагается по адресу https://www.wikidata.org/wiki/Wikidata:Main_Page.

Читать далее
Total votes 34: ↑31 and ↓3+35
Comments11

C++26 — прогресс и новинки от ISO C++

Level of difficultyMedium
Reading time7 min
Views23K

Работа в комитете по стандартизации языка C++ активно кипит. Недавно состоялось очередное заседание. Как один из участников, поделюсь сегодня с Хабром свежими новостями и описанием изменений, которые планируются в С++26.

До нового стандарта C++ остаётся чуть больше года, и вот некоторые новинки, которые попали в черновик стандарта за последние две встречи:

  • запрет возврата из функции ссылок на временное значение,
  • [[indeterminate]] и уменьшение количества Undefined Behavior,
  • диагностика при =delete;,
  • арифметика насыщения,
  • линейная алгебра (да-да! BLAS и немного LAPACK),
  • индексирование variadic-параметров и шаблонов ...[42],
  • вменяемый assert(...),
  • и другие приятные мелочи.

Помимо этого, вас ждут планы и прогресс комитета по большим фичам и многое другое.
Рассмотрим новинки на примерах
Total votes 51: ↑49 and ↓2+62
Comments119

Философия и физика времени. Презентизм и этернализм. Пространство-время в СТО и ОТО

Level of difficultyMedium
Reading time24 min
Views18K

Время (time) – наиболее часто употребляемое слово в английском языке и третье по употребляемости в русском. Оно есть и в любом другом языке, потому что синхронизация действий во времени так же важна, как и их координация пространстве. Не зная точного времени, невозможно упорядочить свою жизнь и спланировать её наперёд. Если в древние времена можно было полагаться на природные циклы и внутреннее ощущение времени, то в наши дни нужно постоянно иметь при себе часы или телефон. Время – важнейшее из абстрактных понятий, которое мы произносим каждый день. Над проблемой времени хотя бы раз в жизни задумывался каждый мыслящий человек, и на эту тему написано огромное количество философской и научной литературы. Тем не менее, никто не скажет наверняка, что же такое время. Оно реально, или это иллюзия, порождённая нашим сознанием? Существует ли время независимо от пространства и материи? Что первично: время или движение? Возможно ли время без движения и движение без времени? Что определяет разницу между прошлым и будущим? Время необратимо, или нам так только кажется?

Разумеется, охватить всю философию и физику времени в одной статье невозможно, поэтому не ждите полных ответов на поставленные вопросы. Пока я начну с напоминания самых элементарных вещей, о которых может рассказать любой научпопер или школьный учитель физики, но без которых будет трудно понять мои следующие статьи. Здесь я рассказываю о философских концепциях времени, вкратце объясняю Специальную и Общую теории относительности и разоблачаю миф об иллюзорности или субъективности времени.

Читать далее
Total votes 17: ↑14 and ↓3+15
Comments66

Жуткое дальнодействие. Как не запутаться в квантовой запутанности?

Level of difficultyMedium
Reading time19 min
Views14K

В 2022 г. Алан Аспе, Джон Клаузер и Антон Цайлингер получили Нобелевскую премию по физике «за эксперименты с запутанными фотонами, установившие нарушение неравенств Белла и положившие начало квантовой информатике». О важности этого события много говорили журналисты и популяризаторы науки, привлекая внимание громкими заявлениями о «доказательстве нелокальности», «второй квантовой революции» и о том, что «Эйнштейн был неправ». Но подавляющее большинство людей как не понимало, так и не понимает, о чём вообще идёт речь. На этой почве процветает квантовый мистицизм, распространяющий ошибочные представления о квантовой запутанности как о свойстве макроскопических объектов. Также пользуются популярностью конспирологические теории о том, что «учёные снова пытаются нас запутать» и на самом деле мир устроен намного проще. К сожалению, реальность не так проста, как нам хотелось бы, а наш мозг не был заточен эволюцией на понимание квантовой механики. Но я всё же попробую объяснить квантовую запутанность простыми словами без страшных формул.

Читать далее
Total votes 10: ↑8 and ↓2+13
Comments52

Information

Rating
3,622-nd
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity