Pull to refresh
15
0
Сергей Вершинин @SVVer

Разработчик

Send message

Code review по-человечески (часть 1)

Reading time14 min
Views248K
В последнее время я читал статьи о лучших практиках code review и заметил, что эти статьи фокусируются на поиске багов, практически игнорируя другие компоненты ревью. Конструктивное и профессиональное обсуждение обнаруженных проблем? Неважно! Просто найди все баги, а дальше само сложится.

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

Моя революционная книга обучит вас проверенным техникам по выявлению максимального количества недостатков в своём партнёре. Книга не затрагивает следующие области:

• Обсуждение проблем с сочувствием и пониманием.
• Помощь партнёру в устранении недостатков.

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

Как вам нравится такая книжка? Предполагаю, что она вам не очень по душе.
Читать дальше →
Total votes 39: ↑38 and ↓1+37
Comments36

Необразованная молодёжь. Ответ преподавателя-совместителя

Reading time5 min
Views68K

30 сентября пользователь aleshqqa1337 опубликовал искренний и, в целом, правильный пост "Необразованная молодёжь". Я понял, что не могу не ответить. Писал комментарий, писал… И в итоге решил написать пост.


Кратко о себе (это важно): работаю программистом-исследователем в сфере ИБ. Сейчас в крупной российской компании, до этого в двух банках, ещё до этого в небольшой инновационной ИБ компании. Преподаю в МГТУ им.Баумана более трёх лет… И тоже много что насмотрелся.


Тем не менее "угол зрения" aleshqqa1337 на мой взгляд немного не правильный. Это статья написана не для критики, а скорее для того чтобы дополнить картину того, что в целом происходит с техническим образованием в России.


Дальше читать
Total votes 213: ↑206 and ↓7+199
Comments618

Может ли машина научить английскому языку?

Reading time5 min
Views17K


Биткоин-бот имени Дональда Трампа, победа AlphaGo над одним из сильнейших игроков в го Ли Седолем, изучение английского языка — что объединяет эти три ситуации? Везде в той или иной степени присутствует машинное обучение.

Компьютер может не только генерировать сюжетную канву, как Scheherazade, или отвечать на письма вместо пользователей, как Google Smart Reply, но и создавать идеальные учебники английского языка.
Читать дальше →
Total votes 17: ↑13 and ↓4+9
Comments10

Пять советов тому кто публикует свой .Net проект на GitHub

Reading time2 min
Views15K
GitHub Octocat Professor

Статья рассчитана в первую очередь на новичков и тех кто только собирается опубликовать свой первый проект на GitHub. Те у кого уже есть опубликованные проекты также могут почерпнуть что-то полезное и написать свои лучшие практики в комментариях. В статье представлены пять простых советов как улучшить ваш GitHub проект.

Читать дальше →
Total votes 28: ↑16 and ↓12+4
Comments13

Векторная графика бесплатно — подборка сайтов

Reading time3 min
Views418K
У векторной графики много преимуществ. В отличие от растровых, векторные изображения более гибкие, легко масштабируются, сохраняют качество и т.д. Ниже представлена подборка веб-ресурсов с бесплатными векторными иконками, символами и картинками.

1. Freepik


www.freepik.com

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



Читать дальше →
Total votes 41: ↑34 and ↓7+27
Comments3

Подготовка ASP.NET 5 (Core) проекта и DNX окружения для участия в хакатоне в рамках hack.summit() 2016 на Koding.com

Reading time5 min
Views8.6K
Решили мы с другом поучаствовать в мировом хакатоне, проходящем в рамках hack.summit() 2016. На хабре есть статья посвящённая этому событию.

В правилах на сайте было сказано, что финальный проект должен будет находится на виртуальной машине Кодинга, и всё бы хорошо, да только вот платформа Кодинга использует в качестве операционной системы Ubuntu, а мы пишем на технологиях майкрософта. Встал вопрос отказа от участия или испытания asp.net 5 на coreclr. Выбрали второе и началось более близкое знакомство с новшествами появившимися в этой версии.

На сайте майкрософта дана в общем-то понятная инструкция как установить dnx для Linux (по счастью как раз для Ubuntu 14.04), хотя с некоторыми проблемами пришлось столкнуться, как говорится «первый блин — комом», поэтому хотелось бы привести ниже последовательность шагов которая привела к рабочему результату.


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

Entity Framework Code First в командной работе

Reading time10 min
Views33K
От переводчика: Прекрасная статья на понимание механизма миграций в Entity Framework 6 и путей решения конфликтов миграций при работе в команде. Оригинал статьи: Code First Migrations in Team Environments.

Эта статья предполагает, что вы знакомы с Entity Framework и с основами работы с ним. Иначе сначала вам нужно прочитать Code First Migrations, прежде чем продолжить.

Налейте чашечку кофе, вам нужно прочитать всю статью


В командной работе проблемы в основном связаны со слиянием миграций, созданных двумя разработчиками в их локальных базах данных. В то время как шаги, для решения этих проблем довольно просты, они требуют, четкого представления о том, как работают миграции. Пожалуйста, не торопясь, прочитайте внимательно всю статью.
Читать дальше →
Total votes 13: ↑11 and ↓2+9
Comments3

Идеальный UI фреймворк

Reading time22 min
Views95K

Здравствуйте, меня зовут Дмитрий Карловский, и я… архитектор множества широко известных в узких кругах фреймворков. Меня никогда не устраивала необходимость из раза в раз решать одни и те же проблемы, поэтому я всегда стараюсь решать их в корне. Но прежде, чем их решить, нужно их обнаружить и осознать, что довольно сложно находясь в плену привычек, паттернов, стереотипов и "готовых" решений. Каждый раз сталкиваясь с проблемами в реализации задачи, я задумываюсь "что, блин, не так с этим инструментом?" и, конечно же, иду пилить свой инструмент: функцию, модуль, библиотеку, фреймворк, язык программирования, архитектуру ЭВМ… стоп, до последнего я ещё не докатился.


Речь сегодня пойдёт о JS-фреймворках. Нет, я не буду рассказывать про очередное готовое решение, не в том цель поста. Я лишь хочу посеять в ваших головах несколько простых идей, которые вы не встретите в документации ни к одному популярному фреймворку. А в конце мы постараемся сформировать видение идеальной архитектуры построения пользовательского интерфейса.


Взгляд под другим углом

Читать дальше →
Total votes 37: ↑31 and ↓6+25
Comments122

Как разработчику «влиться» в тему DevOps

Reading time5 min
Views26K


Сегодня мы решили взглянуть на ситуацию с Java- и Python-разработчиком, который задумался о «погружении» в тему DevOps в тот момент, когда он начал все больше отдаляться от привычных инструментов в пользу работы с Oracle Weblogic и shell-скриптами. Он решил совместить свой опыт в области разработки с новым опытом в работе с процессами.

Мы посмотрели на основные советы экспертов в области DevOps на Quora и дополнили рассказ примерами из опыта команды 1cloud.
Читать дальше →
Total votes 23: ↑20 and ↓3+17
Comments17

Angular 1.5: Компоненты

Reading time16 min
Views99K

Не так давно увидел свет релиз Angular 1.5, который привносит множество интересных нововведений. Важной особенностью

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

В данной статье я постараюсь осветить основные нововведения:

  • Компоненты!
  • Односторонние биндинги!
  • Мульти-слот трансклюды!

Полный список изменений доступен в репозитории ангуляра. Так же нас ждет небольшой примерчик использования перечисленных фич.
Читать дальше →
Total votes 21: ↑21 and ↓0+21
Comments18

Сравнение Angular 2 и Aurelia side by side

Reading time23 min
Views37K
image

Не так давно в мире web-разработки произошло важное событие — вышла бета Angular 2. И уже можно строить предположения о том, как он будет выглядеть после релиза.

Но оценка сама по себе, в вакууме, напоминает выбор электроники по рекламным буклетам производителя. Все фишки, которые есть в гаджете, упомянуты. А все, которых нет — не упомянуты и мы можем про их существование даже не задуматься. Поэтому гораздо эффективнее оценивать сравнивая с чем-то еще.

Так и родилась мысль сравнить Angular 2 с новым, но весьма амбициозным проектом Aurelia, который так же недавно вышел в бету. А заодно пополнить копилку Хабра информацией об этом фреймворке, поскольку пока ее гораздо меньше, чем информации об Angular 2.
Читать дальше →
Total votes 36: ↑33 and ↓3+30
Comments8

БЭМ-методология: с чего всё начиналось и зачем это всё нужно

Reading time13 min
Views231K
На Хабре уже много писали о методологии БЭМ, выросшей в Яндексе. И мы решили, что пора системно рассказать о том, откуда она появилась и что сделало БЭМ таким, каким мы его знаем. Думаем, это будет интересно не только тем, кто уже использует БЭМ, но и тем, кто считает, что эта методология не подходит для их проектов. Возможно, они увидят, что мы решали проблемы, похожие на их собственные, и найдут что-то полезное для себя.

image

Конечно, все началось с собственных потребностей Яндекса. Вместе с тем, как он рос, росло и количество сотрудников, которые занимаются фронтендом. Постепенно команда увеличилась настолько, что стало очевидно — без единых стандартов работать будет сложно. К тому же, мы находимся в офисах Яндекса в разных городах. Возникла идея создать общую методологию, которая поможет организовать процессы в большой команде, работающей над разными проектами. А главное то, что мы хотели не только упорядочить и ускорить разработку, но и снизить порог входа в проект для нового разработчика.
Читать дальше →
Total votes 73: ↑58 and ↓15+43
Comments100

Создание архитектуры программы или как проектировать табуретку

Reading time25 min
Views681K
Взявшись за написание небольшого, но реального и растущего проекта, мы «на собственной шкуре» убедились, насколько важно то, чтобы программа не только хорошо работала, но и была хорошо организована. Не верьте, что продуманная архитектура нужна только большим проектам (просто для больших проектов «смертельность» отсутствия архитектуры очевидна). Сложность, как правило, растет гораздо быстрее размеров программы. И если не позаботиться об этом заранее, то довольно быстро наступает момент, когда ты перестаешь ее контролировать. Правильная архитектура экономит очень много сил, времени и денег. А нередко вообще определяет то, выживет ваш проект или нет. И даже если речь идет всего лишь о «построении табуретки» все равно вначале очень полезно ее спроектировать.

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

Хотелось разобраться, что вообще в себя включает процесс создания архитектуры программы, какие задачи при этом решаются, какие критерии используются (чтобы правила и принципы перестали быть всего лишь догмами, а стали бы понятны их логика и назначение). Тогда будет понятнее и какие инструменты лучше использовать в том или ином случае.

Данная статья является попыткой ответить на эти вопросы хотя бы в первом приближении.
Читать дальше →
Total votes 88: ↑85 and ↓3+82
Comments45

5 типичных ошибок при работе с Amazon Web Services

Reading time4 min
Views18K


Мы в «Латере» занимаемся созданием биллинга для операторов связи. В блоге на Хабре мы не только рассказываем об особенностях нашей системы и деталях ее разработки (например, обеспечении отказоустойчивости), но и публикуем материалы о работе с инфраструктурой в целом. Разработчик и системный архитектор Михаель Виттиг (Michael Wittig) написал в блоге Cloudonout интересный материал о наиболее распространенных ошибках при работе с сервисом AWS (Amazon Web Services). Мы представляем вашему вниманию основные тезисы этой заметки.
Читать дальше →
Total votes 15: ↑13 and ↓2+11
Comments5

Отладка и профилирование в Visual Studio 2015

Reading time7 min
Views23K


В Visual Studio 2015 были заметно улучшены инструменты для отладки и диагностики .NET-приложений. Пожалуй, самым значимым нововведением стал Diagnostic Tools Hub, позволяющий выполнять профилирование в ходе отладки. Давайте посмотрим, какие же новые возможности появились в VS 2015.
Читать дальше →
Total votes 20: ↑18 and ↓2+16
Comments1

Visual Studio Online: непрерывная интеграция и тестирование

Reading time10 min
Views20K


Visual Studio Online, как и Team Foundation Server 2015, обладает возможностями для реализации процесса непрерывной интеграции.
 
В этой статье мы рассмотрим пример использования Visual Studio Online (VSO) с репозиторием Git, а также способы настройки процессов непрерывной интеграции, тестирования и автоматического развертывания.
 
Настройка сервиса Visual Studio Online один из самых быстрых способов для организации и планирования процесса сборки и развертывания приложений для различных платформ. Сервис в течение нескольких минут развернется и запустится на нашей облачной инфраструктуре без необходимости установки или настройки на отдельном сервере.
Читать дальше →
Total votes 20: ↑18 and ↓2+16
Comments4

Распарсить HTML в .NET и выжить: анализ и сравнение библиотек

Reading time8 min
Views125K

В ходе работы над одним домашним проектом, столкнулся с необходимостью парсинга HTML. Поиск по гуглу выдал комментарий Athari и его микро-обзор актуальных парсеров HTML в .NET за что ему огромное спасибо.

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

Сегодня я протестирую популярные, на данный момент, библиотеки для работы с HTML, а именно: AngleSharp, CsQuery, Fizzler, HtmlAgilityPack и, конечно же, Regex-way. Сравню их по скорости работы и удобству использования.


TL;DR: Код всех бенчмарков можно найти на github. Там же лежат результаты тестирования. Самым актуальным парсером на данный момент является AngleSharp — удобный, быстрый, молодежный парсер с удобным API.

Тем, кому интересен подробный обзор — добро пожаловать под кат.
Читать дальше →
Total votes 31: ↑26 and ↓5+21
Comments36

Готовим ASP.NET 5, выпуск №7: подробнее про работу с Gulp

Reading time6 min
Views15K
Мы продолжаем нашу колонку по теме ASP.NET 5 публикацией от Дмитрия Сикорского ( DmitrySikorsky) — руководителя компании «Юбрейнианс» из Украины. В этой статье Дмитрий подробнее рассказывает о сценариях применения с ASP.NET 5 популярного средства Gulp. Предыдущие статьи из колонки всегда можно прочитать по ссылке #aspnetcolumn — Владимир Юнев
До появления ASP.NET 5 я никогда не использовал такие инструменты, как Gulp, поэтому пришлось уделить некоторое время и разобраться, что же это такое, когда я создал свой первый проект на этой платформе (правда, тогда там еще был Grunt, но это не важно). Не стану вдаваться в базовые вещи, которые уже и так везде достаточно подробно описаны (подразумеваю, что в вашем проекте уже есть Gulpfile.js и вы можете выполнять задания из него, используя диспетчер выполнения задач Visual Studio 2015), а сразу перейду к делу и на практике покажу, как можно использовать Gulp для автоматизации всего-всего в вашем проекте на ASP.NET 5.


В статье будут приведены фрагменты файла Gulpfile.js тестового проекта AspNet5Gulpization, который целиком лежит тут: https://github.com/DmitrySikorsky/AspNet5Gulpization.

Вступление


Вы наверняка знаете, для чего используется новая папка wwwroot. На самом деле, с ее появлением я немного по-новому взглянул на скрипты, стили и картинки. А именно, как и серверный код сайта, теперь я разделяю их на исходники и готовые к публикации объекты.
Читать дальше →
Total votes 21: ↑18 and ↓3+15
Comments13

Postgres NoSQL лучше, чем MongoDB?

Reading time7 min
Views88K
В целом, системы управления реляционными базами данных были задуманы как «один-размер-подходит-всем решение для хранения и получения данных» на протяжении десятилетий. Но растущая необходимость в масштабируемости и новые требования приложений создали новые проблемы для традиционных систем управления РСУБД, включая некоторую неудовлетворенность подходом «один-размер-подходит-всем» в ряде масштабируемых приложений.

Ответом на это было новое поколение легковесных, высокопроизводительных баз данных, созданных для того, чтобы бросить вызов господству реляционных баз данных.
Читать дальше →
Total votes 69: ↑41 and ↓28+13
Comments72

Анализ ключевых показателей производительности — часть 2, про анализ метрик пользовательских, бизнесовых и приложения

Reading time15 min
Views15K
Мы продолжаем публикацию перевода по тестированию и анализу производительности от команды Patterns&Practices о том, с чем нужно есть ключевые показатели производительности. За перевод спасибо Игорю Щегловитову из Лаборатории Касперского. Остальные наши статьи по теме тестирования можно найти по тегу mstesting

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

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

Итак,

Как собирать пользовательские метрики?..

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

Information

Rating
Does not participate
Location
Уфа, Башкортостан(Башкирия), Россия
Registered
Activity