Проверки в автотестах являются обязательным компонентом, так как основная задача любого теста сравнить ожидаемый результат с фактическим. Меня зовут Вадим, я специалист по тестированию, и в этой статье я хочу уделить внимание одной из частей любого автотеста – Assert. Казалось бы, какие трудности могут возникнуть с этим, на первый взгляд, простым компонентом любого автотеста? На одном из своих проектов я столкнулся с большим количеством автотестов, проблемой которых как раз и были неверно написанные проверки. Хочу рассказать о причинах возникновения этих трудностей и поделиться путём решения проблемы, который мне удалось пройти вместе с командой.
Backend программист
Gopher, конкурент WWW из 90-х, который пока не стоит списывать со счетов
В этом году мы отмечали 30-летие со дня создания всемирной паутины. Естественно, такая дата не могла обойтись безо всяких гиковских воспоминаний и нытья по тем временам, когда жизнь была проще. За три десятилетия Веб развился из многообещающего нишевого эксперимента в незаменимый компонент всемирного общения. Несмотря на все его недостатки, Веб стал необходимостью для миллиардов людей по всему миру, и в ближайшее время он никуда не денется.
А пока популярные СМИ пели хвалу невероятным успехам Веба, ещё одна технология передачи данных через интернет отмечала своё 30-летие – Gopher. Популярность этого забытого тяжеловеса эпохи раннего интернета была на пике в конце 90-х, а ныне почти полностью сошла на нет. К счастью, как и его отважный тёзка, Gopher продолжает прокладывать себе путь по интернету и в XXI веке при поддержке преданного сообщества, а количество серверов, поддерживающих этот протокол, постепенно растёт.
Фрилансеры vs агентство: как не угробить SEO и сразу сделать все правильно?
Тренд последних лет ‒ обращение к SEO-специалистам, которые работают на фрилансе, а не в агентстве. Но так ли это безопасно, и не придется ли платить дважды? Ко мне в агентство обратился клиент, который бежал со всех ног от такого SEO-фрилансера. Давайте объясню подробнее…
Как не наступать на грабли в Go
Этот пост является версией моей же англоязычной статьи "How to avoid gotchas in Go", но слово gotcha не переводится на русский, поэтому я буду использовать это слово как без перевода, так и немного непрямой вариант — "наступать на грабли".
Gotcha — корректная конструкция системы, программы или языка программирования, которая работает, как описано, но, при этом, контринтуитивна и является причиной ошибок, поскольку её легко использовать неверно.
В языке Go есть несколько таких gotchas и есть немало хороших статей, которые их подробно описывают и разъясняют. Я считаю, что эти статьи очень важны, особенно для новичков в Go, поскольку регулярно вижу людей, попадающихся на те же грабли.
Но один вопрос меня мучал долгое время — почему я сам никогда не делал этих ошибок? Серьезно, самые популярные из них, вроде путаницы с nil-интерфейсом или непонятного результата при append()-е слайса — в моей практике никогда не были проблемой. Каким-то образом мне повезло обойти эти подводные камни с первых дней своей работы с Go. Что же мне помогло?
И ответ оказался довольно прост. Я просто очень вовремя прочёл несколько хороших статей о внутреннем устройстве структур данных в Go и прочих деталях реализации. И этого, вполне поверхностного на самом деле, знания было достаточно, чтобы выработать некоторую интуицию и избегать этих подводных камней.
Путь инженера: как эффективно пройти его от джуна до сеньора
Мы все пришли в IT разными путями. Кто-то шёл по этому пути с самого детства, другие начали свой путь с выбора института и computer science в качестве основной дисциплины. Есть и те, кто свернул на эту дорогу, уже имея другую профессию и опыт работы совсем в другой сфере.
Сегодня поговорим не о том, как мы начинали карьеру, а о том, как мы двигаемся по этому пути и как сделать это движение максимально эффективным. Мы посмотрим на те компетенции, которые нужны для перехода между разными грейдами. Обсудим, с какими проблемами можно столкнуться и как их преодолеть.
Как я перестал тревожиться из-за читабельности и… все
Всем привет.
Давно читаю хабр, давно и регулярно читаю статьи про правильное программирование.
В большинстве из них так же регулярно проявляется удивительная забота программистов об эстетической стороне программирования; мол, писать необходимо красиво, читабельно и выразительно. Сочетание этих трех добродетелей обычно вызывает у меня смех, и я объясню почему.
TLDR: забейте на читабельность и выразительность. Стремитесь сделать ваш код хорошо работающим..
Код в картинках: визуализация кода
Привет, Хабр!
На связи Федорова Валерия, участница профессионального сообщества NTA.
Каждый разработчик был, или может оказаться, в ситуации, когда не понимаешь, как работает код, который был написан пару дней (недель, месяцев, лет — нужное подчеркнуть) назад. Или в ещё более сложной ситуации — нужно «отдебажить» чужой код, без возможности привлечь автора. Здесь может пригодиться один из инструментов статистического анализа кода — Control Flow Graph или CFG.
В этой публикации рассмотрю понятие CFG, а также python библиотеку Staticfg, обеспечивающую простой интерфейс для создания CFG программ на языке Python.
Какого черта мы нанимаем, или осмысленность собеседований в IT
Привет, Хабр, меня зовут Герман, и я лид разработки, вышедший из фронтов. Сегодня я хочу обсудить тему культуры собеседований, а точнее, тот хаос что творится на этом поприще. А заодно — узнать, что об этом думает комьюнити in situ.
Принципы для разработки: KISS, DRY, YAGNI, BDUF, SOLID, APO и бритва Оккама
Хорошему программисту необходимо уметь совмещать свои навыки со здравым смыслом. Все дело в прагматизме и навыке выбора лучшего решения для вашей проблемы. Когда вы сталкиваетесь с проблемой при разработке ПО, вы можете воспользоваться базовыми принципами, которые помогут в выборе самого правильного подхода.
В этом тексте приводится набор принципов, которые должен знать любой разработчик, и которые следует периодически освежать в памяти. Считайте их своим секретным оружием при программировании.
Последовательное применение этих принципов упростит ваш переход от миддла к сеньору. Вы можете обнаружить, что некоторые (вероятно) вы применяете интуитивно.
Принципов много. Мы остановимся на семи самых важных. Их использование поможет вам в развитии и позволит стать лучшим программистом.
1. YAGNI
You Aren’t Gonna Need It / Вам это не понадобитсяЭтот принцип прост и очевиден, но ему далеко не все следуют. Если пишете код, то будьте уверены, что он вам понадобится. Не пишите код, если думаете, что он пригодится позже.
Этот принцип применим при рефакторинге. Если вы занимаетесь рефакторингом метода, класса или файла, не бойтесь удалять лишние методы. Даже если раньше они были полезны – теперь они не нужны.
Может наступить день, когда они снова понадобятся – тогда вы сможете воспользоваться git-репозиторием, чтобы воскресить их из мертвых.
Корректный ASP.NET Core
Специально для любителей книг из серии "С++ за 24 часа" решил написать статью про ASP.NET Core.
Если вы раньше не разрабатывали под .NET или под какую-то аналогичную платформу, то смысла заходить под кат для вас нет. А вот если вам интересно узнать что такое IoC, DI, DIP, Interseptors, Middleware, Filters (то есть все то, чем отличается Core от классического .NET), то вам определенно есть смысл нажать на "Читать дальше", так как заниматься разработкой без понимания всего этого явно не корректно.
RSync на стероидах с поддержкой Windows
На Хабре периодически рассказывают о новых инструментах для синхронизации данных. Это интересная тема. Такие программы используются:
- для синхронизации файлов на разных устройствах,
- дедупликации,
- резервного копирования,
- сжатия.
Малейшая оптимизация даёт экономию трафика, места, ускоряет синхронизацию и общую производительность любых систем. Всё, везде и сразу. В эпоху веб-приложений и клиент-серверной архитектуры со множеством девайсов, которые работают в единой инфраструктуре, синхронизация — Святой Грааль, одна из базовых технологий в компьютерной области.
Кроме того, инструменты синхронизации интересны с алгоритмической точки зрения. Любопытно, как люди умудряются оптимизировать базовые алгоритмы типа
rsync
, которые вроде бы работают идеально. Но нет, всегда можно придумать что-то получше.IoC, DI, IoC-контейнер — Просто о простом
На данный момент, на эту тему уже довольно сказано, написано, в том числе и на хабре, но как раз из-за обилия информации сложно найти действительно полезный контент. Кроме того, данные понятия часто смешивают и/или путают. Проанализировав множества материалов я решил изложить вам свое видение предмета.
5 млн долларов за строчку кода: подробный разбор сбоя сервисов Datadog
В марте сервисы Datadog не работали более суток. Что пошло не так, как отреагировала команда инженеров, и что можно извлечь из этого инцидента? Это перевод эксклюзивного исследования, которое провел Гергели Орош (Gergely Orosz), консультант mobile.dev, автор нескольких книг по работе с инфраструктурой, в прошлом — инженер в Uber, Skype, Microsoft.
Сгорела на работе. Как 29-летнюю девушку похоронил стресс
Смерть от переработок. Эта новость, с одной стороны, повергла меня в шок, а с другой заставила задуматься о нескольких важных на мой взгляд вещах.
Суть: девушка, 29 лет, инженер-тестировщик умерла, от того, что организм не выдержал той ситуации, в которой он оказался.
Книга: проектирование API
Приветики. Каждый из нас в этом этом чудесном году находит свой способ скоротать время. Я вот, например, пишу книгу. Книгу о том, что знаю и люблю — про API. (Кто я такой и какой опыт имею в разработке можно посмотреть здесь)
→ Пока что написал первую часть — о принципах проектирования API «сверху вниз»
→ PDF-версию можно скачать отсюда
Вопросы, пожелания и предложения принимаются. Книга распространяется бесплатно на условиях CC-BY-NC. You're welcome!
Как мы 40% RAM освободили
О том, как мы столкнулись с огромными проблемами легаси сервиса фильтрации каталога и срочно начали думать, как это исправить переписать. О том, что у нас вышло с помощью redis, rabbit, bitrix - в статье.
Information
- Rating
- Does not participate
- Location
- Новокузнецк, Кемеровская обл., Россия
- Date of birth
- Registered
- Activity