Pull to refresh
2
0.1

Пользователь

Send message

Юнит-тестирование для чайников

Reading time15 min
Views1.1M
Даже если вы никогда в жизни не думали, что занимаетесь тестированием, вы это делаете. Вы собираете свое приложение, нажимаете кнопку и проверяете, соответствует ли полученный результат вашим ожиданиям. Достаточно часто в приложении можно встретить формочки с кнопкой “Test it” или классы с названием TestController или MyServiceTestClient.



То что вы делаете, называется интеграционным тестированием. Современные приложения достаточно сложны и содержат множество зависимостей. Интеграционное тестирование проверяет, что несколько компонентов системы работают вместе правильно.

Оно выполняет свою задачу, но сложно для автоматизации. Как правило, тесты требуют, чтобы вся или почти вся система была развернута и сконфигурирована на машине, на которой они выполняются. Предположим, что вы разрабатываете web-приложение с UI и веб-сервисами. Минимальная комплектация, которая вам потребуется: браузер, веб-сервер, правильно настроенные веб-сервисы и база данных. На практике все еще сложнее. Разворачивать всё это на билд-сервере и всех машинах разработчиков?

We need to go deeper
Total votes 70: ↑63 and ↓7+56
Comments65

Я б в программеры пошёл, пусть меня научат

Reading time15 min
Views73K
Сегодня многие романтизируют ИТ-сферу, стремятся попасть в неё и остаться в облаке славы, денег и всемирной известности. Конечно, всё не так, как кажется: разработка — это сложный интеллектуальный труд, отнимающий кучу времени. Но если вы всё же решились сменить профессию и войти в ряды айтишников, не промахнитесь со способом обучения.

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


Читать дальше →
Total votes 50: ↑41 and ↓9+32
Comments158

Как измерить скорость изучения английского языка?

Reading time7 min
Views13K
А вам хотелось бросить изучение английского? Ну, бывает же, что ходишь и ходишь на эти курсы, а результата все нет и нет! Часто все дело в том, что мы верим громким заголовкам в стиле ”английский за неделю” и планируем, что заговорим, как Бенедикт Камбербэтч уже через месяц. А хотелось бы точно знать четкую формулу, по которой без проблем можно рассчитать сроки обучения.
Читать дальше →
Total votes 8: ↑8 and ↓0+8
Comments25

Кому из айтишников на Руси жить хорошо (а кому будет еще лучше)

Reading time11 min
Views34K
Похоже, сегодня ИТ-специалисту в России стало легче найти работу. Последние впечатления от российского рынка труда: предложения с уровнем зарплаты существенно выше среднего получают специалисты самых разных профилей и не обязательно высокой квалификации. Более того, похоже, что в кои-то веки ИТ-профессионалы получили возможность выбирать из конкурентных предложений! Кандидаты без специального образования и довольно посредственно, на уровне любителя, разбирающиеся в профильных технологиях, с гордостью публикуют в соцсетях свои новые должности — разработчиков, специалистов по технической поддержке, внедренцев…

К тому же, в прессе все чаще появляются истории о низкоквалифицированных разработчиках, которые тем не менее успешно проходили интервью, и уже в ходе работы наносили огромной финансовый ущерб компании. Так, Uber в 2015 случайно опубликовал паспортные данные своих водителей, а Google в 2010 году понес убытки в $100 млн долларов и проиграл суд компании Oracle за использование без разрешения 11 строк кода. И уже не из жизни гигантов: когда работодатель не понимает, что делает разработчик, а сам сотрудник пользуется этим и завышает как сложность своей работы, так и ее стоимость, а впоследствии и пренебрегает добросовестностью исполнения служебных заданий.

Наш интерес к этим вещам далеко не праздный, ведь для агентства AGIMA ИТ-профессионалы — главный производственный актив. Поэтому HR-отдел агентства попросил наших аналитиков отложить в сторону Google Analytics, сплит-тестирования, карточные сортировки и разобраться в этих вопросах. В ходе эксперимента ни один аналитик и текущий проект компании не пострадали.
Читать дальше →
Total votes 42: ↑31 and ↓11+20
Comments57

Внешние скрипты с доступом к вашим кредиткам и личному кабинету

Reading time4 min
Views27K
image

Скажите, как бы вы отнеслись к тому, чтобы продавцы давали возможность собрать атрибуты ваших карточек, включая номер, фамилию и CVC, какому-то постороннему лицу еще в момент оплаты, а также, без пароля, пускали посмотреть, что вы делаете в личном кабинете какого-то сервиса, кому и сколько платите, например. Сколько у вас телефонов и как вы ими пользуетесь. Т.е. вы входите под паролем, подтверждаете право владения по SMS, зашли, а там народ толпится, кто зашел просто посмотреть. Бред? Тем не менее, так делают многие сервисы. Кем бы вы себя ощущали, если бы в комнате для вскрытия банковских ячеек обнаружили камеру наблюдения? Но, не будем снова о банках, давайте обо всем последовательно.
Total votes 43: ↑40 and ↓3+37
Comments89

