Как стать автором
Обновить
35
0
Дзеранов Иосиф @JosefDzeranov

Net Developer

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

Стажёр Вася и его истории об идемпотентности API

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

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


Меня зовут Денис Исаев, и я руковожу одной из бэкенд групп в Яндекс.Такси. Сегодня я поделюсь с читателями Хабра описанием проблем, которые могут возникнуть, если не учитывать идемпотентность распределенных систем в своем проекте. Для этого я выбрал формат вымышленных историй о стажёре Васе, который только-только учится работать с API. Так будет нагляднее и полезнее. Поехали.


image

Читать дальше →
Всего голосов 219: ↑216 и ↓3 +213
Комментарии 163

Заметка об организации скрытого доната условно бесплатных игр

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

Заметка посвящена описанию возможного механизма отбора наиболее перспективных с точки зрения склонности к оплате внутриигровых услуг пользователей и его критике. Цель: рассмотреть функционирование, положительные и отрицательные стороны упомянутого механизма. Область применения: разработка игр, монетизация, работа с интересами и пользователями. Требуемый уровень: базовое понимание компьютерных и мобильных игр с точки зрения пользователя.

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

Читать далее
Всего голосов 7: ↑6 и ↓1 +5
Комментарии 15

Я принес вам решение проблемы с исключениями в C#. Но вам не понравится

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


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

У меня есть приличный опыт работы с другими языками программирования, и стандартный подход по работе с ошибками в C# мне не нравится. Но языки и платформы устроены так, что ты решаешь проблемы не как считаешь нужным, а так, как принято.

Эти размышления меня измучили, и я систематизировал свои знания и идеи по обработке исключительных случаев.
Читать дальше →
Всего голосов 97: ↑74 и ↓23 +51
Комментарии 478

UML для разработчиков

Время на прочтение 5 мин
Количество просмотров 71K
Интернет полон статей про UML, вы найдете сотни примеров для каждого вида диаграмм, и без проблем создадите свои, нотация не сложная. Но так ли уж необходимо тратить на это время? Наш богатый опыт говорит «Да». Если у вас в команде более 2 человек и проект от 3 месяцев, то уже имеет смысл отрисовать 2-3 вида диаграмм. В одной нашей команде более 30 человек, проект длительностью более 3 лет, и мы используем...2-3 вида диаграмм.

Нотация UML избыточна. С другой стороны она недостаточна для проектирования распределенных систем, и здесь нам помогает Archimate. В этой статье мы расскажем, что действительно полезно из всего этого многообразия, и рассмотрим на примере полный цикл создания диаграмм для проекта.
Читать дальше →
Всего голосов 22: ↑21 и ↓1 +20
Комментарии 76

Связь между C# и C#: REST, gRPC и все, что между

Время на прочтение 10 мин
Количество просмотров 32K
Существует много способов связи между клиентом C# и сервером C#. Некоторые из них надежные, другие нет. Некоторые очень быстрые, другие нет. Важно знать различные варианты, чтобы вы могли решить, что лучше для вас. В этой статье будут рассмотрены самые популярные на сегодняшний день технологии и почему они так широко используются. Мы поговорим о REST, gRPC и всем, что между ними.
Читать дальше →
Всего голосов 15: ↑14 и ↓1 +13
Комментарии 11

Делегаты и события в C#

Время на прочтение 8 мин
Количество просмотров 71K
Перевод статьи подготовлен специально для студентов курса «Разработчик С#».




Что такое события в C#?


Событие может быть использовано для предоставления уведомлений. Вы можете подписаться на событие, если вам нужны эти уведомления. Вы также можете создавать свои собственные события, которые будут уведомлять вас о том, что случилось что-то, что вас интересует. .NET Framework предлагает встроенные типы, которые можно использовать для создания событий. Используя делегаты, лямбда-выражения и анонимные методы, вы можете создавать и использовать события удобным способом.
Читать дальше →
Всего голосов 29: ↑25 и ↓4 +21
Комментарии 9

Зачем ходить на собеседования

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

Недавно общался со своим знакомым. Парнишка учится Android разработке и обладает довольно крепким багажом знаний. Я ему задал вопрос: «Почему ты до сих пор не ходишь на собеседования? Ты бы уже давно нашел работу.» И получил ответ что-то типа собеседования это стресс, что чувствует себя там неловко. И меня это прям аж заставило задуматься о том сколько людей уже давно могли получить бы желаемое, а не получают из-за банального страха.

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

