Как стать автором
Обновить
27
0.1

Программист С++

Отправить сообщение

Вы за это заплатите! Цена Чистой Архитектуры. Часть 1

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров26K

Всем привет, меня зовут Артемий, я работаю старшим Android-разработчиком в команде пользовательского профиля в RuStore. Мой опыт в индустрии уже 8 лет. За это время я успел поработать в разных проектах и компаниях. У меня был опыт работы в проекте, в котором было свыше 300 модулей и больше 60 Android-разработчиков. Такие условия заставляют задуматься о масштабируемости на принципиально ином уровне.

Сегодня я расскажу о способах обеспечения масштабируемости проекта и как этому может навредить неправильное восприятие Чистой Архитектуры (далее — ЧА). Предупреждаю сразу, это лонгрид в двух частях!

Читать далее
Всего голосов 58: ↑55 и ↓3+58
Комментарии65

Как работает физика в играх

Уровень сложностиСредний
Время на прочтение17 мин
Количество просмотров19K

В мире видеоигр игровая физика играет важную роль, определяя реалистичность и взаимодействие игрового мира с игроком. Что же происходит под капотом? Какие алгоритмы и подходы используются в современных движках? И что же значит «застрять в текстурах»? (спойлер: чушь полнейшая)

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

Читать далее
Всего голосов 74: ↑74 и ↓0+74
Комментарии36

Как написать свою маленькую ОС

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров41K


Большое начинается с малого. Например, ядро Linux 0.0.1 состояло всего из 10 239 строк кода, из них 20% комментарии. Такой проект вполне может осилить студент в качестве курсовой или дипломной работы, программируя по вечерам на домашнем ПК (собственно, Линус и написал его во время учёбы в университете, когда вернулся из армии).

Если один студент смог это сделать тогда, то почему нельзя повторить? И действительно, в интернете есть даже специальные обучающие ресурсы для написания новых ОС и целые сообщества энтузиастов, которые помогают друг другу в этом непростом деле.
Читать дальше →
Всего голосов 83: ↑78 и ↓5+98
Комментарии25

Укрощение примитивов синхронизации: сравниваем решения задачи с построением пула потоков на С и Go

Время на прочтение21 мин
Количество просмотров4.3K

Эта статья основана на истории об одном личном челлендже. Задача звучала так: помочь с реализацией взаимодействия компонентов в программном комплексе заказчика. Иными словами, понадобилось IPC для дальнейшего развития продукта. Вызов заключался в том, что в обязательных требованиях стояло использование чистого С. Другие языки, включая С++ и Go, не рассматривались. 

В итоге я получил интересный опыт в рамках системного и параллельного программирования. Меня зовут Алексей Буреев, я работаю старшим инженером по разработке ПО в YADRO, сейчас мой основной рабочий язык программирования — Golang. В этой статье я проведу небольшой эксперимент: покажу, как можно решить одну задачу с помощью разных языков программирования. Языку С я противопоставлю Go, в основе которого есть исторические наработки проектирования языка С. Для этого немного заглянем «под капот» стандартных типов данных, которые уже были заботливо созданы для нас разработчиками языка.

Всех заинтересованных прошу под кат.

Читать далее
Всего голосов 16: ↑14 и ↓2+17
Комментарии16

Как я зарабатывал $10,000 в месяц на серверах ARK: Survival Evolved

Уровень сложностиПростой
Время на прочтение16 мин
Количество просмотров89K

Я — ведущий гейм дизайнер с опытом разработки крупных, хардкорных проектов в жанрах от MMORPG и CRPG до мобильной MOBA. Почти три года мы с лучшим другом продюсировали, дизайнили, разрабатывали и занимались живым оперированием своих серверов по игре ARK: Survival Evolved. За это время мы неплохо заработали (в среднем проект приносил $6000-12000 gross ежемесячно). Конечно же, мы столкнулись с тонной сложностей и челленджей, и выучили много уроков. В этой статье я хочу не только рассказать о нашем приключении, но и поделиться выученными уроками. Оперирование кастомных серверов огромных франшиз типа Roblox, Fortnite или Minecraft и других игр похожа на разработку игр в классическом понимании, но имеет под собой свою специфику. Этот опыт будет полезен не только моддерам, но и разработчикам и продюсерам игр. 