Начинаем изучать STM32: битовые операции

Reading time6 min
Views72K

Небольшое отступление...


В прошлом уроке мы рассмотрели с чего начать, если вы решили изучать микроконтроллеры STM32: как настроить IDE, как создать простой проект, как откомпилировать программу и как запустить программу на выполнение. После полюбовались на перемигивание светодиодов на Discovery-плате )


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

Читать дальше →
Total votes 19: ↑16 and ↓3+13
Comments74

Руководство по материалам электротехники для всех. Часть 5

Reading time5 min
Views27K
Продолжение руководства по материалам электротехники. В этой части продолжаем разбирать диэлектрики, часть посвящена органическим полусинтетическим диэлектрикам: бумаге, шелку, парафину, маслу, дереву.
image

Добро пожаловать под кат (ТРАФИК)
узнать о материалах
Total votes 37: ↑37 and ↓0+37
Comments15

Перестаньте травить печатные платы дома — заказывайте их на производстве

Reading time3 min
Views99K
В последней своей статье про Домофон с MQTT я проводил опрос на тему того, какую статью написать следующей. Выбор пал на заказ производства печатных плат, вот собственно немного расскажу об этом. Если статья зайдет, напишу по следующей теме из голосовалки.

Я ни в коем разе не принуждаю сразу выливать ваше хлорное железо / перекись водорода, оставьте их для макетирования. Я лишь хочу показать, что заказать платы на производстве в наше время совсем не сложно, как может показаться начинающему радиолюбителю. Есть в этом что-то магическое — подержать в руках красивую плату собственного изготовления.
Читать дальше →
Total votes 69: ↑65 and ↓4+61
Comments381

Выращивание искусственного интеллекта на примере простой игры

Reading time4 min
Views37K


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

Результатом работы стало то, что ИИ, не зная правил, самостоятельно освоил игру крестики-нолики и нашел слабости ботов, которые играли против него. Но начал я с еще более простой задачи.
Читать дальше →
Total votes 24: ↑23 and ↓1+22
Comments30

Как я проходил собеседования на позицию Junior .Net Developer

Reading time8 min
Views269K
Приветствую всех. Сегодня расскажу вам как я проходил собеседования в Москве на позицию .Net Developer. Усиленно готовился к собеседованиям месяц, целыми днями сидел и смотрел вопросы и пытался отвечать на них, а также читал книжки по С#. В статье привожу интересные задачки и вопросы, которые мне задавали в разных компаниях в Москве. Заранее скажу, что я попал в ту компанию, в которую хотел. Я прошел 4 собеседования в этой компании и меня наконец то взяли! Много статей было прочитано в частности здесь и надеюсь, что эту статью тоже будут читать начинающие Net разработчики и спрашивать все в комментариях.

Кому интересна тема прохождения собеседований, прошу под кат!
Читать дальше →
Total votes 64: ↑51 and ↓13+38
Comments158

Бертран Мейер. Объектно-ориентированное конструирование программных систем

Reading time5 min
Views66K

DISCLAIMER: более навороченной книги по ООП в природе нет и в ближайшее время, скорее всего, не будет; эта книга заслуженно считается классической книгой по объектной технологии и не зря является первой в списке рекомендуемых книг по этой теме (причем она первая не только в моем списке).

Основная сложность при изучении объектно-ориентированного программирования (или любой другой парадигмы программирования) заключается в том, что весьма сложно подобрать формальные критерии, которые бы сказали: «ок, теперь я знаю ООП и стану писать более клевые (читай модульные, реюзабельные и легкие в сопровождении) программы». Например, при изучении языков программирования мы относительно быстро замечаем, опа, level-up, я, кажись, перешел на новый уровень понимания идиом и конструкций языка программирования и могу использовать его более интересным образом, да еще и другим рассказывать, где они не правы.

Читать дальше →
Total votes 33: ↑33 and ↓0+33
Comments42

Четыре типажа программистов

Reading time17 min
Views215K

Привет.


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

Читать дальше →
Total votes 258: ↑237 and ↓21+216
Comments548

Изучаем Bootmgr. Часть 1 — инструментарий и основные принципы отладки начальных этапов загрузки ОС Windows

Reading time12 min
Views50K

Введение


Возможно некоторые читатели помнят мою самую первую статью на ресурсе, посвященную загрузке Windows с VHD-образа. Возможно я бы и не вернулся к этой теме, если бы не нашлись люди, попытавшиеся повторить данную технологию на своих домашних машинах. Естественно, с реализацией этого решения возникли проблемы, касающиеся в основном тех ошибок, которые выплевывает bootmgr в тех случаях, когда ему что либо не нравится. Попытки интерпретации ошибок загрузки вроде 0xc03a0003 путем гугления к особо ценным результатам не приводят, а документация Microsoft на этот счет хранит многозначительное молчание. Возникла идея изучить процесс обработки VHD-образов, получив информацию из первых рук, то есть от самого загрузчика.


