Рубрика «software architecture»
Развязываем игровой код с помощью паттерна Command, и дебажим, летая на машине времени
2018-03-07 в 9:38, admin, рубрики: C#, game development, Gamedev, patterns, software architecture, software engineering, unity3d, ооп, Программирование, Проектирование и рефакторинг, разработка игр, Совершенный кодПривет! Я пишу статьи, посвященные архитектуре в игровой разработке. В этой статье я хочу разобрать паттерн Команда (Command). Он многогранен, и может быть применен по-разному. Но я покажу, как сделать мой любимый трюк — машина времени для отладки изменений гейм стейта.
Эта штука сэкономила мне кучу времени в поиске и воспроизведении сложных багов. Она позволяет делать "снапшоты" игрового состояния, историю его изменения, и пошагово их применять.
Начинающие разработчики познакомятся с паттерном, а продвинутые, возможно, найдут трюк полезным.
Хотите узнать как это сделать? Прошу под кат.
Как я свой Redux писал
2017-05-06 в 20:35, admin, рубрики: design patterns, flux, javascript, Model View Controller, react.js, ReactJS, redux, redux-thunk, software architecture, Разработка веб-сайтовИли Охота на Кракена. В предыдущих заметках (тут и тут) я делился своим Braindump на тему различных архитектурных стилей, в частности Model-View-Controller и Flux.
Я отметил, что не увидел в лице Flux какой-то революции, этот шаблон не что-то новое. Я увидел в нем схожесть с Reenskaug-MVC 1979 года. Также, я упомянул, что решил убрать из своего кода Redux (одна из реализаций Flux). Мне кажется, эти моменты необходимо пояснить более развернуто. Моей целью не было убедить читателя в том, что Flux надо называть MVC, так же я не хотел сказать, что redux-модуль плох и от него нужно полностью отказаться.
Так как же относится тогда к Flux?
Для начала надо определится что же такое Flux. Во-первых это определенно архитектурный стиль, при чем на на данный момент, уже не только для клиентских web-приложений. Во-вторых это набор четко определенных компонентов и терминов.
Читать полностью »
Заменяем тестирование алгоритмов тестированием вносимых эффектов
2016-11-12 в 21:11, admin, рубрики: IT-стандарты, repository pattern, software architecture, solid, tddКак и ожидал, правило 8 о том, что не тестируем алгоритм методов в статье "Правила внедрения TDD в старом проекте" вызвало больше всего вопросов «как» и «зачем». В момент составления прошлой статьи мне показалось это очевидным, поэтому не остановился детальнее на этом моменте. Но т.к. вопросов возникло много, хочу описать своё видение. Поэтому под катом будет небольшой пример кода и два примера того, как его можно было бы протестировать.
Читать полностью »
Правила внедрения TDD в старом проекте
2016-08-30 в 16:13, admin, рубрики: .net, IT-стандарты, repository pattern, software architecture, solid, tddСтатья «Скользящая ответственность паттерна Репозиторий» подняла несколько вопросов, на которые очень сложно дать ответ. Нужен ли репозиторий, если абстрагироваться от технических деталей полностью невозможно? На сколько сложным репозиторий может быть, чтобы его написание оставалось целесообразным? Ответ на эти вопросы различается в зависимости от акцента, который делается при разработке систем. Наверно, самый сложный вопрос: нужен ли, вообще, репозиторий? Проблема «текучей абстракции» и рост сложности кодирования с увеличением уровня абстракции не позволяют найти решение, которое удовлетворяло бы оба лагеря. Например, в репортинге intention design приводит к созданию большого числа методов для каждого фильтра и сортировки, а generic решение создает большой оверхед по кодированию. Продолжать можно бесконечно…
Для более полного представления я взглянул на проблему абстракций со стороны применения их в уже готовом коде, в legacy code. Репозиторий, в таком случае, нас интересует только, как инструмент для достижения качественного и безбажного кода. Конечно, этот паттерн — не единственное, что необходимо для применения TDD практик. Наевшись «невкусной еды» в нескольких больших проектах и наблюдая за тем, что работает, а что нет, я вывел для себя несколько правил, которые мне помогают следовать TDD практикам. С удовольствием выслушаю конструтктивную критику и иные приёмы внедрения TDD.
Читать полностью »
Inversion of Control: Методы реализации с примерами на PHP
2014-11-29 в 12:40, admin, рубрики: dependency injection, inversion of control, ioc, laravel, php, software architecture, symfony 2, yii 2, Программирование, Проектирование и рефакторингО боже, ещё один пост о Inversion of Control
Каждый более-менее опытный программист встречал в своей практике словосочетание Инверсия управления (Inversion of Control). Но зачастую не все до конца понимают, что оно значит, не говоря уже о том, как правильно это реализовать. Надеюсь, пост будет полезен тем, кто начинает знакомится с инверсией управления и несколько запутался.
Software 3.0: тихая революция
2014-06-10 в 10:17, admin, рубрики: software architecture, Блог компании TopTechPhoto, Исследования и прогнозы в IT, разработка по, стартапы, управление проектами, метки: software architecture, разработка по, стартапыКоторый год все спрашивают всех о том, что же будет “the next big thing”. Что будет после веба, социальных сетей и облаков? По-моему, ответ валяется у нас под ногами, но мы никак не хотим его замечать. Просто потому что он не совсем такой, как нам нравится. Эта штука не такая простая, как все ожидают. Простых вещей больше не осталось: Instagram и Groupon – не самые сложные продукты – уже сделали.
Давайте попробуем взглянуть немного назад, скажем, лет на 35. Это было время появления первых доступных персональных компьютеров. Их уже можно было купить, но в силу странного интерфейса, понятного только очень усидчивым ребятам, пользоваться ими было довольно тяжело. Это была эра software 1.0. Время псевдографики и командной строки, время, когда появление цветного изображения на экране впечатляло больше, чем трюки Копперфильда. По понятным причинам компьютеры, в их тогдашнем виде, не могли стать по-настоящему массовыми. Софт тех времен был скорее научным и “гиковским”, но никак не персональным.
Затем пришла эра графических пользовательских интерфейсов, эра Windows, OS/2 и Mac OS. Компьютеры стали понятнее и люди начали их использовать для своих повседневных задач: создания документов и редактирования изображений. Это время software 2.0. Потом появился интернет, социальные сети и даже облачные вычисления, но софт, в большинстве случаев, остается таким же. Если вы сравните одну из первых версий MS Word и его современную инкарнацию, то обнаружите, что концептуально они практически не отличаются. То есть, возможностей стало больше, но это все еще заменитель карандаша и листа бумаги.
Читать полностью »
11-12 апреля. Online трансляция конференции Software People 2013
2013-04-11 в 5:17, admin, рубрики: agile, peopleware, software, software architecture, software development, Блог компании Software People, конференции, разработка, разработка по, метки: peopleware, software, software architecture, software development, конференции, разработка поДрузья!
11-12 апреля 2013 года проходит одно из самых значимых событий в мире разработки ПО — юбилейная международная конференция Software People. В этом году, конференция проходит в пятый раз, собирая под одной крышей высококлассных специалистов в области разработки ПО.
Читать полностью »