ARK: Survival Evolved — ММО экшен от 1 и 3-го лица с крафтом, строительством и динозаврами. На динозаврах в игре можно охотиться, можно приручать, ездить на них, разводить и воевать с другими племенами в игре, и это основная фишка, привлекающая игроков. Но настоящая основная особенность игры в том, что карты — собственно, ковчеги, объединены в кластеры, внутри которых игроки могут беспрепятственно путешествовать между карт, превращая мир игры в настоящее ММО — в отличие от большинства остальных подобных игр. Это гениальная игра, о которой невозможно рассказать в двух словах, и она доводит своих игроков до настоящей аддикции, и те проводят в ней тысячи и десятки тысяч часов.

Читать далее
Всего голосов 108: ↑102 и ↓6+114
Комментарии44

Корутины C++ для чайников: пишем асинхронный веб-клиент

Уровень сложностиСредний
Время на прочтение24 мин
Количество просмотров24K

Написать этот материал меня побудило... отсутствие хороших статей по корутинам в C++ в русскоязычном интернете, как бы странно это не звучало. Ну серьезно, C++20 существует уже несколько лет как, но до сих пор почти все статьи про корутины, что встречаются в рунете, относятся к одному из двух типов. Или обзор начинается с самых глубин и мелочей, пересказывая cppreference, а потом автор выдыхается и все сводится к "ну а дальше все понятно, возьмите и примените это в своем коде", что напоминает известную картинку с совой. Либо иногда в статьях рассматривается применение корутин на примере генераторов, и этим все и ограничивается. Но, давайте будем честны, генераторы — это замечательно, но за все время моей многолетней карьеры разработчика я, вероятно, делал что‑то подобное генераторам разве что разок, в то время как асинхронный ввод‑вывод приходится использовать почти в каждом проекте. И поэтому меня гораздо больше интересует реализация асинхронного ввода‑вывода с использованием корутин, а не генераторы. Поэтому пришлось разбираться во всем самому.

Читать далее
Всего голосов 55: ↑53 и ↓2+64
Комментарии34

Как быстро и эффективно выгореть на работе: опыт выжившего

Время на прочтение9 мин
Количество просмотров35K

Привет! Меня зовут Татьяна Белова и я автор нового DIY-медиа вАЙТИ от beeline cloud. Я руковожу управлением консультирования и обучения клиентов, и это та самая сфера «человек — человек», где сотрудники очень быстро выгорают. Однажды я боролась с профессиональным выгоранием: всё зашло очень далеко, и я чуть было не уволилась, но справилась.

Вы наверняка что-нибудь слышали о профессиональном выгорании или даже переживали его. По данным исследования hh, в сфере IT с выгоранием лично сталкивались 78% человек. Это очень высокий показатель. Выгорание ухудшает качество нашей жизни, делает работу неинтересной, а задачи, которые раньше приносили удовольствие и драйв, становятся в тягость. Есть и хорошая новость: с выгоранием можно бороться и даже сделать так, чтобы оно не наступило. Что для этого нужно — расскажу в этой статье.

Читать далее
Всего голосов 27: ↑20 и ↓7+18
Комментарии22

Максимально простая игра на C++ (в консоли)

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров15K

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

Читать далее
Всего голосов 10: ↑8 и ↓2+8
Комментарии26

Заблуждения джунов о том, кто такие сеньоры

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров34K

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

Вспоминаю время, когда я ещё плохо владел терминалом. У меня возникли какие-то проблемы с дистрибутивом Linux. Что-то не монтировалось правильно или появлялись ошибки разрешений для файлов, в которых я не мог разобраться самостоятельно, поэтому попросил помощи у одного из сеньор-разработчиков. Величественность и грация, с которой он обращался с Vim и его командами, вдохновляла, это запомнилось мне навсегда. А ещё я захотел стать таким же, как он: быстрым, эффективным, всезнающим гуру. Реальность оказалась гораздо более приземлённой, но и в каком-то смысле приносящей бóльшую отдачу.