Так вот к чему я это все? Не к тому, чтобы похвастаться какой я классный, а к тому, что на собесы ходить просто необходимо. Здесь я поделюсь своими соображениями почему.
Читать дальше →
Всего голосов 43: ↑35 и ↓8 +27
Комментарии 80

TCP против UDP или будущее сетевых протоколов

Время на прочтение 27 мин
Количество просмотров 169K
Перед каждым сервисом, генерирующим хотя бы 1 Мбит/сек трафика в интернете возникает вопрос: «Как? по TCP или по UDP?» В прикладных областях, в том числе и платформах доставки уже сложились предпочтения и традиции принятия подобных решений.

По идее, если бы, к примеру, однажды один ленивый разработчик не попробовал развернуть свой ML на Python (потому что только его и знал), мир скорее всего никогда не проникся бы такой любовью к презренному «супер-джава-кодерами» языку. А сегодня слабости этого языка в прошлом контексте применения безоговорочно обеспечивают ему первенство в развертывании и запуске многочисленных майнерских А/Б.

Сравнивать можно многое: ARM с Intel, iOS и Android, а Mortal Kombat с Injustice. И нарваться на космический холивар, поэтому вернемся к теме доставки огромных объемов разноформатного контента.

Десять лет назад все были абсолютно уверены, UDP — это что-то про негарантированную доставку. Если нужен надежный протокол — это TCP. И вопреки традициям в этой статье мы будем сравнивать такие, кажущиеся несравнимыми вещи, как TCP и UDP.


Осторожно, под катом 99 иллюстраций и схем и все важные.
Всего голосов 162: ↑159 и ↓3 +156
Комментарии 75

Программная архитектура и проектирование систем: общая картина и путеводитель по ресурсам

Время на прочтение 9 мин
Количество просмотров 11K
Здравствуйте, коллеги.

Сегодня на ваш суд предлагается перевод статьи Тугберка Угурлу (Tugberk Ugurlu), который взялся в сравнительно небольшом объеме изложить принципы проектирования современных софтверных систем. Вот что автор сообщает о себе в сухом остатке:


Поскольку решительно невозможно охватить в хабростатье такую колоссальную тему, как архитектурные паттерны + паттерны проектирования по состоянию на 2019 год, рекомендуем не только сам текст господина Уруглу, но и многочисленные ссылки, которые он в нем любезно расставил. Если вам понравится — опубликуем и более узкоспециальный текст о проектировании распределенных систем.


Читать дальше →
Всего голосов 11: ↑10 и ↓1 +9
Комментарии 6

Справочник начинающего подкастера

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

Эта статья — краткое руководство для тех, кто хочет запустить свой собственный подкаст. Когда я вместе с моим нынешним соведущим год назад запускал подкаст “В бесконечность и далее”, я не смог найти ни одной по-настоящему всеобъемлющей статьи. Поэтому я решил попытаться заполнить этот пробел и написать руководство для себя из прошлого.


Немного о структуре — это руководство содержит 4 статьи:


  1. Общая философия
    1.1. Зачем делать подкаст?
    1.2. Целевая аудитория
    1.3. Выбор жанра
    1.4. Формат
  2. Технический базис
    2.1. Что такое подкаст с технической точки зрения
    2.2. Аудио-формат
    2.3. Про динамики, наушники и ламповый звук
    2.4. Про тихое помещение
  3. Делаем покупки
    3.1. Покупаем микрофон
    3.2. Выбираем аудиоредактор
    3.3. Выбираем программу для записи звука
    3.4. Выбираем хостинг подкаста
    3.5. Сайт-визитка
  4. Записываем и выпускаем
    4.1. Запись выпуска
    4.2. Редактирование выпуска
    4.3. Про джинглы и звуковые схемы
    4.4. Про фоновый шум
    4.5. Про фильтры
    4.6. Про Show Notes, а также про то, зачем слушать свой подкаст
    4.7. Публикация подкаста
    4.8. Монетизация
    4.9. Темы, которые есть, но о которых мы не говорили

Каждый раздел статьи содержит три блока


  • Суть раздела — основная мысль, изложенная тезисно
  • Детальное описание “что, зачем и почему”. Обычно — много букв, которые поясняют основную мысль, и находятся они в скрытой секции “Дополнительная информация”
  • Ответ, который нашли мы

Интересно — читайте все. Нет времени — читайте первый и последний абзац.



1. Общая философия


1.1. Зачем делать подкаст?


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

Читать дальше →
Всего голосов 95: ↑91 и ↓4 +87
Комментарии 33

Данные по-прежнему важнее

Время на прочтение 6 мин
Количество просмотров 7.5K
Вот цитата из Линуса Торвальдса за 2006 год:

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

Что очень похоже на «правило представления» Эрика Реймонда от 2003 года:

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

Здесь просто резюме идей, подобных мысли Роба Пайка от 1989 года:

Доминируют данные. Если вы выбрали правильные структуры данных и всё хорошо организовали, то алгоритмы почти всегда будут самоочевидными. Структуры данных, а не алгоритмы, играют центральную роль в программировании.
Читать дальше →
Всего голосов 30: ↑28 и ↓2 +26
Комментарии 6

5 слайдов, которые игнорируют опытные презентующие

Время на прочтение 8 мин
Количество просмотров 9K
Громкий бренд или имя спикера с высокой должностью помогают заполнить конференц-залы. Люди тянутся к “звездам”, чтобы быть в тренде и узнать об их ошибках и победах. Только вот в конце выступлений участники ставят таким спикерам далеко не самые высокие оценки.
В студии создания презентаций и инфографики VisualMethod выяснили у предпринимателей и корпоративных сотрудников, что больше всего их разочаровало в докладах на конференциях. Оказалось, когда опытные спикеры игнорируют организационные слайды и переходят сразу к описанию процесса или кейса, теряется доверие. Некоторые опрошенные даже назвали такое поведение спикеров высокомерным (“не представился вообще”) и невнимательным (“в теме одно, а на словах другое”). Подробно рассказываем о том, о каких слайдах важно помнить.

image
Читать дальше →
Всего голосов 21: ↑16 и ↓5 +11
Комментарии 7

В офисе есть иллюзия контроля — на удаленке ее нет. Разговор с Девхаб

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

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

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

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

Девхаб получил среднюю оценку 4,56 и среднюю рекомендацию 93% от своих сотрудников на «Моём круге». Его ценят за современные технологии, которые используются в работе, за отличные отношения с коллегами и налаженную связь с топ-менеджментом.
Читать дальше →
Всего голосов 50: ↑48 и ↓2 +46
Комментарии 54

Чему я научился на своём горьком опыте (за 30 лет в разработке ПО)

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

Это циничная, клиническая коллекция того, чему я научился за 30 лет работы в разработке программного обеспечения. Повторюсь, некоторые вещи весьма циничны, а остальное — результат долгих наблюдений на разных местах работы.
Читать дальше →
Всего голосов 187: ↑178 и ↓9 +169
Комментарии 128

Как делать больше, будучи фрилансером, и не терять мотивацию

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

Не пряником единым: как дисциплинировать себя, работая из дома?




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

Но со временем все эти преимущества могут превратиться во вредные привычки, которые не лучшим образом будут отображаться на успешности удаленной работы. Причём эта «трясина» очень быстро и незаметно образовывается, что вы даже не сразу ее заметите. Разве что когда подсчитаете свой очередной месячный заработок и поймете, что он уменьшился.

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

Самодисциплина находится фактически во главе успеха на фрилансерском поприще. А вот, как ее поддерживать, читайте далее.
Читать дальше →
Всего голосов 25: ↑20 и ↓5 +15
Комментарии 23

Презентация как код, или Почему я больше не пользуюсь Powerpoint-ом

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

Кажется, мне довелось сделать десятки презентаций для коллег, заказчиков и публичных выступлений за мою карьеру в IT. Многие годы Powerpoint как средство изготовления слайдов оставался для меня естественным и надёжным выбором. Но в этом году ситуация качественно изменилась. С февраля по май мне довелось выступить на пяти конференциях, и слайды к докладам надо было готовить в сжатые сроки, но качественно. Встал вопрос о делегировании той части работы, что касается визуального дизайна слайдов, другим людям. Как-то раз я попытался работать с дизайнером, пересылая файлы .pptx по почте, но работа превратилась в хаос: никто не знал, какая версия слайдов «самая новая», а вёрстка «ехала» по причине различия версий Powerpoint и шрифтов на наших машинах. И я решил попробовать что-то новое. Попробовал, и с тех пор не думаю возвращаться к Powerpoint.

