Search
Write a publication
Pull to refresh
3
0
Луговой Дмитрий Владимирович @dimalu85

User

Send message

Практическое руководство по анализу производительности приложений

Reading time17 min
Views13K
Вы уже наверняка знаете, что спустя несколько месяцев после конференций мы выкладываем видеозаписи всех докладов. А для самых лучших, как в случае с кейноутом Саши goldshtn Гольдштейна, мы готовим еще и расшифровки — чтобы приобщиться могли и те, кто не любит видеоформат.

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



В основе статьи — выступление Саши на конференции DotNext 2017 Piter. Саша работает техническим директором израильской тренинговой и консалтинговой компании Sela и не понаслышке знает, как проводить анализ производительности. Как его лучше начинать, чем завершать, какие инструменты стоит использовать, а каких избегать, читайте под катом.

Как вести переговоры с террористами… партнерами, детьми и вообще с кем угодно

Reading time11 min
Views94K

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

Читать далее

7 ложных предположений о том, как устроены строки

Reading time10 min
Views25K

Как Unicode уничтожает большинство ваших предположений о том, как на самом деле работают строки



Когда речь идет о написании чего-то простого, мы, программисты, обычно действуем интуитивно. В случае с простыми вещами мы полагаемся на четкий набор предположений вместо конкретных знаний о том, как эти вещи работают. Например, мы предполагаем, что если b = a + 1, то b больше a, или что если мы применим функцию malloc для какого-то буфера, то получим необходимое количество памяти для записи. Мы не заглядываем в документацию всякий раз, когда имеем дело с мелочами.


Мы делаем так, потому что тотальная проверка замедлит работу. Однако если бы мы все-таки провели проверку, мы бы обнаружили, что обычно ошибаемся в своих предположениях. Существует арифметическое переполнение, в результате которого a + 1 может быть значительно меньше, чем a. Иногда malloc дает нам null вместо буфера и мы оказываемся в пролете.


Нам обычно приходится обжечься на таких вещах, чтобы хотя бы немного изменить свои предположения. И даже тогда мы обычно исправляем их весьма условно.
Столкнувшись с досадной ошибкой переполнения, мы можем скорректировать свое предположение о целых числах в виде «a + 1 больше a, если отсутствует вероятность, при которой a представляет собой очень большое число». И мы действуем исходя из этого, вместо того, чтобы обдумать четкие правила, по которым работает переполнение.


Уточненные предположения – это опыт. Чаще всего они позволяют нам работать быстрее и правильнее. Однако мы можем вообще переместить некоторые вещи, например, правильную обработку malloc, из нашей внутренней категории «простые вещи» во внутреннюю категорию «сложные вещи». И тогда мы действительно можем пойти и уточнить, как они работают.

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

Техники обработки отказов сервиса в микросервисных архитектурах, или Альтернативы Circuit Breaker

Reading time11 min
Views10K

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

Читать далее

Знай сложности алгоритмов

Reading time2 min
Views1.1M
Эта статья рассказывает о времени выполнения и о расходе памяти большинства алгоритмов используемых в информатике. В прошлом, когда я готовился к прохождению собеседования я потратил много времени исследуя интернет для поиска информации о лучшем, среднем и худшем случае работы алгоритмов поиска и сортировки, чтобы заданный вопрос на собеседовании не поставил меня в тупик. За последние несколько лет я проходил интервью в нескольких стартапах из Силиконовой долины, а также в некоторых крупных компаниях таких как Yahoo, eBay, LinkedIn и Google и каждый раз, когда я готовился к интервью, я подумал: «Почему никто не создал хорошую шпаргалку по асимптотической сложности алгоритмов? ». Чтобы сохранить ваше время я создал такую шпаргалку. Наслаждайтесь!
Читать дальше →

Как переехать в США через EPAM и получить грин карту

Reading time5 min
Views67K

Статья о том как получить гринку через EPAM и похожий аутсорс. Сколько времени это займёт? Какие расходы оплачивает EPAM при переезде? Что такое L1 виза и как её получить? Что такое Green Card through employment.

Читать далее

Развеиваем мифы об управлении памятью в JVM

Reading time9 min
Views23K

В серии статей я хочу опровергнуть заблуждения, связанные с управлением памятью, и глубже рассмотреть её устройство в некоторых современных языках программирования — Java, Kotlin, Scala, Groovy и Clojure. Надеюсь, эта статья поможет вам разобраться, что происходит под капотом этих языков. Сначала мы рассмотрим управление памятью в виртуальной машине Java (JVM), которая используется в Java, Kotlin, Scala, Clojure, Groovy и других языках. В первой статье я рассказал и разнице между стеком и кучей, что полезно для понимания этой статьи.
Читать дальше →

Заповеди тимлида Авито

Reading time6 min
Views24K

Мы уже публиковали свои внутренние документы с ожиданиями от инженеров и менеджеров продукта в плейбуке на Гитхабе. Пришло время поделиться ещё одним — кодексом тимлида.


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

Пишите зарплаты, траты и чего вы хотите. Или не пишите ничего

Reading time4 min
Views29K

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

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

Новые вопросы о деревьях

Reading time15 min
Views13K
Несколько недель назад, после прогулки по лесам, я написал статью загадке разнообразия лесных деревьев. На своём пути я нашёл с десяток видов, имеющих общую среду обитания и, очевидно, конкурирующих за одинаковые ресурсы — в основном, за доступ к солнечному свету. Экологический принцип гласит, что один вид должен выиграть в этой конкуренции и вытеснить все остальные, но деревья, похоже, не читали учебников по экологии.

В своём эссе я также упомянул ещё три беспокоивших меня вопроса о деревьях. В статье-продолжении я хочу чуть глубже изучить эти три вопроса.
Вопрос 1: Почему листья деревьев имеют такую разнообразную форму?

Сверху: белый дуб (Quercus alba), красный дуб (Quercus rubra), горный дуб (Quercus palustris), сахарный клён (Acer saccharum). Внизу: кария овальная (Carya ovata), берёза вишнёвая (Betula lenta). Все образцы были собраны вдоль тропы Роберта Фроста в Амхерсте, штат Массачусетс, с деревьев, находящихся на расстоянии не более ста метров друг от друга.
Читать дальше →

Используем Chrome DevTools профессионально

Reading time5 min
Views78K
И снова здравствуйте. В преддверии старта курса «JavaScript Developer. Professional» перевели

11 советов для тех, кто использует Chrome в качестве среды разработки.





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



Иногда вы открываете консоль, чтобы посмотреть вывод своей программы, или вкладку Elements, чтобы проверить CSS-стили элементов DOM.



А действительно ли вы разбираетесь в Chrome DevTools? На самом деле у инструментов разработчика множество мощных функций, которые облегчают жизнь, но о них мало кто знает.
Я расскажу о самых полезных из них.
Читать дальше →

Как мы отменяли ретроспективы

Reading time5 min
Views11K
Однажды для нашей команды перестали работать ретроспективы.

На ретро мы обсуждали вечные темы: надо лучше декомпозировать задачи, надо лучше оценивать задачи, надо перестать таскать долги между спринтами и т.д. Кто-то параллельно кодил, кто-то отвечал на сообщения, кто-то просто залипал в телефон. Звучит знакомо?

Это были мои первые спринты в роли скрам-мастера, и я чувствовал, у команды нет доверия к ретроспективам. Да и потребности тоже нет — есть жалобы на «скрам-день», забитый митингами. А работать-то когда?

Я решился на страшное для скрам-мастера: предложил команде отменить ретроспективы — и вот что из этого вышло.


Я, пытаюсь провести скучную ретроспективу
Читать дальше →

Медленный код — вообще не проблема, если ты знаешь как его ускорить. Главное красиво

Reading time5 min
Views39K


Я много раз слышал, как программисты смеются над тиммейтами, которые написали медленный код. Резкие, самодовольные фразы в стиле "этот болван четыре раза пробежался по коллекции, хотя можно было один", и тому подобное. Когда слышишь такое, сразу думаешь — ну тут все по делу, зачем делать лишние итерации? Почему нельзя изучить пару элементарных вещей, вроде принципов работы LINQ выражений в C#, и писать нормальный код? Ты смеешься над некомпетентными тупицами до тех пор, пока смеяться не начнут над тобой. И можете мне поверить — никакие знания в программировании не спасут вас от ситуации, когда вы по незнанию зафигачили квадратичный алгоритм вместо линейного.

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

Lamptest.ru: 5 лет, 3500 ламп, новые возможности

Reading time3 min
Views11K
Пять лет назад стартовал проект Lamptest.ru. За это время я протестировал более 3500 моделей ламп и светильников. Недавно на Lamptest были добавлены новые параметры ламп и ещё кое-что.


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

Генеральный конструктор vs Скрам-мастер

Reading time5 min
Views41K
image

«Каспийский монстр» — советский экраноплан, который весил 544 тонны, что делало его самым тяжелым летательным аппаратом в мире. Сделан с нуля за два года. Думай об этом, закачивая лэндинг по продаже трусов «всего» за полгода.

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

Что делать, если в вашей команде появился «эффективный» менеджер?

Reading time12 min
Views186K

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


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


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

Собеседуем кандидата на должность Senior Software Developer

Reading time7 min
Views54K
Я провел не одну сотню собеседований как с одной стороны, так и с другой. В этой статье я хотел бы поделиться своими опытом, наблюдениями и интересными моментами. Возможно, кого-то это убережет от ошибок, неверных выводов и потерянного времени.
Читать дальше →

Об оценках сроков в разработке ПО

Reading time8 min
Views44K
В течение всей истории разработки ПО мы искали надежные способы оценки времени на реализацию задач и проектов. Но и спустя более чем 60 лет существования отрасли наши прогнозы все еще оставляют желать лучшего. Может быть, дело не в том, как именно мы пытаемся оценивать, а в том, что мы вообще опираемся на оценки?

К примеру, возьмите методологию Scrum, по которой сегодня работают многие компании. Центральная идея Scrum — брать в спринт не больше задач, чем ваша команда способна за это время выполнить. На первый взгляд, звучит разумно. К сожалению, слишком часто на практике этот подход приводит к замедлению работы команды в обмен на иллюзию планирования. Позвольте объяснить, почему.
Читать дальше →

«А про посадку читайте в следующем номере…» — так вот он, этот номер

Reading time20 min
Views51K


Заход на посадку и уход на второй круг — по статистике самые опасные этапы полёта.

Давайте разбираться, как это работает, и пользуясь моментом, посмотрим как устроена электронная система управления современным самолётом.

Но перед тем, как мы начнем, я вынужден обозначить эдакий дисклеймер: я действующий пилот Airbus семейства 320, который является самолетом 4-го поколения (отличительный признак которого — наличие технологии Fly-by-Wire). Соответственно, многие специфические системы и процедуры, описываемые в посте, будут привязаны к данному типу. На других типах (например Boeing 737 Classic/NG/MAX, которые являются самолетами предыдущего, 3-го поколения без технологии Fly-by-Wire) процедуры и логика построения и работы систем может значительно различаться. И да, я не имею отношения к инженерно-авиационной службе и службе ОрВД (организации воздушного движения), поэтому уж простите возможные огрехи в описании матчасти.

Итак, приступим.

Выбираем канал для точки доступа Wi-Fi. Исчерпывающее руководство

Reading time9 min
Views331K
2,4 ГГц — это плохо. 5 ГГц — это хорошо. 6 ГГц — это ещё лучше, но послезавтра. Все это знают, кого я тут учу, в самом деле. Всё это хорошо, только делать-то что, когда ты такой, как умный, открываешь какой-нибудь Wi-Fi Explorer, а там сатанизм и этажерки, как на скриншоте?



Шаг первый — поплакать. Шаг второй — нырнуть под кат. Вопрос простой, а ответ — нет.
Когда это нас останавливало?

Information

Rating
Does not participate
Location
Витебск, Витебская обл., Беларусь
Date of birth
Registered
Activity