Блог

Стоит ли переходить на .NET Core?

Сейчас наверно у многих может стать вопрос - стоит ли переходить на .NET Core. Если попытаться ответить коротко, то ответ простой - Да. Если ответить чуть более развёрнуто, то ответ будет: да, стоит переходить на .NET Core. Ну а теперь уже самый развёрнутый ответ. 

Я пока еще не писал кода под .NET Core, но из того, что я видел, в платформу внесли правильные изменения. Везде (или почти везде), где когда-то сделали ошибки, сейчас вносятся изменения. Например, как я понял избавляются от глобального HttpContext, который принес народу больше проблем, чем преимуществ, особенно тем, кто использует юнит тесты.

За счёт того, что .NET Core реализована чуть более корректно, я уверен, что Майкрософт будет инвестировать в неё в ближайшее время очень много труда своих программистов. Не знаю сколько лет продержится эта версия, но точно не один год.

Эффективная отправка e-mail сообщений с сайта

Почему народ пытается отправлять с сайта письма сразу же? У пользователей же не взорвется мозг, если письмо будет отправлено через пару минут, а не мгновенно. В своей книге по большим сайтам я эту проблему как раз затрагивал, потому что это реальная проблема. 

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

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

Could not load file or assembly Newtonsoft.Json

Наверно самый популярны вопрос, который я получаю от программистов компаний, которых мне приходилось консультировать, это вопрос связанный с библиотекой Newtonsoft.Json - при запуске сайта не загружается Newtonsoft.Json. Это достаточно популярная библиотека, которая позволяет сериализовывать объекты в JSON, что сейчас популярно для Web, ведь с помощью этого формата удобно обмениваться данными между JavaScript и бакэндом. 

Но у библиотеки есть огромный недостаток - она развивается слишком быстро и слишком популярна. Да, это недостатки. Потому что все связи делают на определенную версию. Если ты сделал ссылку на версию 4.1, а также используешь другую библиотеку, которая ссылается на версию 5.0, то возникает конфликт между версиями.

При компиляции нужно убедится, что именно самая последняя версия попадает в папку bin. Выглядит просто? Но даже это не все программисты умудряются сделать. Нужно просто обновить свою версию до последней. 

Правильный переход на Microsoft Azure

Компания, которую я консультирую, планирует перевод своих мощностей в Microsoft Azure, чтобы можно было использовать больше мощностей облака Microsoft. Я им сделал уже три небольших оптимизации, они запустили только одну и явно увидели улучшения, но вместо продолжения оптимизации кода и запуска еще двух оптимизаций, они решили перейти в облако Microsoft.

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

Swift 3 снова изменился

Язык программирования Swift впервые был представлен меньше 3-х лет назад, в июне 2014-го года. За это время язык изменился до неузнаваемости, сейчас текущей версией является Swift 3. Три года, три версии, достаточно серьёзное и быстрое развитие. 

Что поражает, Apple продолжает менять язык. Они не стесняются убирать какой-то функционал и не стесняются изменять даже синтаксис. Причём совершенно не заботятся об обратной совместимости. 

Когда произошёл переход с версии Swift 1.0 на Swift 2.0 сильные изменения были ожидаемы и несовместимость в принципе оправдана. Но уже после трёх лет и третей версии не сохранять обратную совместимость - достаточно рискованно. 

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

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

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

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

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, чтобы они выглядели в стиле самого сайта. 

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

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

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

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

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

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

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

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

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

О блоге

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

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

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

Пишите мне