Читать дальше →
Всего голосов 129: ↑122 и ↓7 +115
Комментарии 115

N+7 полезных книг

Время на прочтение 6 мин
Количество просмотров 66K
Привет! Это очередной традиционый список книг, оказавшихся полезными за год. Сугубо субъективный, конечно. Но я серьёзно рассчитываю, что вы подскажете ещё классных штук почитать.



Думай медленно, решай быстро — Даниэль Канеман
Это самое волшебное, что случалось за последние годы в плане гиковой литературы. Эта штука последовательно открывает когнитивные искажения и учит настраивать мышление. При этом увлекательно. Вообще, подход к тому, что мышление — это набор техник, которые можно тренировать и оттачивать, он, наверное, правильнее подхода «это шаманство». Канеман в отличие от следующей в списке книги, показывающей особенности реверсивного мышления, не даёт новых техник — но показывает, где и какие ошибки мы совершаем при обычных процессах. Такой серьёзный дебаг мозга.
Читать дальше →
Всего голосов 73: ↑71 и ↓2 +69
Комментарии 80

DevOps в разработке: автоматизация написания кода веб-приложений

Время на прочтение 12 мин
Количество просмотров 12K
Доброго времени суток, уважаемые Хабражители!

Сегодня DevOps находится на волне успеха. Практически на любой конференции, посвященной автоматизации, можно услышать от спикера мол “мы внедрили DevOps и тут и там, применили это и то, вести проекты стало значительно проще и т. д. и т. п.”. И это похвально. Но, как правило, внедрение DevOps во многих компаниях заканчивается на этапе автоматизации IT Operations, и очень мало кто говорит о внедрении DevOps непосредственно в сам процесс разработки.

Мне бы хотелось исправить это маленькое недоразумение. DevOps в разработку может прийти через формализацию кодовой базы, например, при написании GUI для REST API.

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

Надеюсь данный материал будет вам интересен и полезен.

Ну что ж, начнем!
Читать дальше →
Всего голосов 22: ↑21 и ↓1 +20
Комментарии 25

Почему уходят разработчики: 8 причин

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


Есть такая фраза «Как бы хорошо вы ни воспитывали ребенка, ему все равно будет что сказать своему психоаналитику». То же самое можно сказать и про работу с сотрудниками. Как бы хорошо у вас ни было работать в компании, вашим сотрудникам будет что сказать о причинах ухода на собеседовании — это нормально. Но риски всегда можно минимизировать, а жизнь сотрудника в рамках компании — увеличить.

Мы решили проанализировать основные причины ухода разработчиков с предыдущих мест. Это не глубинные исследования, а кратковременный срез в моменте: просмотрели 175 заметок по итогам общения с разработчиками, которые процессятся на разных стадиях наших проектов, выбрали самые яркие высказывания и сгруппировали их по восьми темам.

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

Неналаженные рабочие процессы


Лидер нашей подборки. Встречается более чем в 60% причин при смене работы. Особенность в том, что это достаточно широкое понятие, которое включает в себя ошибки менеджмента, недостатки программного обеспечения, нехватку специалистов для реализации поставленных задач.
Читать дальше →
Всего голосов 77: ↑62 и ↓15 +47
Комментарии 88

Архитектура сервиса распределённых очередей сообщений в Яндекс.Облаке

Время на прочтение 13 мин
Количество просмотров 27K
Привет, меня зовут Василий Богонатов. Я один из тех, кто приложил руку и голову и вложил свою душу в сервис распределённых персистентных очередей сообщений Yandex Message Queue. Сервис вышел в общий доступ в конце мая, но внутри Яндекса он уже давно и активно используется в разных продуктах.

Сегодня я хочу рассказать читателям Хабра об очередях сообщений вообще и о Yandex Message Queue в частности. Сначала я хочу объяснить, что такое «распределённая персистентная очередь сообщений» и зачем она нужна. Показать её практическую ценность, механику работы с сообщениями, поговорить про API и удобство использования. Во второй половине материала мы посмотрим на техническую сторону: как в наших очередях используется Yandex Database (это надежный фундамент нашего сервиса), как выглядят наивный и улучшенный подход к построению архитектуры, какие проблемы вызывает распределённость и как их можно решить.


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

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность