Как стать автором
Обновить

Все потоки

Сначала показывать
Порог рейтинга
Уровень сложности

Go. О покрытии кода интеграционными тестами и флаге -cover

Уровень сложности Простой
Время на прочтение 7 мин
Количество просмотров 9
Блог компании SkillFactory Go *Программирование *Тестирование IT-систем *
Туториал
Перевод

Инструменты покрытия кода помогают понять, какая часть кодовой базы выполняется (или, как еще говорят, покрывается) при выполнении данного набора тестов. Какое-то время Go поддерживал измерение покрытия кода на уровне пакета, введенное в Go 1.2, она включалась флагом команды go test -cover.


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


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


Двоичные файлы интеграционных тестов создаются командой go build, а не go test, поэтому инструментарий Go до сих пор не предоставлял простого способа сбора профиля покрытия этих тестов.


С версии Go 1.20 программы с инструментированием покрытия можно создавать командой go build -cover, а затем, чтобы расширить область покрытия, передавать эти инструментированные двоичные файлы в интеграционный тест.


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

Читать дальше →
Рейтинг 0
Комментарии 0

Новости

Campus. Система, позволяющая управлять образовательным процессом. Мобильное приложение

Время на прочтение 6 мин
Количество просмотров 330
Разработка мобильных приложений *Usability *Управление продуктом *
Обзор

В данной статье расскажу про мобильное приложение образовательного комплекса Campus

Читать далее
Рейтинг 0
Комментарии 1

Дайджест научпоп-новостей за неделю, о которых мы ничего не писали

Уровень сложности Средний
Время на прочтение 4 мин
Количество просмотров 378
Научно-популярное AR и VR Космонавтика Астрономия
Дайджест
Здравствуйте, с вами Вячеслав Голованов, и я курирую поток «Научпоп» на Хабре. Среди моих задач — увеличение количества публикаций в этом потоке, в том числе через привлечение новых хороших авторов на Хабр. Если вы всегда хотели написать статью на научно-популярную тему, но боялись начать – это ваш знак. Можете обсудить это со мной через личные сообщения, и/или написать статью в «Песочницу» и кинуть мне ссылку.

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

Разработан космический цемент, который в два раза прочнее обычного




Учёные из Манчестера создали новый материал, получивший название StarCrete. Он изготавливается из космической пыли, картофельного крахмала и соли, и может быть использован для строительства домов на Марсе.
Читать дальше →
Всего голосов 2: ↑1 и ↓1 0
Комментарии 1

Как мы продавали хостинг в Европе

Время на прочтение 6 мин
Количество просмотров 741
Блог компании AdminVPS Хостинг Монетизация веб-сервисов *Контекстная реклама *Научно-популярное
Кейс

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

В Европе принятие решения происходит несколько по-другому, нежели в России. Это во многом связано, во-первых, с особенностью мышления, с тем, что ценности у нас отличаются или имеют разную степень влияния на принятие решения, во-вторых, с уровнем развития экономики в целом. 

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

Рынок хостинга в этом проклятом забугорье, как говорил мой преподаватель по программированию, давно распределен, а потом еще раз перераспределен. Как уже много раз писали, и здесь в том числе, соваться туда – дело пропащее, 90%, что прогорите, некоторые пробовали и подробно описали свой опыт. Но мы не искали простых путей и не боялись. Вооружившись знаниями и отвагой, присущими лишь глупцам, открыли в некоторых странах офисы, посадили туда местных продавцов, со знанием языка. Это было очень важно. 

Какие страны будем покорять?
Всего голосов 8: ↑7 и ↓1 +6
Комментарии 1

Истории

Гибридная методология ведения проектов WaterScrum как мы это настроили

Время на прочтение 13 мин
Количество просмотров 190
Управление проектами *Управление продуктом *Бизнес-модели *
Из песочницы

Всем привет. Меня зовут Геннадий Гребеник и мы с командой трансформации Фора-Банка столкнулись с задачей сочетания в своей работе классических и гибких методологий управления проектами. В ходе решения данной задачи командой были разработаны подходы к гибридной модели ведения проектов, когда управление сверху остается в классическом, каскадном планировании, а команды снизу реализуют данные проекты с применением гибких подходов управления. В виду того, что многие организации в своей работе сталкиваются с необходимостью сочетать в своей работе классические и гибкие методологии управления проектами, хотим поделиться своим опытом.  

Читать далее
Всего голосов 1: ↑0 и ↓1 -1
Комментарии 0

Модель обнаружения смс-спама: создаем и тестируем

Уровень сложности Средний
Время на прочтение 7 мин
Количество просмотров 214
Блог компании OTUS Спам и антиспам Алгоритмы *Машинное обучение *

Привет Хабр! В прошлой статье мы векторизировали данные, теперь нам осталось написать модель и протестировать её

