Блог

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

Сейчас читаю журнал Хакер и наткнулся на комментарий компании 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.

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

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

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

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

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

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

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

Could not load file or assembly Newtonsoft.Json

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

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

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

О блоге

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

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

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

Пишите мне