Если обратится к уже имеющейся в сети информации, то существует замечательный блог "Записки эникейщика о Windows" на страницах которого (раз, два и три) размещены, на мой взгляд, самые ценные сведения, по вопросам устройства bootmgr. Автор подробно рассмотрел процесс загрузки, включая исследования кода MBR и PBR, остановившись на структуре bootmbr, кратко описав происходящие при его работе процессы.


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

Читать дальше →
Total votes 44: ↑39 and ↓5+34
Comments10

Скорочтение: работает или нет? Часть 2: разбор методик

Reading time8 min
Views49K
Краткое содержание первой части: скорочтение – это набор разных механик, которые [в некоторых случаях] помогают получать информацию из текста быстрее, чем при обычном чтении. Тем не менее, даже скорочтение не поможет читать с «пулеметной» скоростью – ваши способности возрастут, но вряд ли превысят 500-600 слов в минуту (среди комментаторов к предыдущей части материала, правда, были и те, кому удалось развить скорость чтения и до 700 слов в минуту). Большинство громких заявлений скорочтецов, ставивших мировые рекорды в тысячи слов в минуту, – не более чем самореклама и неподтвержденные данные (исключение – «человек дождя» Ким Пик).

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

Читать дальше →
Total votes 25: ↑23 and ↓2+21
Comments26

Архитектура и алгоритмы индексации аудиозаписей ВКонтакте

Reading time8 min
Views38K


Расскажем о том, как устроен поиск похожих треков среди всех аудиозаписей ВКонтакте.

Зачем всё это надо?


У нас действительно много музыки. Много — это больше 400 миллионов треков, которые весят примерно 4 ПБ. Если загрузить всю музыку из ВКонтакте на 64 ГБ айфоны, и положить их друг на друга, получится башня выше Эйфелевой. Каждый день в эту стопку нужно добавлять еще 25 айфонов — или 150 тысяч новых аудиозаписей объёмом 1.5 ТБ.

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

Если научиться достаточно точно находить одинаковые (или очень похожие) аудиозаписи, можно применять это с пользой, например:

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

Читать дальше →
Total votes 90: ↑88 and ↓2+86
Comments87

Reedy – Скорочтение, которое действительно можно использовать

Reading time9 min
Views243K
Reedy – продвинутая реализация технологии скоростного чтения

В последнее время наблюдается рост интереса к скорочтению на основе технологии RSVP. Однако большинство приложений и расширений на эту тему, при более близком знакомстве, увы, оказываются не очень удобны для ежедневного использования. А ведь в потенциале они могу помочь значительно экономить время и быстрее получать информацию. Мой друг OlegCherr решил доработать технологию, создав реализацию пригодную для постоянного использования, а я ему в этом помогаю. После двух месяцев постоянной практики чтения, тестирования, исследований и улучшений решил написать статью с разбором того, что получилось в результате, потому что результат, смею считать, будет интересен и другим. На текущий момент всё выполнено в виде расширения к браузеру Chrome и названо Reedy. Приложение под Android на подходе.
Подробности
Total votes 201: ↑195 and ↓6+189
Comments136

Скорочтение: работает или нет? Часть 1

Reading time8 min
Views94K
Можно ли прочесть «программу на лето» за неделю и изучить рекомендованную литературу к экзамену за одну ночь? Разбираемся в вопросе, который всегда был актуален для студентов.

Читать дальше →
Total votes 40: ↑39 and ↓1+38
Comments42

Интересные вопросы на знание C# и механизмов .NET

Reading time4 min
Views35K
Предлагаю Вам ряд вопросов по C# и .NET в целом, которые могут пригодиться для проведения собеседования или просто помогут лучше понять, как работает платформа .NET. Здесь не будет обычных вопросов о том, чем отличаются ссылочные типы от значимых и тп. Я постарался выбрать самые интересные, над которыми стоит задуматься.
Читать дальше →
Total votes 20: ↑13 and ↓7+6
Comments50

Как обойти блокировки сайтов, не направляя весь трафик через VPN

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

На Хабре, да и не только на нем, есть множество инструкций, как обойти блокировки с помощью VPN, в частности, с помощью OpenVPN, есть и прекрасные пошаговые консольные скрипты установки OpenVPN. Однако чаше всего подобные инструкции подразумевают, что в результате весь интернет-трафик будет идти через VPN-соединение, что может быть неудобным по ряду причин. И в этом коротком посте я хотел рассказать, как настроить OpenVPN Access Server и обычный OpenVPN для обслуживания только заблокированных ресурсов.
Читать дальше →
Total votes 39: ↑36 and ↓3+33
Comments52

ТОП-9 YouTube-каналов для изучения английского языка

Reading time3 min
Views130K
Впереди пора отпусков и каникул, поэтому мы просто поделимся с вами полезными YouTube-каналами на случай, если у вас будет пара свободных минут и желание немного заняться английским.

// "Enjoy the Content" — from author with Love 
Читать дальше →
Total votes 49: ↑35 and ↓14+21
Comments14

Information

Rating
3,731-st
Location
Россия
Registered
Activity

Specialization

Fullstack Developer, Web Developer
Middle