Блог

Нагрузочное тестирование

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

Сегодня прочитал мнение, что нагрузочное тестирование нужно гнать на CI сервере. Если честно, то мне сложно это представить. CI сервер должен взять изменения, откомпилировать и запустить тесты. На больших проектах тесты могут выполняться достаточно долго, у меня они гнались два часа. Если после этого еще и гнать нагрузочное тестирование, то это отнимет слишком уж много времени. 

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

.NET Core проекты - не нужно явно добавлять файлы

Я не понимаю, зачем изначально в Visual Studio решили явно добавлять файлы в проект. Это делает файл csproj неоправданно большим и добавляет лишние конфликты при объединении разных веток кода (merge). 

Я люблю создавать файлы прямо в Total Commander, просто создаю .cs файл и сразу же пишу в нем код. Ах да, если кто пропустил, я часто пишу код в Notepad++. Я люблю и использую VS, но также часто пишу и в приплюснутом блокноте. 

Сейчас узнал, что в .NET Core больше не нужно будет добавлять файлы явно в проект. Я ни одного проекта под Web на Core не писал, все еще присматриваюсь к нему, но пока все нравится. VS сам должен подхватывать все изменения в файловой системе и добавлять файлы. Какая прелесть. 

Visual Studio против Visual Studio Code

Сегодня установил себе на Mac полноценный Visual Studio от Microsoft, запустил, посмотрел, и в голове возник вопрос - и нафига теперь Visual Studio Code? 

Visual Studio Code может быть полезен только тем, кто любит простые редакторы для работы с кодом, а не полноценные  IDE. В принципе, меня можно отнести к таким людям, я пишу код и там и там одновременно под Windows, а под Маком пока ничего не делал такого. 

Я вообще пока установил Visual Studio на Мак больше ради интереса. В ближайшее время ничего такого не планирую на нем делать. Хотя все возможно. 

Умение писать в блокноте - ретроград

Сейчас читаю журнал Хакер и наткнулся на комментарий компании Mirantis по поводу программистов, которые предпочитают писать в блокноте. 

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

Вот я не понял, каким образом программист, который будет писать код в блокноте, будет обузой и тянуть команду назад? Работая в Klick Health я писал код в notepad++ и у меня даже не стоял Visual Studio, но я писал быстрее и больше любого другого программиста в моей команде. Если не считать автокомплитера, то в VS больше ничего особого и нет, что позволяет писать код быстрее меня в блокноте. 

TFS проблемы при коммите

Работая с TFS я уже несколько раз замечал, что он не любит, когда мерджат или коммитят файлы, при этом локальная копия файла далеко не свежая. Особенно это заметно при больших файлах. У меня на работе в репозитории есть один достаточно большой файл, и если изменить его локально и попытаться коммитить, а на сервере уже есть измененная версия, то TFS автоматически будет мерджить удаленную версию с локальной. Коммит остановится и TFS в таких случаях даёт шанс осмотреться и одуматься, но иногда народ не проверяет результат мерджа, а просто нажимает кнопку commit снова. 

Я несколько раз видел, как TFS во время автоматического мерджа вытворял совершенно непонятные и не объяснимые вещи. Но как только я перед коммитом начал забирать последние изменения, то проблемы исчезли. Забираем последнее, в этот момент так же происходит мердж, но почему-то он проходит отлично и я ни разу не видел мусора в результате. Авто мердж при нажатии коммита уже не раз выдавал мне мусор. 

Моё отношение к чистому коду

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

Тесты для баз данных

Мне по работе понадобилось написать достаточно интересный SQL запрос c достаточно интересными расчетами. Запрос оказался размером со страницу A4, если его поместить в Word документ. Расчеты были достаточно сложными с большим количеством входных параметров. 

Если писать подобное на C# или Java, то любой опытный программист скажет, что такой код нужно покрыть тестами. Я погуглил в поисках тестов баз данных и первые несколько запросов вернули мне платные решения или сне подходящие мне, поэтому я решил написать свою собственную небольшую утилиту для тестирования запросов к базам данных, которую можно скачать здесь: https://github.com/mflenov/

Бесплатная книга по git

Сейчас в рассылке MSDN Flash от Microsoft увидел ссылку на бесплатную версию книги по git: https://book.git-scm.com/book/en/v2. Сам я ее не успел прочитать, но решил поделиться книгой. Может кто другой читал и скажет свое мнение.

Я люблю работать с git и все исходники моих сайтов я закинул в свой собственный git репозиторий сразу после того, как купил выделенный сервер. Мое вступление в git читай здесь: http://www.flenov.info/favorite.php?artid=47

А ты что используешь?, что люб ишь использовать?

Google просит не использовать alert, confirm и prompt

В компании Google просят не использовать функции alert/confirm/prompt, потому что они создают проблемы (https://developers.google.com/web/updates/2017/03/dialogs-policy). Ну я тут с гуглом вполне согласен, потому что эти функции блокируют ввод и злые дядьки в интернете уже не раз использовали их для всяких пакостей. 

Я согласен, что alert/confirm/prompt, но такая заметка от Google может говорить о том, что эта троица может скоро исчезнуть из браузера chrome. Блин, вот это будет для кого-то неожиданностью. Сколько сайтов уже использует эти функции и они начнут работать некорректно. 

А ты используешь alert/confirm/prompt? Лично я иногда использую, особенно на тех страницах, которые не видимы конечным пользователям. Например, в админках очень даже удобно написать alert и не выпендриваться. На пользовательских страницах я предпочитаю писать нормальные окна с сообщениями с использованием HTML, чтобы они выглядели в стиле самого сайта. 

Swift ворвался в 10 самых популярных языков

И снова заметка про Swift, потому что сегодня прочитал, что этот язык вырвался на 10-е место по популярности. В прошлом году язык программирования от Apple был на 14-м месте. Скачок произошел сразу на 4 позиции за год.

Я думаю, что дальше Swift скорей всего будет развиваться медленнее. В лучшем случае за год он будет набирать две позиции, да и не уверен, что он сможет подняться выше 5-й. Да даже выше 8-й позиции скорей всего не подымится.Свифту не хватает поддержки большего количества платформ, особенно Web.

Впереди скорей всего всегда будет C++, C#, Java, PHP и возможно даже Python.

О блоге

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

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповедания, на русском или английском языке.

Пишите мне