Об ИТ из Канады

Блог Михаила Флёнова - программист, блогер, автор нескольких скандальных книг какими-то глазами...

Программирование 288

Could not load file or assembly Newtonsoft.Json

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

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

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

Дата: 2017-01-11 08:08:15
Прочитать заметку


Сколько брать в час за работу программиста?

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

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

Дата: 2017-01-10 08:15:07
Прочитать заметку


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

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

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

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

Дата: 2016-12-12 21:58:24
Прочитать заметку


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

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

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

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

Дата: 2016-12-06 21:19:36
Прочитать заметку


Как отсортировать по возрасту

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

Дата: 2016-11-28 13:45:06
Прочитать заметку


Как подключится к SQL Server

Задача. Вы программист и умеете программировать на C# веб приложения, у вас есть RDP доступ любому серверу, включая сервер приложений и у вас стоит задача подключится к базе данных. Как найти имя сервера базы данных, имя пользователя и пароль для подключения?

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

Дата: 2016-11-15 14:59:06
Прочитать заметку


Меня бесят большие пустоты в коде

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

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

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

Дата: 2016-11-09 20:38:01
Прочитать заметку


.NET Core быстрый взгляд

Вчера я создал первый проект под .NET Core, потому что сейчас эта платформа уже более-менее стабилизировалось и можно начинать на нее смотреть. До это я как-то попробовал поставить Visual Studio Code и .NET Core на свой мак, но даже не было времени разобраться с этим.

Дата: 2016-10-23 10:28:30
Прочитать заметку


Архитекторы есть только в .NET или Java

Мне постоянно на почту приходят письма с новыми предложениями о работе и я для себя вчера отметил, что позиции архитекторов есть только у Java и .NET. Я не помню, чтобы мне хоть раз попадали в ящик позиции архитекторов в PHP сфере. 

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

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

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

Дата: 2016-10-12 07:12:13
Прочитать заметку


Рефакторинг

От качества кода зависит многое – качество конечного продукта (программы, сайта, мобильного приложения…), стоимость дальнейшей поддержки и даже интерес работы над проектом. 

Сейчас я работаю над проектом, код которого написан еще в 2007-м году и за 9 лет его постепенно убивали и превращали в откровенный мусор. Работая с таким кодом совершено не испытываешь никакого удовольствия. 

Сейчас читаю статью: Главный вопрос программирования, рефакторинга и всего такого и (http://www.viva64.com/ru/b/0391/) по мере чтения решил поделиться своими мыслями. Автор на примерах различных реальных ситуаций показывает преимущества программы статического анализатора PVS-Studio и заодно показывает интересные вещи, которые будут полезны любому программисту. 

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

Дата: 2016-09-08 10:42:44
Прочитать заметку


О блоге

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

Внимание!

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

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

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

Пишите мне