Мы построим модель для обнаружения спам-сообщений с использованием алгоритма случайного леса. Случайный лес — это очень мощный алгоритм, который очень широко используется. Мы не будем углубляться в математику алгоритма случайного леса, а воспользуемся его реализацией в библиотеке Scikit-Learn.

Читать далее
Всего голосов 9: ↑7 и ↓2 +5
Комментарии 0

Strawberry GraphQL и FastAPI. Так что получается, Pydantic всё-таки не нужен?

Уровень сложности Сложный
Время на прочтение 6 мин
Количество просмотров 537
Python *
Кейс

Сказ пойдет о том, как я протаптывал тропинки в этом неизведанном мире GraphQL и Python

Читать
Всего голосов 1: ↑1 и ↓0 +1
Комментарии 3

Основы python в бизнесе

Уровень сложности Простой
Время на прочтение 7 мин
Количество просмотров 1.2K
Python *Развитие стартапа
Из песочницы

Господа, приветствую! Решил описать результаты изучения абсолютно бесплатных курсов и статей по языку программирования python, любые комментарии с одобрениями/осуждениями/пожеланиями приветствуются.

И так, дело было вечером - делать было нечего.... Бесплатный(пробный) курс на Я.Практикуме подтолкнул зафиксировать полученные знания хоть как-нибудь, так родилась идея создания Калькулятора Лазерной Резки(далее КЛР), аплодисменты в студию!! Видео на ютубе "Учим python за 7 часов! Уроки Python Полный курс обучения программированию на python с нуля" канала Python Hub Studio придало уверенность.

Читать далее
Всего голосов 2: ↑1 и ↓1 0
Комментарии 8

Как запросто потерять данные в таблице Teradata

Время на прочтение 2 мин
Количество просмотров 426
SQL *Data Engineering *
Из песочницы

Доброго дня всем заинтересованным в теме. Пару дней назад столкнулся я с одной настолько неочевидной и вместе с тем опасной особенностью выполнения SQL в Teradata, что не мог не поделиться. Хотя допускаю, что post mortem поведение ее (Терадаты) выглядит по-своему логичным, но все же для тех, кто не специализируется конкретно на Teradata и при этом много работает с данными в разных типах хранилищ, подобное поведение является первоклассной расческой ловушкой, и мне пока не удалось найти другую БД, в которой она есть.

Постараюсь кратко.

Представим, что у нас есть огромная таблица с критичными данными:

Читать далее
Всего голосов 1: ↑0 и ↓1 -1
Комментарии 3

Безопасность ASP.NET

Уровень сложности Простой
Время на прочтение 12 мин
Количество просмотров 459
Блог компании OTUS Информационная безопасность *.NET *ASP *

Веб платформа ASP.NET за последние десятилетия получила достаточно широкое распространение. С ее помощью разрабатывают веб-сайты и веб-приложения с помощью таких средств как HTML, CSS и JavaScript. Также с помощью ASP.NET можно создавать веб-API и веб сокеты.

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

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

Читать далее
Всего голосов 14: ↑9 и ↓5 +4
Комментарии 2

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

Уровень сложности Простой
Время на прочтение 11 мин
Количество просмотров 1.5K
Блог компании Онлайн Патент Читальный зал Патентование *Научно-популярное
Ретроспектива

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

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

Читать далее
Всего голосов 8: ↑6 и ↓2 +4
Комментарии 0

3 правила в веб-дизайне, которые упрощают жизнь разработчикам

Уровень сложности Средний
Время на прочтение 4 мин
Количество просмотров 1.2K
Веб-дизайн *Разработка веб-сайтов *Интерфейсы *IT-стандарты *Дизайн
Из песочницы

Рассказываю как сберечь нервы разработчикам сайтов.

Тык!
Всего голосов 4: ↑3 и ↓1 +2
Комментарии 4

Браузерные инструменты: как и зачем их приручать

Время на прочтение 15 мин
Количество просмотров 724
Блог компании JUG Ru Group Тестирование IT-систем *Тестирование веб-сервисов *Конференции

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

Осенью на нашей конференции по тестированию Heisenbug Татьяна Дроздова рассказала о возможностях DevTools в Chrome, Firefox и Safari, и доклад очень понравился участникам. Сейчас мы готовим следующий Heisenbug, где Татьяна выступит с новым докладом о браузерных расширениях — а в ожидании этой конференции сделали для Хабра текстовую версию доклада с предыдущей. Далее текст идёт от лица Татьяны.

Читать далее
Всего голосов 8: ↑8 и ↓0 +8
Комментарии 0

Кросс-компилируем Rust приложения при помощи Nix

Уровень сложности Простой
Время на прочтение 7 мин
Количество просмотров 615
C++ **nix *Rust *
Туториал

На текущем месте работы столкнулся с необходимости собирать Docker образы для сервисов написанных на Rust. Обычно в таком случае пишется Dockerfile, который внутри докера просто собирает контейнер и все. Но все оказалось не так однозначно: такая схема довольно неплохо работает, когда у тебя есть x86_64 Linux машина, но любой шаг в сторону и начинаются большие проблемы.