Читать далее
Всего голосов 67: ↑62 и ↓5+69
Комментарии40

Я стал зарабатывать вдвое больше, когда начал писать техническую документацию

Время на прочтение8 мин
Количество просмотров26K

Речь идёт о функциональных спецификациях к сайтам, приложениям и прочим информационным системам.

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

Во-первых, сложно. Этому навыку никто не обучал, а написать 100 и более страниц текста по проекту — это как диссертацию накатать. Поэтому я говорил клиентам, что, мол, и так справитесь.

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

Продавать это было легко. Достаточно было рассказать о том, как я, заплатив несколько десятков тысяч за документ, экономил несколько сотен тысяч на разработке. И подкрепить рассказ конкретными цифрами и примерами. Чаще всего я рассказываю о том, как пожалел 50к на функциональную спецификацию на участок собственного проекта, и разработчики делали его два с половиной месяца вместо привычного одного. А месяц их работы обходился моей казне почти в 300к рублей. И если бы я не сэкономил на функциональной спецификации, то задача обошлась бы на 400к рублей дешевле.

Читать далее
Всего голосов 11: ↑8 и ↓3+8
Комментарии8

Корпоративный куколдизм

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров119K

Зачастую мне приходится слышать в подкастах или лицезреть в комментариях примерно такой диалог: "Я вашу айтишечку на балде вертел. Я сюда ради денег пришёл, которые в России ни в одной другой области не платят. Я вру на собесах об опыте, потому что работодатели точно так же врут соискателям об условиях работы, требования к джунам сениорские, а зарплата - нет"

Читать далее
Всего голосов 351: ↑262 и ↓89+229
Комментарии1150

Пора ли увольняться?

Время на прочтение6 мин
Количество просмотров60K
В большей своей массе люди пишут и инструктируют на тему «как найти работу?». А вот как уволиться, и, что важнее, когда увольняться – почти никто ничего не говорит. Оно и понятно, тема весьма деликатная и порой неприятная. Однако попробую сей пробел отчасти восполнить.

И, конечно, все что сказано ниже – есть исключительно личное и предельно субъективное мнение. Поэтому если вы встретите в тексте слова «следует», «должны», то читайте это как «автор бы сделал», а вот что делать вам – решать только вам.

Читать дальше →
Всего голосов 105: ↑102 и ↓3+99
Комментарии111

Почему эффективной сове не выгодно нанимать даже тушканчика (а увольнять, наоборот, выгодно)

Время на прочтение8 мин
Количество просмотров62K

Открываю с утра новости, а там – ни разу не было и вот опять:

Нехватку (высококвалифицированных низкооплачиваемых) специалистов выявили благодаря опросу Института экономической политики им. Гайдара (ИЭП), с результатами исследования ознакомился РБК.

Население при этом: ну да ну да.

Весной 2023 года только 2% сообщили, что в связи с СВО у них выросла зарплата, за последний год материальное положение в той или иной степени улучшилось у 15%, тогда как ухудшилось у 33%, поскольку увеличились текущие расходы (39%), а некоторые (7%) потеряли часть сбережений и/или доходов. Савин, Институт социологии РАН. «Вестник РУДН. Серия: Социология», №4, 2023

Читать далее
Всего голосов 190: ↑167 и ↓23+185
Комментарии138

Чистая архитектура на примере

Уровень сложностиПростой
Время на прочтение27 мин
Количество просмотров42K

Познакомил друга с понятием "Чистая архитектура" и он стал часто спрашивать меня как лучше сделать то или другое. Хотел дать ему к какому-нибудь туториал, но, к удивлению (плохому), не нашел подходящего.

Поэтому выкладываю небольшой обзор:

1.. Что такое чистая архитектура;
2.. Как можно реализовать;
3.. Мои мысли.

Читать далее
Всего голосов 13: ↑11 и ↓2+11
Комментарии23

Малоизвестные и интересные особенности C и C++

Уровень сложностиСредний
Время на прочтение43 мин
Количество просмотров47K

В C и C++ есть особенности, о которых вас вряд ли спросят на собеседовании (вернее, не спросили бы до этого момента). Почему не спросят? Потому что такие аспекты имеют мало практического значения в повседневной работе или попросту малоизвестны.

