Search
Write a publication
Pull to refresh
3
0.2
Send message

7 правил хорошего тона при написании Unit-тестов

Reading time4 min
Views38K

“Хорошими манерами обладает тот,
кто наименьшее количество людей
ставит в неловкое положение.”
Дж. Свифт


Привет, коллеги! Сегодня я бы хотел поговорить о Unit-тестировании и некоторых “правилах” при их написании. Конечно, они неформальные и не обязательны к выполнению, но при их соблюдении всем будет приятно и легко читать и поддерживать тесты, которые вы написали. Мы в Wrike видели достаточно Unit-тестов, чтобы понять основные проблемы, которые возникают при их написании и поддержке, и сформулировать несколько правил для их предотвращения.

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

Модель Акторов и C++: что, зачем и как?

Reading time20 min
Views41K

Данная статья является доработанной текстовой версией одноименного доклада с конференции C++ CoreHard Autumn 2016, которая проходила в Минске в октябре прошлого года. Желание сделать эту статью возникло под впечатлением о том, что в мире C++ разработчики как бы делятся на два больших и не пересекающихся лагеря. В первом лагере находятся матерые спецы, которые все видели, все знают и все умеют, за плечами у которых десятки собственноручно написанных реализаций Модели Акторов, внутрях у которых хитрые, конечно же самостоятельно сделанные, lock-free очереди и state-of-the-art механизмы обслуживания сообщений. Такие проффи сами часами могут рассказывать про тонкости многопоточного программирования (только почему-то редко это делают). Во втором лагере — зеленые новички, которых волею судьбы занесло в мир C++, которые пока слабо представляют себе различия между unique_ptr и shared_ptr, про шаблоны только слышали, а в области многопоточности имеют поверхностное впечатление только о std::thread, std::mutex и, может быть, std::condition_variable. Для людей из первого лагеря я вряд ли что-нибудь интересное расскажу, а вот разработчикам из второго лагеря попробую вкратце рассказать о том, что Модель Акторов в C++ — это нормально. И что есть ряд готовых инструментов, на примере которых можно увидеть, что же это такое.

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

Система под контролем: как автоматизировать интеграционные тесты

Reading time15 min
Views11K

Привет! Меня зовут Ксения Якиль. Я пишу core-сервисы на C и Go в бэкенд-отделе Badoo и Bumble. Наш бэкенд — это высоконагруженная распределённая система, обслуживающая пользователей по всему миру. Она оперирует большими массивами данных и делает всю ту магию, благодаря которой люди находят друг друга. 

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

Читать далее

Топ IT-книг прошлого века, которые актуальны до сих пор

Reading time14 min
Views83K
«Физические законы — это не Python, их не изменить в новых версиях, то есть материал в книге (по электронике) будет актуален всегда».
ne555, из комментариев на Хабре

image

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

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

Вдохновившись историей «второго рождения» учебника по электронике 1979 года (а точнее, комментариями к ней), мы решили собрать для вас подборку книг по электронике, которым в 2020 году исполнилось от 25 до 69 лет, но которые при этом не утратили своей актуальности. А чтобы не ограничиваться собственными нейтрально-редакторскими вводными, мы попросили прокомментировать эту подборку победителя «ТехноТекста-2019» в номинации «Научно-популярное», старожила Хабра, разработчика интегральных микросхем для космоса и потомственного инженера Валерия Шункова aka @amartology.

Осторожно: прочтение книг из этой подборки может вызвать острое желание взяться за паяльник. Вдохновляйтесь, творите и делитесь своим опытом с Хабром, ведь именно по просьбе сообщества мы добавили в список номинаций «ТехноТекста-2020» новую — «Железо и его разработка».
Читать дальше →

Клубок единомышленников

Reading time11 min
Views16K
Как выживать в турбулентной корпоративной среде. Только для теоретического изучения.

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

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

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

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

Попробую сформулировать, тезисно, основные правила, которые я для себя вынес, может они кому-то пригодятся.

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

Почему 97% программистов 1С мало платят и так будет всегда

Reading time7 min
Views125K
Внимание: статья — про программистов 1С, соответственно — не про вас. Считайте, что про вомбатов, и для вомбатов (погуглите, это интересные животные). У них есть проблемы, схожие с вашими.

Вопрос зарплаты и её повышения волнует большинство работающих людей, которых я встречал в жизни. Бывает, конечно, что человек получает немного и утверждает, что доволен. Поначалу не веришь такому, но поглядишь за его карьерой несколько лет, и убеждаешься – реально чувак пашет за идею. Нравится ему колесо крутить. Таких, по моим оценкам, 1 %.

Еще 2 % — люди, регулярно ухаживающие за финансовой стороной своей работы. Им эта статья вряд ли будет интересна.

Ну а 97 % чуваков ведут себя так. Работают. Молчат про зарплату. Хотят, чтобы денег платили больше. Молчат. Работают. Надеются. Молчат. Работают. Не могут больше молчать. Увольняются.

Те, с кем я лично знаком, часто приходят поговорить – между пунктами «не могут больше молчать» и «увольняются». Спрашивают – ну что я не так делаю? Почему мне мало платят? А главное – почему не повышают? Ведь я хорошо работаю! Что мне делать?

Поначалу я думал, что людям и правда нужны советы, и искренне пытался помочь. Когда-то даже оформил эти советы в статьи с общим названием «Карьерные стероиды». И некоторые этими советами пользовались, потом писали о своих успехах. Угадайте, сколько таких людей было? Правильно, 2 %.
Читать дальше →

Карьерные стероиды. Базовый алгоритм

Reading time12 min
Views30K
Статья про быстрый карьерный рост внутри одной компании. Именно внутри одной, т.к. скачок при переходе — это другая методика, к ней нужно иначе готовиться (там больше комплект увольнения подходит).

Сразу скажу: я не считаю, что строить карьеру — это правильно, без этого никак и кто не строит — валенок. При этом я и не считаю, что не строить карьеру — правильно.

В карьере нет ничего плохого или хорошего. Так же, как нет ничего плохого или хорошего в изучении ERP, ремонте своей квартиры или прохождении курса «100 отжиманий». Карьера — это проект с определенной целью, в который человек сознательно вступает, чтобы чего-то получить. Взамен он должен потратить больше ресурсов, чем расходовал до этого — времени, нервов, денег.

Мне кажется, будет здорово, если дальше вы будете читать именно с таким отношением: карьера — это такой проект. Если я им займусь, то эта информация может мне помочь.

Если вы не планируете строить карьеру — не вопрос. Я тоже не планирую, например, никогда внедрять ERP, поэтому не читаю о нем статей. Хотя мог бы читать и писать в комментах все, что я думаю о ERP и авторах статей о ней — только зачем?

Надеюсь, мы договорились. Возвращаемся к карьере.
Читать дальше →

Как я на карантине работу искал

Reading time7 min
Views61K
Хочу поделиться с сообществом своим недавним опытом поиска работы, сообщить, так сказать, вести с передовой. Несмотря на то, что все написанное – абсолютно субъективно, заметка будет полезна для других IT-шников. Особенно – если они интроверты и редко ходят по собеседованиям.

А еще, полагаю, многим будет любопытно, какая метаморфоза произошла с рынком работы в связи с последними событиями.


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

Сколько зарабатывают IT-шники в Великобритании и сколько при этом тратят

Reading time5 min
Views63K


Аве, Кодер!

Не так давно у нас на канале выходило видео (https://youtu.be/OC4nDT7J31Q), где я разбирал усредненные годовые зарплаты программистов в Великобритании, а также некоторые основные траты, сравнивая Лондон и (относительная глубинка) — Ноттингем.

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

Netflix за 45 минут: Краткий рассказ о system design-интервью, чего ожидать + подборка полезных ссылок

Reading time6 min
Views34K


В нашем блоге мы много пишем о построении карьеры в ИТ в разных странах, поиске работы, отличиях в процессе собеседований крупных компаний. В сегодняшней статье мы пойдем дальше и раскроем тему так называемых интервью по system design – это один из этапов собеседований известных технологических компаний, на котором отсеиваются многие кандидаты.

Итак, что такое system design и как пройти интервью такого типа?
Читать дальше →

Как я научился проходить архитектурные секции

Reading time4 min
Views35K
Архитектурные секции у многих вызывают чувство неопределенности и тревоги: формулировки не изобилуют деталями, как проверить ответ — непонятно. При этом способность пройти архитектурную секцию отличает вчерашнего выпускника от человека, которому можно доверить строить нечто большее, чем обход бинарных деревьев. В определенный момент я решил как следует подготовиться секции по дизайну, потратил на это около пары недель и выработал системный подход, которым хочу с вами поделиться.
Читать дальше →

Кто там выше тимлида?

Reading time8 min
Views16K
image

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

Стоит отметить, что для разработчика существует несколько векторов развития, которые хорошо описаны в статье Три дороги для программиста: эксперт, руководитель, основатель. Я же сосредоточусь на втором направлении — руководителе.
Читать дальше →

Три дороги для программиста: эксперт, руководитель, основатель

Reading time15 min
Views25K

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

С разрешения Сергея мы публикуем все три видео и их текстовую расшифровку.

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

Управленческие инструменты: Как играть в нелинейные шахматы

Reading time7 min
Views68K
Менеджмент, на мой взгляд, сильно похож на шахматы. Ты изучаешь методологии, ходишь на тренинги (то есть, изучаешь дебюты, принципы миттельшпиля и эндшпиля), готовишься, рисуешь план и… начинаешь игру!

Разворачиваешь свои войска: пешки двинулись вперед, кони подтягиваются, слоны занимают диагонали. И тут к тебе подходит ферзь (тим лид) и говорит “Знаешь, старик, я, наверное, буду увольняться… Чего-то совсем меня все достало.” И через две недели сходит с доски.

Нападает небольшая растерянность: а че делать? В дебютах не писали про внезапное увольнение ферзей…

Идем к начальству. Там нас ждет знакомая песня: “Сейчас бюджета нет, ты давай там как-то коней помотивируй…“ А ты понимаешь, что мотивированный конь — это не совсем ферзь. Он продолжает действовать как конь, только у него глаза начинают гореть.

Или: “Мы тебе можем нанять три пешки, ты их там поментори и через шесть ходов они вполне могут стать ферзями.” А ты понимаешь, что через 6 ходов тебя уже закопают вместе с проектом.

Нелинейные шахматы. Причем со всей этой бандой ты как менеджер должен выдавать какие-то ожидаемые результаты…

К сожалению (и к счастью) у людей появляется интерес и пропадает интерес, рождаются дети, случаются разводы — и это все неминуемо сказывается на мотивации человека, и как следствие, его производительности.

Можем ли мы как менеджеры повлиять на нелинейность человека, про которую так много писал Алистер Коберн в своей программной статье [1]? На что-то можем, на что-то нет. Но мы абсолютно точно можем отслеживать состояние человека, используя ряд инструментов. Об одном из них сегодня и поговорим.

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

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

Как в 2020 году разработчику найти удаленную работу: статистика, инструменты + советы инженера

Reading time6 min
Views31K


По статистике Stack Overflow, активно ищут работу немногим более 17% разработчиков. При этом, помимо зарплаты, в пятерку важных факторов при смене места входит и запрос на улучшения work/life balance. Традиционно многие люди видят в удаленной работе возможность улучшить этот баланс, больше времени проводить с родными и контролировать график.



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

Я изучил текущую статистику по рынку труда для разработчиков, материалы, которые публикуют рекрутеры и инженеры, которые сами проводят собеседования, а также поговорил с Александром Жилиным, Go/Python разработчиком из Питера, который недавно сумел найти работу с помощью специализированного чат-бота. В итоге я составил материал с актуальными советами по поиску удаленной работы в 2020 году.
Читать дальше →

Как найти удаленную работу в США и Европе: списки ~1000 компаний, полезные инструменты для поиска + личный опыт инженера

Reading time6 min
Views167K


Изображение: Unsplash

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

Я решил разобраться в том, что для этого нужно сделать инженеру с постсоветского пространства. Для этого я изучил компании, которые предлагают remote-позиции для ИТ-специалистов, нашел несколько полезных сервисов и поговорил с Никитой Львовым, инженером, который как раз недавно нашел такую работу и согласился поделиться опытом. Надеюсь, получилось полезно. Поехали!
Читать дальше →

Иван Тулуп: асинхронщина в JS под капотом

Reading time24 min
Views56K
А вы знакомы с Иваном Тулупом? Скорее всего да, просто вы еще не знаете, что это за человек, и что о состоянии его сердечно-сосудистой системы нужно очень заботиться.

Об этом и о том, как работает асинхронщина в JS под капотом, как Event Loop работает в браузерах и в Node.js, есть ли какие-то различия и, может быть, похожие вещи рассказал Михаил Башуров (SaitoNakamura) в своем докладе на РИТ++. С удовольствием делимся с вами расшифровкой этого познавательного выступления.



О спикере: Михаил Башуров — fullstack веб-разработчик на JS и .NET из Luxoft. Любит красивый UI, зеленые тесты, транспиляцию, компиляцию, технику compiler allowing и улучшать dev experience.

От редактора: Доклад Михаила сопровождался не просто слайдами, а демо-проектом, в котором можно понажимать на кнопочки и самостоятельно посмотреть за выполнением тасок. Оптимальным вариантом будет открыть презентацию в соседней вкладке и периодически к ней обращаться, но и по тексту будут даны отсылки на конкретные страницы. А теперь передаем слово спикеру, приятного чтения.

Что нужно знать об архитектуре ClickHouse, чтобы его эффективно использовать. Алексей Зателепин (2018г)

Reading time19 min
Views25K

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


Будут затронуты следующие темы:


  • Как ClickHouse хранит данные на диске и выполняет запрос, почему такой способ хранения позволяет на несколько порядков ускорить аналитические запросы, но плохо подходит для OLTP и key-value нагрузки.
  • Как устроена репликация и шардирование, как добиться линейного масштабирования и что делать с eventual consistency.
  • Как диагностировать проблемы на production-кластере ClickHouse.

Почему у Wechat нет и не может быть конкурентов

Reading time4 min
Views36K
Возможно, меня можно обвинить в предвзятости и безмерном обожании Wechat. Обоснованно ли — пусть судят другие. В любом случае, Wechat — это уникальное явление среди всех IT-проектов всего времени. И тут я попытаюсь раскрыть вопрос — What makes it special©.
Читать дальше →

Я перегорел, уже как 2 года

Level of difficultyEasy
Reading time3 min
Views48K


Сложно такое осознать, я думал, меня настигнет эта участь несколько позже, когда мне будет хотя бы 30+ и я буду каким-нибудь крутым разрабом в известной компании, но мне 26 и я в NoName конторе.

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

Information

Rating
4,638-th
Registered
Activity