Все довольно неприятно уже на Intel MacBook машинах, докер поедает довольно много ресурсов с хоста, а еще возникают всякие странные приколы с монтированием файловой системы и правами доступа. Но настоящий ужас начинается на Макбуках с Apple Silicon процессорами, где обычной виртуализацией уже не обойдешься и можно часами ждать сборки простого сервиса через qemu. Можно решать эту проблему через сборку контейнеров в CI, но когда разработчиков много, а им надо часто что-то пересобирать, то там образовывалась очередь.

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

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

[Личный опыт] Плохая колбаса и бассейн на крыше: как системный инженер живёт и работает в ОАЭ

Время на прочтение 10 мин
Количество просмотров 2.3K
Блог компании Southbridge IT-эмиграция Карьера в IT-индустрии Лайфхаки для гиков Урбанизм

Наш спикер и экс-CTO Слёрма Марсель Ибраев почти год живёт и работает системным инженером в Абу-Даби. Мы поговорили с Марселем, и он поделился, как прошёл собеседование на иностранном языке, хотя его английский и сейчас далёк от идеала, а до переезда в ОАЭ был ещё хуже.

А ещё рассказал про квартиру в ЖК с бассейном на крыше и назвал зарплату, на которую не стоит соглашаться айтишнику, планирующему жить в Эмиратах.

Читать далее
Всего голосов 24: ↑21 и ↓3 +18
Комментарии 5

Понять комбинаторные селекторы и селекторы потомков в CSS

Уровень сложности Простой
Время на прочтение 3 мин
Количество просмотров 317
Разработка веб-сайтов *CSS *
Туториал

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

В решении этой проблемы мне обычно помогают необычные операторы CSS > + и ~

Читать далее
Рейтинг 0
Комментарии 0

Тестируйте API, как професионал. Часть 2: Как автоматизировать API с помощью 'cypress-plugin-api'

Время на прочтение 2 мин
Количество просмотров 266
Блог компании OTUS Тестирование веб-сервисов *
Перевод

cypress-plugin-api, написанный амбассадором Cypress Филипом Хриком (Filip Hric), представляет собой плагин для эффективного тестирования API. Представьте себе Postman, но в Cypress; этот плагин выводит на печать всю информацию о вызове API в пользовательском интерфейсе приложения Cypress, обеспечивая несколько преимуществ:

1) В cypress-plugin-api команда cy.api() работает также как cy.request(). Основное отличие заключается в том, что помимо вызова вашего API, cy.api() также печатает информацию о вызове API в вашем Cypress Test Runner.

2) Всю эту информацию можно просмотреть в виде time-travel (реверсивная отладка) snapshots.

3) Также формируется простая таблица для просмотра файлов cookie, сворачивания объектов данных JSON и массива, а также цветового кодирования методов в представлении пользовательского интерфейса и на таймлайне (временной шкале)

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

Как компании подготовиться к модуляризации iOS приложений

Уровень сложности Средний
Время на прочтение 9 мин
Количество просмотров 237
Блог компании СберЗдоровье Ruby *Разработка под iOS *Xcode *Swift *
Кейс

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

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

Читать дальше →
Рейтинг 0
Комментарии 0

Тюрьма, состоящая из одиноких мужчин

Уровень сложности Простой
Время на прочтение 9 мин
Количество просмотров 6.4K
Лайфхаки для гиков Научная фантастика Здоровье
Мнение

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

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

Для обсуждения мужского одиночества, я пригласил в себе в студию Никсель – яркую представительницу феминистического движения. Но не ту, настоящую Никсель, известную своей защитой прав женщин и сексуальных меньшинств, а Никсель вымышленную, персонажа собственного фантастического романа «Записки I-тетрамино»

Читать далее
Всего голосов 57: ↑41 и ↓16 +25
Комментарии 92

Эволюция Dev-серверов CarPrice: от монолита к микросервисам и Kubernetes

Время на прочтение 8 мин
Количество просмотров 413
Блог компании CarPrice DevOps *Микросервисы *Kubernetes *
Кейс

Нужен ли каждому разработчику свой dev-сервер? Многие компании, опасаясь лишних расходов и проблем, даже не пробуют внедрить такой подход.

CarPrice развернул свои dev-серверы еще в те далекие времена, когда все работало на монолите. А после монолита пилил собственный сервис для оркестрации dev-серверов на базе Docker, затем разворачивал их на Minikube и постепенно пришел к Kubernetes.

На связи ведущий инженер отдела DevOps CarPrice Михаил Чешуин. В этой статье я расскажу, как мы запускали dev-серверы в разные периоды — и как все работает сейчас

Читать далее
Всего голосов 4: ↑4 и ↓0 +4
Комментарии 0