Как стать автором
Обновить
0
Виктор @lomik248read⁠-⁠only

Пользователь

Отправить сообщение

Git: советы новичкам – часть 1

Время на прочтение8 мин
Количество просмотров141K
В Playrix приходит много новых сотрудников и большинство из них не работали с Git. Особенно это касается гейм-дизайнеров и художников. Хотя и для программистов это не редкость – опыт работы с другими системами контроля версий не слишком помогает. Например, часто встречается опыт работы с SVN. Но Git заметно отличается по идеологии. Заучить, какие кнопки нажимать, в большинстве случаев не сложно, но шаг в сторону – и уже трудно понять, что происходит.



Поэтому мы решили написать ознакомительный материал. Мы поговорим о системе контроля версий и логике её работы, с самых азов. С Git можно работать с помощью  разных клиентов, потому в статье не пойдет речь об интерфейсе пользователя. Это может показаться непривычным, но это сделано намеренно. Вместо этого мы сфокусируемся на рабочем каталоге, коммитах, ветках, командах pull, push и прочих. Когда вы разберетесь в этих понятиях, вам останется выбрать один из Git-клиентов и освоить его интерфейс.
Читать дальше →
Всего голосов 35: ↑32 и ↓3+29
Комментарии45

Январская починка дыр в .NET Framework и Core

Время на прочтение5 мин
Количество просмотров15K

Аккурат к концу новогодних каникул в России, 9-го января, Microsoft выпустили обновления, исправляющие CVE-2018-0786 и CVE-2018-0764. Починили так, что кое-где ещё и сломали. В этом коротком посте мы ещё раз вспомним, что это такое и что нам теперь делать.


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


Читать дальше →
Всего голосов 41: ↑38 и ↓3+35
Комментарии15

Как я возвращал украденный домен популярного сайта

Время на прочтение13 мин
Количество просмотров47K
В 2008 году создал сайт, который, спустя время, превратился в водно-моторное сообщество, объединяющее тысячи любителей моторных лодок и катеров. В сезон, посещаемость ресурса превышала 10 000 человек в сутки и кто-то решил, что сайт ему нужнее.

Получив доступ в админ-панель моего регистратора (r01.ru), вор перенес домен к другому (internet.bs) на свой аккаунт. База данных и файлы обманным путем были получены у хостера.

Я потерял проект, над которым работал около 9 лет. Вернуть домен получилось лишь через 8 месяцев.
Читать дальше →
Всего голосов 149: ↑149 и ↓0+149
Комментарии117

Еще немного о валидации в ASP.NET

Время на прочтение3 мин
Количество просмотров11K
В прошлый раз я перенес часть императивного кода в атрибут. Есть еще одна проверка, кочующая из одного файла в другой:

public class MoveProductParam
{
   public ProductId {get; set; }

   public CategoryId {get; set; }
}

//...
if(!dbContext.Products.Any(x => x.Id == par.ProductId))
    return BadRequest("Product not found");

if(!dbContext.Categories.Any(x => x.Id == par.CategoryId ))
    return BadRequest("Category not found");

Мы достойны лучшего
public class MoveProductParam
{
   [EntityId(typeof(Product))]
   public ProductId {get; set; }

   [EntityId(typeof(Category))]
   public CategoryId {get; set; }
}
Читать дальше →
Всего голосов 13: ↑10 и ↓3+7
Комментарии53

Как вернуть украденный домен через арбитраж WIPO. Пошаговая инструкция

Время на прочтение6 мин
Количество просмотров14K
Итак, у вас украли домен. Вы обнаружили это или утром, когда проверяли почту на смартфоне, или вечером, когда увидели на своем сайте чужую рекламу, потом зашли в админку, решив, что сайт взломали, но рекламного кода там не оказалось, и вы поняли, что DNS переписаны на другой сервер…

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


Вы сразу пишите в техпродержку регистратора и получаете ответ, что жалоба получена и будет рассмотрена в установленные сроки.
Читать дальше →
Всего голосов 56: ↑56 и ↓0+56
Комментарии52

