Обновить
4
0

Пользователь

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

Legacy: поддерживать нельзя переписать

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

Легаси — реальность любого программиста. Объясняем, как софт становится легаси и почему это нормально, а также какие существуют плюсы при работе с легаси. Не всегда стоит относиться к легаси как к проклятию, стоит взглянуть на него как на естественный этап жизненного цикла программного обеспечения. Меня зовут Алексей Рузин, я уже 27 лет работаю и знаю, как работать с легаси.

«Легаси» — это слово, которым программисты пугают друг друга (и менеджеров). Оно означает устаревший софт, работать с которым обычно сложно и/или неприятно по причине небольшого «выхлопа» в пересчете на вкладываемые усилия. В целом, словом  «легаси» можно назвать любой «код», который сложно поддерживать. И чем сложнее, тем он более «легаси».

Сегодня расскажем, откуда оно берется, как удерживать его “в рамках” и чем оно может быть полезно для начинающих специалистов.

Читать далее

Десять основных упражнений для предотвращения болей в спине у программистов

Время на прочтение5 мин
Количество просмотров13K
Привет всем коллегам-программистам! Давайте углубимся в тему, которая имеет не меньшую важность, чем дебаггинг того дурацкого фрагмента кода, с которым вы столько воюете – тему вашего здоровья, а если конкретнее – предотвращения болей в спине. Речь не о затекающих время от времени мышцах, а о глубокой, настойчивой, ноющей боли, которая является последствием написания кода в режиме марафона. Под катом вы найдете десять упражнений, которые станут для вас палочкой-выручалочкой и сделают вашу спину такой же крепкой, как ваш код.
Читать дальше →

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

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

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

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

Читать далее

Итак, вы унаследовали старую кодовую базу на C++. Что дальше?

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

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

Теперь вы отвечаете за кодовую базу на C++. Она большая, сложная и своеобразная; достаточно слишком долго на неё посмотреть, как она начинает разваливаться разными интересными способами. Иными словами, это легаси.

Но баги всё равно как-то нужно устранять, а ещё добавлять новые фичи. То есть вам нельзя просто закрыть на неё глаза или что ещё лучше, взорвать её динамитом. Она важна для компании. По крайней мере, для тех, кто платит вам зарплату. А значит, важна для вас.

И что делать теперь?

Не волнуйтесь, у меня такое случалось очень много раз и в разных компаниях (кто-то язвительный может спросить: а разве кодовые базы на C++ бывают какими-то другими?), выход есть, он не особо сложен и поможет вам действительно устранять баги, добавлять фичи, а то и когда-нибудь переписать её.

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

Цикл статей от технолога по запуску печатных плат в производство: от выбора материалов до поиска ошибок проектирования

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

Нормы проектирования печатных плат зафиксированы в ряде многостраничных спецификаций, которыми пользуются специалисты. При этом есть нюансы, о которых можно узнать лишь на практике. Проводником в непростой мир изготовления печатных плат для вас станет Александр Патутинский, технолог по подготовке и запуску печатных плат в производство и специалист по DFM- и DFA-анализам. 

Цикл из трех статей погрузит вас в тему — от выбора материалов для производства плат до особенностей, которые стоит учесть в конструкторской документации, чтобы защититься от проблем на этапе автоматизированного монтажа компонентов на плате. Вы также познакомитесь с подходами Design for Manufacturing (DFM) и Design for Assembly (DFA), которые Александр постарался доступно объяснить. 

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

Читать далее

Обратный маятник простым PID-регулятором

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

Как-то давно для выставки делал небольшую инсталляцию. Привёрнутый маятник. Вот где пришлось настраивать ПИД-регуляторы. Маятник удерживается в верхнем положении двумя ПИД регуляторами, соединенными каскадом. Первый быстрый (настоящий ПИД, т.к. пришлось настраивать дифференциальную составляющую) реагирует на угол отклонения маятника от вертикали и подыгрывает положением точки подвеса. Но, поскольку ход точки подвеса ограничен, то второй медленный ПИ-регулятор стремит точку подвеса к центру рельсов. Выход ПИ – регулятора является уставкой угла для первого быстрого ПИД. Действительно, стандартных функциональных блоков - ПИД регуляторов часто бывает вполне достаточно для стабилизации даже очень неустойчивых систем. Но, например, в этом проекте есть больше математики: "Все, что вы хотели знать об обратном маятнике"