Целью статьи является не освещение какой-то конкретной особенности языка или подготовка к собеседованиям, и уж тем более нет цели рассказать все потайные смыслы языка, т. к. для этого не хватит одной статьи и даже книги. Напротив, статья нужна для того, чтобы показать малоизвестные и странные решения, принятые в языках C и C++. Своего рода солянка из фактов. Вопрос “что делать с этими знаниями?” я оставляю читателю.

Если вы, как и я, любите и интересуетесь C/C++, и эти языки являются неотъемлемой частью вашей жизни, в том числе и его углубленного изучения, то эта статья для вас. По большей части я надеюсь, что эта статья сможет развлечь и заставить поработать головой. И если получится, рассказать что-то, чего вы, возможно, еще не знали.

Читать далее
Всего голосов 127: ↑126 и ↓1+159
Комментарии61

Затыкаем рот Windows 10

Уровень сложностиСложный
Время на прочтение33 мин
Количество просмотров106K


Windows 10 очень любит Интернет. Обновления, синхронизации, телеметрия и ещё куча разной другой очень нужной ЕЙ информации постоянно гуляет через наши сетевые соединения. В «стандартном» сценарии использования, когда Windows 10 управляет домашним или рабочим компьютером, это, в общем-то, терпимо, хотя и не очень приятно.

Однако жизнь сложная штука и не ограничивается только стандартными вариантами. Существуют ситуации, когда подобная сетевая активность операционной системы (ОС) нежелательна и даже вредна. За примерами далеко ходить не надо. Попробуйте подключить к Интернету давно не используемый резервный компьютер, собранный на старом железе. Пока софт на нём не обновится, использовать его будет практически невозможно, всё будет дико тормозить и еле шевелиться. А если вам в этот момент нужно срочно что-то сделать?

Для того чтобы подобного не происходило, необходимо «заткнуть рот Windows», то есть сделать так, чтобы она самостоятельно перестала «стучаться» в Интернет, устанавливать обновления и заниматься прочими непотребствами. Вот именно этим мы с вами и займёмся.
Читать дальше →
Всего голосов 170: ↑160 и ↓10+196
Комментарии311

Удаленка. Утопия или возможность?

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров17K

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

Делюсь своими лайфхаками, наработанными 10 годами опыта.

Читать далее
Всего голосов 23: ↑11 и ↓12+3
Комментарии89

Пишем простую* игровую физику самолёта

Время на прочтение9 мин
Количество просмотров29K
* — в трёх измерениях.


Предупреждение: дальнейшие рассуждения вполне могут быть ошибочными, мой опыт ограничивается игрой в авиасимуляторы и курсом теоретической механики. Знания в аэродинамике и игровых физических движках весьма скудные. Картинка для привлечения внимания — фотография, а не скриншот.

«Что может быть проще самолёта? Подъёмная сила пропорциональна квадрату скорости, двигатель тянет вперёд, всё просто» — такая мысль пришла в мою голову летом, и я сел писать игру. Лето прошло, было собрано несколько граблей, а списочек того, что я планировал добавить в проект, очень сильно вырос.

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

Читать дальше →
Всего голосов 24: ↑21 и ↓3+18
Комментарии15

Dictionary и SortedDictionary

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров8.7K

Всем привет. Сегодня я планирую рассказать в общих чертах о Dictionary и SortedDictionary в .NET - как они устроены и в чем различие между ними.

Читать далее
Всего голосов 15: ↑11 и ↓4+9
Комментарии15

Быстрый парсинг 8-битных целых чисел

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров11K

Допустим, вам нужно быстро распарсить 8-битные целые числа (0, 1, 2, …, 254, 255) из строки ASCII/UTF-8. Задача взята из проекта simdzone под руководством Йероена Коеккоека (NLnet Labs). Дана строка и её длина: например, ’22’ и длина 2. Наивное решение на C может выглядеть так:

Читать далее
Всего голосов 31: ↑31 и ↓0+31
Комментарии21

Информация

В рейтинге
3 027-й
Зарегистрирован
Активность