Pull to refresh
30
0
Артур Дробинский @Shaddix

User

Send message

MugenMvvmToolkit — кроссплатформенный MVVM фреймворк

Reading time18 min
Views28K

MugenMvvmToolkit


Введение


Паттерн MVVM хорошо известен, о нем написано много статей, наверное каждый NET-разработчик сталкивался или слышал об этом паттерне. Цель этой статьи – рассказать о собственной реализации этого паттерна.
MugenMvvmToolkit — является кроссплатформенной реализацией паттерна MVVM и на текущий момент поддерживает следующие платформы:
  • WinForms
  • WPF
  • Silverlight 5
  • Silverlight for WP7.1, WP8, WP8.1
  • Xamarin.Android
  • Xamarin.iOS
  • Xamarin.Forms
  • WinRT XAML framework for Windows 8 Store apps

Читать дальше →
Total votes 38: ↑36 and ↓2+34
Comments16

Предопределение развития информационных волн

Reading time3 min
Views18K
Привет хабр!

Я уже писал о возможности предугадывать развитие информационных волн и общественных трендов путём анализа диффузии инновации для конкретной выборки. Прошло какое-то время, я посоветовался с корифеями медиа-аналитики и статистики, приобрёл новые знания по теме и сформулировал новые идеи.

Начну по порядку.

Существует теория диффузии инноваций. Это теория, призванная своим существованием объяснить как, почему и с какой скоростью новые идеи и технологии распространяются в обществе. Главную суть теории, пожалуй, можно выразить одним графиком.


Само собой разумеется что процентное соотношение на графике приведено среднее, и в зависимости от выборки и тематики оно будет меняться вместе со всеми переменными. Куда важнее то, что форма графика функции всегда будет однообразной. Это в принципе понятно любому и означает лишь что всякому тренду, как и всему живому на земле, когда-то приходит начало и когда-то конец.
Читать дальше →
Total votes 47: ↑36 and ↓11+25
Comments9

Как перестать беспокоиться и начать работать?

Reading time9 min
Views29K
В прошлый раз, когда мы рассказывали о работе нашей команды, многих интересовали подробности организации работы непосредственно разработчиков, о чём мы сейчас и расскажем. Не стоит ожидать «срывов покровов» и открытий, ведь всё, что делают разработчики ни раз описывалось и обсуждалось, но то, что мы делаем в совокупности в реальных крупных проектах, делается не так уж часто (честно говоря, я этого вообще больше нигде не видел). То есть ожидать-то не стоит, но «срывы покровов» произойдут :)

Реальность такова, что Agile без правильных инженерных практик очень быстро закончится. Если вы не будете прилагать усилия, которые гарантируют высокий уровень качества разработки и состояния системы в целом, то по мере усложнения проекта контроль будет быстро утрачен. В результате сделать всё, что запланировано в итерации, у вас не получится, а о значимом релизе (значимый — значит, с какой-то новой функциональностью, которая будет доступна пользователям, а не просто рефакторинг) раз в месяц вы будете только мечтать, потому что стабилизация важного релиза будет занимать гораздо больше, чем месяц.

При правильном подходе разработка новой функциональности может происходить довольно быстро и фокус тут в том, как не сломать при этом то, что было сделано раньше или же быстро понять, что именно ты сломал, и быстро это исправить. Каждый раз тестировать все детали и нюансы вручную очень долго и неэффективно, ведь в Эльбе сегодня уже более 400 «экранов». И проблема не только в том, что тестеры должны все это проверить вручную — очень много времени уходит на сценарий «тестер добавил баг — разработчик исправил баг — тестер проверил и закрыл/переоткрыл баг». Можно долго рассуждать о том, как трудно сохранить быстрорастущую систему в стабильном состоянии, почему код превращается в гавно, почему страшно делать исправления и никто не берет на себя смелость сказать дату релиза даже с точностью до месяца (потому что это было бы безответственно), но гораздо интереснее узнать о том, как сделать так, чтобы было хорошо.

Читать дальше →
Total votes 90: ↑84 and ↓6+78
Comments41

Паттерны поведения

Reading time7 min
Views5.8K
(Эта заметка является завершением серии постов, в которую вошли «Технический долг», «Синдром рефакторинга» и «Эффект второй системы»)

В чем польза паттернов проектирования? (*) Это, прежде всего, повторное использование проверенных архитектурных решений, а также упрощение коммуникаций между разработчиками. Но ведь помимо паттернов проектирования существует и масса других паттернов: существуют паттерны кодирования, тестирования, модификации кода (a.k.a. рефакторинг), существуют архитектурные паттерны и многие другие. Поскольку мы, на самом деле, редко делаем что-либо по-настоящему новое, то проверенные типовые решения существуют для огромного количества областей. И поскольку большинство проблем, с которыми сталкиваются команды разработчиков, также не отличаются разнообразием, то и поведение этих людей также весьма однообразно.

«Технический долг», «синдром рефакторинга» и «эффект второй системы» — это типовые ситуации, с которыми периодически сталкивается команда разработчиков. И главная польза от них как раз и заключается в том, чтобы увидеть проблему и доказать ее существование нужным людям. Если вы сами поняли, что технический долг проекта слишком велик, то используя денежную метафору будет уже значительно проще доказать важность этой проблемы менеджеру или заказчику. А затем взвешенно показать ему альтернативные пути развития событий: (1) оставить все, как есть; (2) уменьшить технический долг путем разумного рефакторинга или (3) переписать все нафиг.
Читать дальше →
Total votes 34: ↑24 and ↓10+14
Comments8

Information

Rating
Does not participate
Date of birth
Registered
Activity