Читать далее

Согласование волнового сопротивления на СВЧ

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

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

Попробуем разобраться...

Мифический человеко-DevOps

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

Привет! Меня зовут Эмин, я тех-лид платформенных команд в Профи. В этой статье поделюсь мнением о том, что такое хороший DevOps и какими качествами должен обладать DevOps-инженер. 

Читать далее

О Важном в управлении проектами

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

Всем привет! Меня зовут Андрей Софронов и я тимлид продукта “ЭДО и S2P”.

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

Читать далее

Упражнения для глаз

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

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

Эти упражнения позволяют сохранять качественное зрение в любом возрасте.

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

Упражнения описывал сам, но кто хочет, может обратится к первоисточнику, ссылка на книгу внизу. Часть упражнений не описал, либо сам не делал, либо решил, что всё равно не будете делать:)

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

Читать далее

ХМУС система. Твой друг в найме и постановке задач

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

В рамках статьи вы узнаете про Систему ХМУС, или Хочет, Может, Управляем, Совместим.

Что делать, если сотрудник Хочет и может, но не управляем?

Какие вопросы нанимателю стоит задать на собеседовании, чтобы определить наличие или отсутствие этих критериев у соискателя?

И другие интересности...

Хочу узнать получше

Тиннитус (шум в ушах) для айтишников, геймеров, и не только

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

ВНИМАНИЕ! Если у вас нет шума в ушах (тиннитуса) и/или нейросенсорной тугоухости, но есть особенности психики в части психосоматики или подобного – покиньте данный пост не читая.

Самые важные победы в мире – победы над собой

Всем привет. Меня зовут Паша Герасимов, мне 38, я – инженер в ИТ, геймер, и у меня диагноз НСТ (нейросенсорная тугоухость), а также субъективный шум в ухе (тиннитус) и гидропс правого лабиринта. По ощущениям, это комбо – шум/гул/свист в ухе, снижение слуха, чувство заложенности за перепонкой, и гиперакузия (повышенная чувствительность к некоторым звукам). Для тех, кто не в теме – представьте, что у вас ухо заложено ваткой, а внутри уха – звук неработающего канала ТВ (как видео пример, или mp3). И так – регулярно, месяцами, без возможности исправления.  

До 37 лет я практически не болел и не ходил по поликлиникам, это повлияло на всю историю с тиннитусом, поэтому для многих очевидные вещи, я понял на своей шкуре. 

Читать далее

Когда private, но очень хочется public

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