Объединение .NET-сообществ

Время на прочтение5 мин
Количество просмотров7.7K


Вот уже несколько лет в России развивается движение открытых .NET-сообществ. Первопроходцем стало питерское сообщество SpbDotNet, стартовавшем в 2015 году. Последователем питерского сообщества стало московское сообщество MskDotNet, проводящее встречи с 2016 года. Разумеется, оба сообщества очень хорошо дружат и оказывают посильную взаимопомощь. С начала создания сообществ были проведены десятки встреч, рассказаны более сотни докладов. Отлично! Давайте немного поговорим о настоящем и будущем .NET движений.

День сегодняшний


За время существования наших замечательных коммьюнити были проведены десятки встреч, обсуждены тысячи вопросов, как в форме докладов, так и в форме живого общения в кулуарах. Многие познакомились с новыми коллегами, обзавелись полезными связями, нашли ответы на интересующие их вопросы, получили море позитива, а кто-то даже нашёл новых друзей. Те, кто по каким-либо причинам не посещают, или не могут посетить наши встречи вживую — смотрят наши видео на youtube. Кстати, на данный момент наш YouTube-канал пополняется записями и с MskDotNet и c SpbDotNet. На нём выложены уже более 70 видео с докладами. Звучит просто отлично!
Читать дальше →
Всего голосов 35: ↑35 и ↓0+35
Комментарии23

GitHub Flow

Время на прочтение4 мин
Количество просмотров102K

Увидев в очередной раз базворд GitFlow я психанул и решил перевести описание более простой и менее проблемной схемы работы с ветками под названием GitHub Flow. Именно её имеет смысл использовать по умолчанию, переходя к какой-то другой лишь в случае непреодолимых обстоятельств.


Создайте ветвь



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

Читать дальше →
Всего голосов 48: ↑32 и ↓16+16
Комментарии23

Анализируем локальные функции в C# 7

Время на прочтение9 мин
Количество просмотров31K
Добавление локальных функций в языке C# первоначально для меня было излишним. Прочитав статью в блоге SergeyT, я понял, что эта фича действительна нужна. Итак, кто сомневается в надобности локальных функций и кто еще не знает что это, вперед за знаниями!

Локальные функции — это новая возможность в C# 7, которая позволяет определять функцию внутри другой функции.
Читать дальше →
Всего голосов 36: ↑35 и ↓1+34
Комментарии19

Распределенные бекэнды для видеорекламы 2ГИС на .NET Core и Kubernetes

Время на прочтение6 мин
Количество просмотров7K
Привет!

Мы продолжаем рассказывать о компаниях-разработчиках, использующих технологии Microsoft в своих проектах. В сегодняшнем выпуске — компания 2ГИС, основной офис которой находится в холодном Новосибирске и к которой автор статьи питает самые теплые чувства.

2ГИС недавно закончили большой проект, используя ядром функциональности .NET Core, Kubernetes и много Linux. Я часто получаю вопросы о том, можно ли использовать .NET Core в продакшене, каков наш опыт использования его в полностью Open Source среде. Я попросил ребят рассказать, что да как. Читайте подробнее под катом, это стоит того — это один из первых публичных и больших проектов, которые построены на .NET Core, да еще и в полном Open Source вокруг.


Читать дальше →
Всего голосов 34: ↑32 и ↓2+30
Комментарии1

Кроссплатформенная новогодняя демка на .NET Core и Avalonia

Время на прочтение3 мин
Количество просмотров27K

"ААА! Пришло время переписывать на .NET Coreǃ", говорили они, WPF в комментариях обсуждали. Так давайте же проверим, можно ли написать кросс-платформенное GUI приложение на .NET / C#.



Новогоднее настроение навеяло идею сделать анимацию падающего снега. Были такие демки под DOS, горящий огонь, фракталы, снежок, падающий на ёлочку, и так далее.


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

Читать дальше →
Всего голосов 55: ↑52 и ↓3+49
Комментарии55

Исчерпывающий справочник по JavaScript для вашего следующего собеседования

Время на прочтение6 мин
Количество просмотров53K
Перевод статьи Gustavo Azevedo The Definitive JavaScript Handbook for your next developer interview.



JavaScript был и продолжает быть самым популярным языком программирования, согласно опросу Stack Overflow Survey. Неудивительно, что 1/3 всех вакансий требуют знания JavaScript. Поэтому, если вы планируете работать разработчиком в ближайшем будущем, то вам следует ознакомиться с этим черезвычайно популярным языком.

Цель публикации — собрать в одном месте все концепции JavaScript, которые часто встречаются на собеседовании.
Читать дальше →
Всего голосов 34: ↑23 и ↓11+12
Комментарии26

Исследование кортежей в C# 7

Время на прочтение6 мин
Количество просмотров42K
Типы System.Tuple были введены в .NET 4.0 с двумя существенными недостатками:

  1. Типы кортежей являются классами;
  2. Не существует языковой поддержки для их создания/деконструкции (deconstruction).

Чтобы решить эти проблемы, в C# 7 представлена новая возможность языка, а также новое семейство типов (*).

Сегодня, если вам нужно склеить два значения, чтобы вернуть их из функции или поместить два значения в хэш-набор, вы можете использовать типы System.ValueTuple и создать их с помощью удобного синтаксиса:
Читать дальше →
Всего голосов 18: ↑18 и ↓0+18
Комментарии14

Вы можете себе это позволить? Бюджет веб-производительности в реальном мире

Время на прочтение15 мин
Количество просмотров16K
Автор — Алекс Расселл, разработчик Chrome, Blink и веб-платформы в Google

TL;DR: бюджеты производительности — существенная, но недооценённая часть успешного продукта и здоровой команды. Большинство наших партнёров не осведомлены об условиях реального мира — и в результате выбирают не те технологии. Мы установили бюджет по времени пять и менее секунд до интерактивности сайта после первой загрузки, а также две или менее секунд при последующих загрузках. При соблюдении этих нормативов мы ограничены типичным устройством из реального мира и типичной сетевой конфигурацией. Это Android-смартфон за $200 на канале 400 Кбит/с, RTT 400 мс. Это означает бюджет ~130-170 КБ ресурсов критического пути, в зависимости от их состава: чем больше JS — тем меньше объём.

За последние несколько лет мы имели удовольствие работать с десятками команд. Работа оказалась просветляющей, иногда в очень неожиданных местах. Один из самых неожиданных результатов — частые случаи «западни JavaScript».


«Нам нужен новый термин для упущенных деловых возможностей из-за современного фронтенда. Может быть, “западня JavaScript”»?

Управленцы, которые дают добро на создание прогрессивных веб-приложений (PWA), часто основным мотивом называют практически беспроблемный охват новых пользователей. В то же время разработчики осваивают инструменты, которые делают возможной достижение такой цели. Никто не хотел плохого. Тем не менее, результаты «готового» проекта PWA часто требуют недель или месяцев болезненной переделки, чтобы обеспечить минимально приемлемую производительность.
Всего голосов 30: ↑29 и ↓1+28
Комментарии44

Немного про .NET Framework и .NET Core [плюс полезные ссылки]

Время на прочтение3 мин
Количество просмотров66K
Привет, Хабр! Версия ASP.NET Core основана на проектной модели .NET Core, которая поддерживает создание кросс-платформенных приложений в ОС Windows, Mac и Linux. При реализации проекта .NET Core вы также можете выбрать вариант .NET для своего приложения: .NET Framework (CLR), .NET Core (CoreCLR) или Mono. Какой вариант .NET подойдет вам? Кратко рассмотрим плюсы и минусы каждого и поделимся классными курсами по платформам.


Читать дальше →
Всего голосов 22: ↑16 и ↓6+10
Комментарии2

ААА! Пришло время переписывать на .NET Coreǃ

Время на прочтение5 мин
Количество просмотров30K

Все мы давно хотим перелезть на .NET Core, но постоянно что-то мешает. Например, ничего не поделаешь, когда не хватает важных API. В версии 2.0 процесс упростили благодаря .NET Standard 2.0, но это ещё не всё. Ну что ж, Microsoft-боги вняли нашим молитвам и завезли 20 000 API, доступных в виде одного-единственного пакета в NuGet!


Читать дальше →
Всего голосов 62: ↑53 и ↓9+44
Комментарии68

Как сдать сайт в аренду

Время на прочтение2 мин
Количество просмотров25K
Часто приходится сталкиваться с ситуацией, когда доменное имя зарегистрированно на физическое лицо (одного из собственников бизнеса), разработка сайта финансировалось со счета организации с оборотными средствами, а используется сайт в коммерческой деятельности другой компании.

Периодически клиенты просят перевести отношения сторон в юридическое русло, оформив договор аренды сайта. Однако не все так просто. С какими проблемами можно столкнуться при сдаче сайта в аренду читайте ниже.
Читать дальше →
Всего голосов 10: ↑10 и ↓0+10
Комментарии2

8 учебных проектов

Время на прочтение3 мин
Количество просмотров144K
«Мастер совершает больше ошибок, чем новичок — попыток»

Предлагаем 8 вариантов проектов, которые можно сделать «по фану», дабы получить реальный опыт разработки.

Проект 1. Клон Trello


image


Клон Trello от Indrek Lasn .

Что вы освоите:

  • Организация маршрутов обработки запросов (Routing).
  • Drag and drop.
  • Как создавать новые объекты (доски, списки, карточки).
  • Обработка и проверка входных данных.
  • Со стороны клиента: как использовать локальное хранилище, как сохранять данные в локальном хранилище, как читать данные из локального хранилища.
  • Со стороны сервера: как использовать базы данных, как сохранять данных в базе, как читать данные из базы.

Тут пример репозитория, сделанного на React+Redux.
Читать дальше →
Всего голосов 36: ↑30 и ↓6+24
Комментарии18

Взлом сайта с помощью другого сайта. Доверяй, но проверяй

Время на прочтение4 мин
Количество просмотров18K
Обратился к нам в компанию клиент, очередных горе разработчиков. Не могу мол понять, почему то сайт не работает. Хостинг вроде оплатил, домен продлен, что не так с сайтом совсем не знает.

После более подробной беседы, выяснилось:

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

Нам стало интересно, что же там такое происходит с сайтом, что он уже второй раз выходит из строя. Мы попросили клиента связаться со своим другом, на которого оформлен хостинг и узнать у него доступы к панели управления, а сами связались со службой технической поддержки хостинга, для уточнения причин неработоспособности сайта.
Читать дальше →
Всего голосов 24: ↑13 и ↓11+2
Комментарии25

Открытый веб-интерфейс для .NET (OWIN)

Время на прочтение6 мин
Количество просмотров14K
Привет, Хабр! ASP.NET Core поддерживает открытый веб-интерфейс для .NET (OWIN), а OWIN позволяет отвязывать веб-приложения от веб-серверов. Он определяет стандартный способ использования связующего ПО при обработке запросов и соответствующих ответов. Приложения ASP.NET Core и связующее ПО совместимы с приложениями, серверами и связующим ПО на базе OWIN. Подробнее об этой паре читайте под катом.


Читать дальше →
Всего голосов 12: ↑11 и ↓1+10
Комментарии9

Регрессионные тесты на утечки памяти, или как написать memory profiler для .NET приложений

Время на прочтение8 мин
Количество просмотров9.8K

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


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


Почему бы нам не применить такой же подход к утечкам памяти?


Читать дальше →
Всего голосов 10: ↑9 и ↓1+8
Комментарии12

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность