Главная » Архив меток: Проектирование и рефакторинг

Архив меток: Проектирование и рефакторинг

Доступ к данным в многопользовательских приложениях

Вопрос ограничения доступа к данным встает при разработке многопользовательских систем почти всегда. Основные сценарии следующие: ограничение доступа к данным для пользователей не прошедших аутентификацию ограничение доступа к данным для аутентифицированных, но не обладающих необходимыми привелегиями пользователей предотвращение несанкционированного доступа с помощью прямых обращений к API фильтрация данных в поисковых запросах и списковых элементах UI (таблицы, списки) предотвращение изменения данных, принадлежащих ...

Читать далее »

Consulo UI API от идеи до прототипа

Всем привет, давно я не писал статьи о жизни проекта на хабре, решил исправиться и начну пожалуй с того над чем сейчас работаю а именно Consulo UI API. NET(C#), Java Consulo — это форк IntelliJ IDEA Community Edition, который имеет поддержку . Начнем Q: Consulo UI API — что это такое? На деле — простой набор интерфейсов, который повторяет разные ...

Читать далее »

Consulo UI API от идеи до прототипа

Всем привет, давно я не писал статьи о жизни проекта на хабре, решил исправиться и начну пожалуй с того над чем сейчас работаю а именно Consulo UI API. NET(C#), Java Consulo — это форк IntelliJ IDEA Community Edition, который имеет поддержку . Начнем Q: Consulo UI API — что это такое? На деле — простой набор интерфейсов, который повторяет разные ...

Читать далее »

[Перевод] 25 ошибок начинающего программиста

Научитесь выявлять их. Выработайте привычки избегать их. Цель этой статьи не загнобить новичков за типичные ошибки, а научить выявлять их и избегать. Порядок перечисления – случайный. От переводчика Иногда бывает трудно объяснить простыми словами казалось бы банальные вещи: зачем использовать гит, в чем фишка инкапсуляции, зачем писать тесты, как планировать свой код, рефакторить чужой и т.д. Мне показалось, что в ...

Читать далее »

Как и почему мы написали свой ECS

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

Читать далее »

Принципы разработки программного обеспечения

Доброго времени суток, %habrauser%! Хочу поделиться небольшой статье посвященной самым известным принципам разработки программного обеспечения. Статья будет полезна скорее для начинающих разработчиков, потому что опытные вряд ли найдут здесь что-то новое. Но и новичкам тоже нужно что-то читать.Принципы разработки ПО — это набор определенных правил и рекомендаций, которым нужно следовать при написании исходного кода программы, если хочешь написать красивый, понятный ...

Читать далее »

[Из песочницы] Неполнотекстовый поиск: специфичные возможности Elasticsearch для сложных задач

Давным-давно — кажется, в прошлую пятницу — у нашей команды был проект, где понадобился поиск по ингредиентам, входящим в состав продуктов. Привет всем, меня зовут Андрей, и я разработчик. В самом начале проекта от поиска требовалось не много: показать все рецепты, в которых нужный ингредиент содержится в определенном количестве; повторить для N ингредиентов.Однако в дальнейшем количество продуктов и ингредиентов планировалось ...

Читать далее »

DDD на практике

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

Читать далее »

DevConf: из шаурмы в Symfony или миграция legacy

Под занавес прошлогоднего DevConf Артем Дегтярь и Павел Степанец рассказали как они мигрировали ERP-систему написанную на «голом» PHP5.3, работающую на винде, в Symfony + PHP7, и построили на его основе облачный сервис в сфере b2b. Видео доступно по ссылке доклада. А я представлю текстовый, немного сжатый, вариант. Мы работали над большой системой, которая позволяла создавать заявки и менять статусы, плюс ...

Читать далее »

Держим дизайн системы под контролем, используя изолированное юнит-тестирование

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

Читать далее »