В 2016 году меня пригласили помочь с разработкой экшн-очков "ORBI", это такие водонепроницаемые очки с несколькими камерами, которые могут стримить 360видео сразу на смартфон, ну а если с ними поплавать, тоже ничего сломаться не должно. (https://www.indiegogo.com/projects/orbi-prime-the-first-360-video-recording-eyewear#/). Собственно моей задачей было написать алгоритм склейки видео потока с четырех камер в одно большое 360* видео, на тот момент задача не очень сложная, но требующая немного специфичных знаний opencv и окружения. Но статья не об этом, потому что теперь это все оберегаемое IP, а про то как мы легальными и не очень средствами языка С++ писали тестовое окружение для используемых классов и соответственно алгоритмов. Да вы скажете, что там такого - сделал гетеры да тестируй себе на здоровье. А если гетера нет или переменная класса спрятана в private секцию и возможность изменить хедер отсутствует. Или вендор либы забыл положить хедеры, и прислал только скан исходников (китайские друзья они такие), а тестировать это надо? Помножив желание написать тесты на утренний кофф и приплюсовав дикий энтузиазм, можно получить очень много ошибок компиляции интересного опыта. Как говорил один мой знакомый лид: "Нет такого кода, который мы не сможем порефакторить, особенно за утренним кофф".

private not public?

Проектируем узлы печатной платы с учетом особенностей монтажа при массовом производстве. Подход DFA

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

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

Подход, на который мы будем опираться, называется DFA — Design for Assembly (проектирование для сборки). Набор методов DFA гарантирует возможность сборки компонентов на плате, когда она поступит на монтажный участок, и позволяет отправлять плату в тираж без страха потерять деньги и время.

Читать далее

5 книг, которые стоит прочесть С++-разработчику

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

Современным разработчикам, чтобы совершенствовать профессиональные навыки, требуется постоянно заниматься самообразованием. Как говорила Алиса из небезызвестной книги Льюиса Кэрролла: «Нужно бежать со всех ног, чтобы только оставаться на месте, а чтобы куда-то попасть, надо бежать как минимум вдвое быстрее». И это действительно так — останавливаться не стоит.

Один из самых распространённых инструментов самообразования — книги. Сегодня поговорим о полезных для разработчиков С++ изданиях, часть которых — просто must have. Всего в подборке пять вариантов, некоторые из них, вероятно, покажутся читателям необычным выбором. Но все они полезны для программистов. Если у вас есть собственные предпочтения, которые в подборку не попали, пишите о них в комментариях, с удовольствием ознакомимся.

Читать далее

VS Code, python, контейнеры — как обуздать эту триаду и разрабатывать внутри контейнера

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

Как пользоваться VS Code в полную силу


image


Это небольшой туториал о настройке VS Code для работы с python. Здесь вы не увидите каких-то божественных откровений — тут будет просто мой опыт о том, как сделать свою работу/хобби немного комфортнее и почему я пришел именно к такой конфигурации.

Читать дальше →

«Быть руководителем — скучно»: 0b100 ошибок, породивших популярный IT-миф

Время на прочтение9 мин
Количество просмотров6.3K
Привет, меня зовут Вадим Карасев, я — руководитель группы разработки в команде KasperskyOS. Мои коллеги по «Лаборатории Касперского» недавно провели митап про карьерные ловушки тимлидов. Там в очередной раз подняли, на мой взгляд, достаточно острую проблему. Многие разработчики не хотят быть руководителями, потому что считают, что кодить будешь меньше, работа будет наполнена скучными управленческими обязанностями и все в таком духе. В итоге многие из тех, кто мог бы быть хорошим руководителем, не решаются даже попробовать.

image

На своем примере могу сказать, что это не так. Идти в руководство — логичный и захватывающий шаг.

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

Настраиваем удобную сборку проектов в Visual Studio

Время на прочтение43 мин
Количество просмотров91K
Эта статья является руководством по настройке сборки C++ проектов Visual Studio. Частично она сводилась из материалов разрозненных статей на эту тему, частично является результатом реверс-инжениринга стандартных конфигурационных файлов Студии. Я написал ее в основном потому что полезность документации от самой Microsoft на эту тему стремится к нулю и мне хотелось иметь под рукой удобный референс к которому в дальнейшем можно будет обращаться и отсылать других разработчиков. Visual Studio имеет удобные и широкие возможности для настройки по-настоящему удобной работы со сложными проектами и мне досадно видеть что из-за отвратительной документации эти возможности очень редко сейчас используются.

В качестве примера попробуем сделать так чтобы в Студию можно было добавлять flatbuffer schema, а Студия автоматически вызывала flatc в тех случаях когда это нужно (и не вызывала — когда изменений не было) и позволяла задавать настройки напрямую через File Properties



Укрощаем MSBuild

Feature freeze С++23. Итоги летней встречи комитета

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

На недавней встрече комитет C++ «прорвало», и в черновую версию C++23 добавили:

  • std::mdspan
  • std::flat_map
  • std::flat_set
  • freestanding
  • std::print("Hello {}", "world")
  • форматированный вывод ranges
  • constexpr для bitset, to_chars/from_chars
  • std::string::substr() &&
  • import std;
  • std::start_lifetime_as
  • static operator()
  • [[assume(x > 0)]];
  • 16- и 128-битные float
  • std::generator
  • и очень много другого
Подробности

Мой уход из Яндекса, как не потерять мотивацию за полгода подготовки в FAANG и реджект в Google

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

Мой уход из Яндекса, как не потерять мотивацию за полгода подготовки в FAANG и реджект в Google.

Читать далее

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность