SlideShare a Scribd company logo
1 of 14
MagicPlot
Опыт разработки интерфейса
узкоспециализированного ПО
для физиков
Александр Левантовский
ООО «Мэджикплот Системс»
Санкт-Петербург
IT Global Meetup #7
2 апреля 2016 г.
Санкт-Петербург
Михаил Петров, СПбГУ
MagicPlot
• 1 разработчик
• Дюжина евангелистов
• 9 лет разработки и 7 лет на рынке
• Около 115 тыс. строк кода (3,5 МБ)
• Платформа Java SE/Swing (да, у нас есть и кросс-платформенный jar-файл!)
• Разные ОС
• Платная (Pro) и бесплатная (Student) версии
• ЦА – физики-экспериментаторы и R&D – продвинутая аудитория
[Disclaimer]
В чем отличие? Интерфейс!
Честный подход к интерфейсу
Если быть честными, мы же все понимаем, что:
Командная строка обладает намного большей мощностью, чем
любой графический интерфейс
Честный подход к интерфейсу
Если быть честными, мы же все понимаем, что:
Командная строка обладает намного большей мощностью, чем
любой графический интерфейс
Если быть честными, мы же все понимаем, что:
Изучать синтаксис командной строки станут далеко не все, у нее
высокий порог вхождения
Меньше, но лучше
Что плохо у конкурентов?
• Перегруженность функциями
• Нет двойной буферизации графиков
(мерцание и рассыпание, лишние перерисовки)
• Неудобная навигация на графике
• Низкая степень интерактивности
• Диалоговые окна, меняющие конфигурацию «на ходу»
• Проблемы с «откаткой»
• Но: это общепризнанный стандарт. Вызывает привыкание!
• Пытаемся сделать современно не жалея процессор и память
Демо https://youtu.be/C2ord-dk358
Реализация
• Своя библиотека рисования графиков,
чтобы контролировать «каждый пиксель»
• Элементы управления, показывающие стили
• Контроль производительности
• Кстати: Java – не медленная!
Идеи/паттерны
1. Непосредственное манипулирование
2. Отсутствие «скрытого» состояния
3. Мгновенная реакция на действия
4. Графическая целостность
5. Многоуровневая откатка
6. Немодальные окна свойств
7. Обновление без кнопки «применить»
Процесс: Agile-Singleton
• Найти пользователей-евангелистов, заинтересованных в
разрабатываемой функции, трясти их, но сделать по-своему
• Тестировщики-пользователи эффективны в долгосрочной
перспективе, но неэффективны в краткосрочной
• Минимум внешних библиотек
Инструментарий
• Разработка: NetBeans IDE
• Эскизы окон: Pencil
• Баг-трекер: MantisBT
• Справка на сайте: DokuWiki
• Векторный редактор: MagicPlot
Литература
1. Алан Купер. Об интерфейсе. Основы проектирования
взаимодействия. – СПб.: Символ-Плюс, 2009
– Для думания в правильном направлении
2. Дженифер Тидвелл. Разработка пользовательских интерфейсов. –
СПб.: Питер, 2008
– Список паттернов проектирования интерфейса
http://designinginterfaces.com/firstedition/
3. Джейсон Фрейд, Дэвид Хайнемайер Хенссон. Rework: бизнес без
предрассудков. – М.: Манн, Иванов, Фербер, 2010
– Уверенность в непривычных действиях
Мировая наука по версии MagicPlot
Спасибо за внимание!
magicplot.com
vk.com/magicplot
facebook.com/magicplot
levantovsky@magicplot.com

More Related Content

What's hot

Программистский подход в дизайне
Программистский подход в дизайнеПрограммистский подход в дизайне
Программистский подход в дизайнеПрофсоUX
 
Алексей Рыбак (Badoo)
Алексей Рыбак (Badoo)Алексей Рыбак (Badoo)
Алексей Рыбак (Badoo)Ontico
 
Эвристическая оценка, или как решить проблемы в интерфейсе за час
Эвристическая оценка, или как решить проблемы в интерфейсе за часЭвристическая оценка, или как решить проблемы в интерфейсе за час
Эвристическая оценка, или как решить проблемы в интерфейсе за часAlexey Ryakin
 
Evelina Tananaeva
 Evelina Tananaeva Evelina Tananaeva
Evelina TananaevaAlexei Lupan
 
О фреймворках Backend conf 2016
О фреймворках Backend conf 2016О фреймворках Backend conf 2016
О фреймворках Backend conf 2016Roman Ivliev
 
Всему своё время Highload Junior 2016
Всему своё время   Highload Junior  2016Всему своё время   Highload Junior  2016
Всему своё время Highload Junior 2016Roman Ivliev
 
Как мы делаем Banki.ru
Как мы делаем Banki.ruКак мы делаем Banki.ru
Как мы делаем Banki.ruRoman Ivliev
 
Александр Сербул. Прикладное XP в «1С-Битрикс»: как развивать продукт более 1...
Александр Сербул. Прикладное XP в «1С-Битрикс»: как развивать продукт более 1...Александр Сербул. Прикладное XP в «1С-Битрикс»: как развивать продукт более 1...
Александр Сербул. Прикладное XP в «1С-Битрикс»: как развивать продукт более 1...ScrumTrek
 
Константин Назаров – Распараллеливание сборки Parallels Desktop для Mac
Константин Назаров – Распараллеливание сборки Parallels Desktop для MacКонстантин Назаров – Распараллеливание сборки Parallels Desktop для Mac
Константин Назаров – Распараллеливание сборки Parallels Desktop для Mac404fest
 
Максим Гуртовенко - The future is wild | HappyDev'12
Максим Гуртовенко - The future is wild | HappyDev'12Максим Гуртовенко - The future is wild | HappyDev'12
Максим Гуртовенко - The future is wild | HappyDev'12HappyDev
 
AgileCamp2015. Как создать решение, которое полюбят пользователи.
AgileCamp2015. Как создать решение, которое полюбят пользователи.AgileCamp2015. Как создать решение, которое полюбят пользователи.
AgileCamp2015. Как создать решение, которое полюбят пользователи.Octoberry
 
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестирования
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестированияCodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестирования
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестированияCodeFest
 
Как стать героем
Как стать героемКак стать героем
Как стать героемYakov Sirotkin
 
Алексей Трошин. Менеджер не нужен: быстрые шаблоны правильных коммуникаций
Алексей Трошин. Менеджер не нужен: быстрые шаблоны правильных коммуникацийАлексей Трошин. Менеджер не нужен: быстрые шаблоны правильных коммуникаций
Алексей Трошин. Менеджер не нужен: быстрые шаблоны правильных коммуникацийScrumTrek
 
Наталья Медведева - Тестировщик на все руки в Scrum-команде
Наталья Медведева - Тестировщик на все руки в Scrum-командеНаталья Медведева - Тестировщик на все руки в Scrum-команде
Наталья Медведева - Тестировщик на все руки в Scrum-командеSQALab
 
Артем Каличкин, Тактика и стратегия DevOps в Enterprise: роль вирусов в поеда...
Артем Каличкин, Тактика и стратегия DevOps в Enterprise: роль вирусов в поеда...Артем Каличкин, Тактика и стратегия DevOps в Enterprise: роль вирусов в поеда...
Артем Каличкин, Тактика и стратегия DevOps в Enterprise: роль вирусов в поеда...ScrumTrek
 
Тактика и стратегия DevOps в Enterprise. Роль вирусов в поедании слонов
Тактика и стратегия DevOps в Enterprise. Роль вирусов в поедании слоновТактика и стратегия DevOps в Enterprise. Роль вирусов в поедании слонов
Тактика и стратегия DevOps в Enterprise. Роль вирусов в поедании слоновArtyom Kalichkin
 
Стачка 2017: Golang – опыт промышленной разработки
Стачка 2017: Golang – опыт промышленной разработкиСтачка 2017: Golang – опыт промышленной разработки
Стачка 2017: Golang – опыт промышленной разработкиYuriy Vasiyarov
 
JS Lab2017_Алексей Зеленюк_Сбалансированное окружение для вашей продуктивности
JS Lab2017_Алексей Зеленюк_Сбалансированное окружение для вашей продуктивностиJS Lab2017_Алексей Зеленюк_Сбалансированное окружение для вашей продуктивности
JS Lab2017_Алексей Зеленюк_Сбалансированное окружение для вашей продуктивностиGeeksLab Odessa
 

What's hot (20)

Программистский подход в дизайне
Программистский подход в дизайнеПрограммистский подход в дизайне
Программистский подход в дизайне
 
Алексей Рыбак (Badoo)
Алексей Рыбак (Badoo)Алексей Рыбак (Badoo)
Алексей Рыбак (Badoo)
 
Эвристическая оценка, или как решить проблемы в интерфейсе за час
Эвристическая оценка, или как решить проблемы в интерфейсе за часЭвристическая оценка, или как решить проблемы в интерфейсе за час
Эвристическая оценка, или как решить проблемы в интерфейсе за час
 
Evelina Tananaeva
 Evelina Tananaeva Evelina Tananaeva
Evelina Tananaeva
 
О фреймворках Backend conf 2016
О фреймворках Backend conf 2016О фреймворках Backend conf 2016
О фреймворках Backend conf 2016
 
Всему своё время Highload Junior 2016
Всему своё время   Highload Junior  2016Всему своё время   Highload Junior  2016
Всему своё время Highload Junior 2016
 
Как мы делаем Banki.ru
Как мы делаем Banki.ruКак мы делаем Banki.ru
Как мы делаем Banki.ru
 
Александр Сербул. Прикладное XP в «1С-Битрикс»: как развивать продукт более 1...
Александр Сербул. Прикладное XP в «1С-Битрикс»: как развивать продукт более 1...Александр Сербул. Прикладное XP в «1С-Битрикс»: как развивать продукт более 1...
Александр Сербул. Прикладное XP в «1С-Битрикс»: как развивать продукт более 1...
 
Константин Назаров – Распараллеливание сборки Parallels Desktop для Mac
Константин Назаров – Распараллеливание сборки Parallels Desktop для MacКонстантин Назаров – Распараллеливание сборки Parallels Desktop для Mac
Константин Назаров – Распараллеливание сборки Parallels Desktop для Mac
 
Максим Гуртовенко - The future is wild | HappyDev'12
Максим Гуртовенко - The future is wild | HappyDev'12Максим Гуртовенко - The future is wild | HappyDev'12
Максим Гуртовенко - The future is wild | HappyDev'12
 
AgileCamp2015. Как создать решение, которое полюбят пользователи.
AgileCamp2015. Как создать решение, которое полюбят пользователи.AgileCamp2015. Как создать решение, которое полюбят пользователи.
AgileCamp2015. Как создать решение, которое полюбят пользователи.
 
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестирования
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестированияCodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестирования
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестирования
 
C++ idioms
C++ idiomsC++ idioms
C++ idioms
 
Как стать героем
Как стать героемКак стать героем
Как стать героем
 
Алексей Трошин. Менеджер не нужен: быстрые шаблоны правильных коммуникаций
Алексей Трошин. Менеджер не нужен: быстрые шаблоны правильных коммуникацийАлексей Трошин. Менеджер не нужен: быстрые шаблоны правильных коммуникаций
Алексей Трошин. Менеджер не нужен: быстрые шаблоны правильных коммуникаций
 
Наталья Медведева - Тестировщик на все руки в Scrum-команде
Наталья Медведева - Тестировщик на все руки в Scrum-командеНаталья Медведева - Тестировщик на все руки в Scrum-команде
Наталья Медведева - Тестировщик на все руки в Scrum-команде
 
Артем Каличкин, Тактика и стратегия DevOps в Enterprise: роль вирусов в поеда...
Артем Каличкин, Тактика и стратегия DevOps в Enterprise: роль вирусов в поеда...Артем Каличкин, Тактика и стратегия DevOps в Enterprise: роль вирусов в поеда...
Артем Каличкин, Тактика и стратегия DevOps в Enterprise: роль вирусов в поеда...
 
Тактика и стратегия DevOps в Enterprise. Роль вирусов в поедании слонов
Тактика и стратегия DevOps в Enterprise. Роль вирусов в поедании слоновТактика и стратегия DevOps в Enterprise. Роль вирусов в поедании слонов
Тактика и стратегия DevOps в Enterprise. Роль вирусов в поедании слонов
 
Стачка 2017: Golang – опыт промышленной разработки
Стачка 2017: Golang – опыт промышленной разработкиСтачка 2017: Golang – опыт промышленной разработки
Стачка 2017: Golang – опыт промышленной разработки
 
JS Lab2017_Алексей Зеленюк_Сбалансированное окружение для вашей продуктивности
JS Lab2017_Алексей Зеленюк_Сбалансированное окружение для вашей продуктивностиJS Lab2017_Алексей Зеленюк_Сбалансированное окружение для вашей продуктивности
JS Lab2017_Алексей Зеленюк_Сбалансированное окружение для вашей продуктивности
 

Viewers also liked

Batam sablon, Tempat Sablon Kaos Di Batam
Batam sablon, Tempat Sablon Kaos Di BatamBatam sablon, Tempat Sablon Kaos Di Batam
Batam sablon, Tempat Sablon Kaos Di Batamprinting mug batam
 
TOUR PACKAGE IN SOUTHERN REGION by LAND
TOUR PACKAGE IN SOUTHERN REGION by LANDTOUR PACKAGE IN SOUTHERN REGION by LAND
TOUR PACKAGE IN SOUTHERN REGION by LANDboba tour
 
Eratosthenes
EratosthenesEratosthenes
Eratostheneskonmaria
 
Puc Sp En FrançAis
Puc Sp   En FrançAisPuc Sp   En FrançAis
Puc Sp En FrançAisdciarii
 
Copie De Diapomirabilis
Copie De DiapomirabilisCopie De Diapomirabilis
Copie De DiapomirabilisBFMA
 
Cours massifs ouverts en ligne - Environnements personnels d'apprentissage co...
Cours massifs ouverts en ligne - Environnements personnels d'apprentissage co...Cours massifs ouverts en ligne - Environnements personnels d'apprentissage co...
Cours massifs ouverts en ligne - Environnements personnels d'apprentissage co...Denis Gillet
 
Türkiye'de Online Video ve Gerçekler (IAB Workshop)
Türkiye'de Online Video ve Gerçekler (IAB Workshop)Türkiye'de Online Video ve Gerçekler (IAB Workshop)
Türkiye'de Online Video ve Gerçekler (IAB Workshop)Sait Bugay
 
Bibliografía (1) de la asignatura Sacrosanctum Concilium
Bibliografía (1) de la asignatura Sacrosanctum ConciliumBibliografía (1) de la asignatura Sacrosanctum Concilium
Bibliografía (1) de la asignatura Sacrosanctum ConciliumMiguel Vargas
 

Viewers also liked (20)

torture_int_law
torture_int_lawtorture_int_law
torture_int_law
 
Batam sablon, Tempat Sablon Kaos Di Batam
Batam sablon, Tempat Sablon Kaos Di BatamBatam sablon, Tempat Sablon Kaos Di Batam
Batam sablon, Tempat Sablon Kaos Di Batam
 
TOUR PACKAGE IN SOUTHERN REGION by LAND
TOUR PACKAGE IN SOUTHERN REGION by LANDTOUR PACKAGE IN SOUTHERN REGION by LAND
TOUR PACKAGE IN SOUTHERN REGION by LAND
 
resume of y.e.s.
resume of y.e.s.resume of y.e.s.
resume of y.e.s.
 
Eratosthenes
EratosthenesEratosthenes
Eratosthenes
 
Guía los evangelios
Guía los evangeliosGuía los evangelios
Guía los evangelios
 
"Los Costos y la producción"
"Los Costos y la producción""Los Costos y la producción"
"Los Costos y la producción"
 
Videoconferencia para docencia
Videoconferencia para docenciaVideoconferencia para docencia
Videoconferencia para docencia
 
Puc Sp En FrançAis
Puc Sp   En FrançAisPuc Sp   En FrançAis
Puc Sp En FrançAis
 
Cours Lc 2
Cours Lc 2Cours Lc 2
Cours Lc 2
 
Courbes
CourbesCourbes
Courbes
 
Copie De Diapomirabilis
Copie De DiapomirabilisCopie De Diapomirabilis
Copie De Diapomirabilis
 
Cv April 2009
Cv April 2009Cv April 2009
Cv April 2009
 
B slides 11
B slides 11B slides 11
B slides 11
 
Cours massifs ouverts en ligne - Environnements personnels d'apprentissage co...
Cours massifs ouverts en ligne - Environnements personnels d'apprentissage co...Cours massifs ouverts en ligne - Environnements personnels d'apprentissage co...
Cours massifs ouverts en ligne - Environnements personnels d'apprentissage co...
 
Sesiones iii unidad
Sesiones iii unidadSesiones iii unidad
Sesiones iii unidad
 
Türkiye'de Online Video ve Gerçekler (IAB Workshop)
Türkiye'de Online Video ve Gerçekler (IAB Workshop)Türkiye'de Online Video ve Gerçekler (IAB Workshop)
Türkiye'de Online Video ve Gerçekler (IAB Workshop)
 
Stefa mujer
Stefa mujerStefa mujer
Stefa mujer
 
resume
resumeresume
resume
 
Bibliografía (1) de la asignatura Sacrosanctum Concilium
Bibliografía (1) de la asignatura Sacrosanctum ConciliumBibliografía (1) de la asignatura Sacrosanctum Concilium
Bibliografía (1) de la asignatura Sacrosanctum Concilium
 

Similar to MagicPlot @ UXSPb @ IT Global Meetup #7

разработка бизнес приложений (7)
разработка бизнес приложений (7)разработка бизнес приложений (7)
разработка бизнес приложений (7)Alexander Gornik
 
How to cook a blockchain and not get burned
How to cook a blockchain and not get burned How to cook a blockchain and not get burned
How to cook a blockchain and not get burned Alexander Syrotenko
 
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...IT-Portfolio
 
Практики масштабирования гибкой разработки
Практики масштабирования гибкой разработкиПрактики масштабирования гибкой разработки
Практики масштабирования гибкой разработкиAskhat Urazbaev
 
Расширяемая платформа для создания и управления автоматизированными тестами н...
Расширяемая платформа для создания и управления автоматизированными тестами н...Расширяемая платформа для создания и управления автоматизированными тестами н...
Расширяемая платформа для создания и управления автоматизированными тестами н...jazzteam
 
Daemons In Web on #devrus
Daemons In Web on #devrusDaemons In Web on #devrus
Daemons In Web on #devrusAlex Chistyakov
 
[jeeconf-2011] Java Platform Performance BoF
[jeeconf-2011] Java Platform Performance BoF[jeeconf-2011] Java Platform Performance BoF
[jeeconf-2011] Java Platform Performance BoFAleksey Shipilev
 
2013-03-02 02 Дмитрий Пашкевич. Код на стероидах
2013-03-02 02 Дмитрий Пашкевич. Код на стероидах2013-03-02 02 Дмитрий Пашкевич. Код на стероидах
2013-03-02 02 Дмитрий Пашкевич. Код на стероидахОмские ИТ-субботники
 
Собеседование на позицию Java Developer
Собеседование на позицию Java DeveloperСобеседование на позицию Java Developer
Собеседование на позицию Java DeveloperOlexandra Dmytrenko
 
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...HappyDev
 
Continuous deployment Smartling event
Continuous deployment Smartling eventContinuous deployment Smartling event
Continuous deployment Smartling eventViktoriya Pridatko
 
"Разрушаем .NET мифы" Сергей Калинец
"Разрушаем .NET мифы" Сергей Калинец"Разрушаем .NET мифы" Сергей Калинец
"Разрушаем .NET мифы" Сергей КалинецFwdays
 
Continuous Deployment (in Russian)
Continuous Deployment  (in Russian)Continuous Deployment  (in Russian)
Continuous Deployment (in Russian)Smartling
 
D2D Pizza JS Илья Беда "Куда мы все катимся?"
D2D Pizza JS Илья Беда "Куда мы все катимся?"D2D Pizza JS Илья Беда "Куда мы все катимся?"
D2D Pizza JS Илья Беда "Куда мы все катимся?"Dev2Dev
 
Developmentmanage3.0
Developmentmanage3.0Developmentmanage3.0
Developmentmanage3.0WRider
 
Инструменты разные нужны, инструменты разные важны
Инструменты разные нужны, инструменты разные важныИнструменты разные нужны, инструменты разные важны
Инструменты разные нужны, инструменты разные важныRoman Dvornov
 
Developmentmanage1.0
Developmentmanage1.0Developmentmanage1.0
Developmentmanage1.0HighLoad2009
 

Similar to MagicPlot @ UXSPb @ IT Global Meetup #7 (20)

разработка бизнес приложений (7)
разработка бизнес приложений (7)разработка бизнес приложений (7)
разработка бизнес приложений (7)
 
How to cook a blockchain and not get burned
How to cook a blockchain and not get burned How to cook a blockchain and not get burned
How to cook a blockchain and not get burned
 
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...
 
Практики масштабирования гибкой разработки
Практики масштабирования гибкой разработкиПрактики масштабирования гибкой разработки
Практики масштабирования гибкой разработки
 
Расширяемая платформа для создания и управления автоматизированными тестами н...
Расширяемая платформа для создания и управления автоматизированными тестами н...Расширяемая платформа для создания и управления автоматизированными тестами н...
Расширяемая платформа для создания и управления автоматизированными тестами н...
 
Scrum Wars
Scrum WarsScrum Wars
Scrum Wars
 
Daemons In Web on #devrus
Daemons In Web on #devrusDaemons In Web on #devrus
Daemons In Web on #devrus
 
[jeeconf-2011] Java Platform Performance BoF
[jeeconf-2011] Java Platform Performance BoF[jeeconf-2011] Java Platform Performance BoF
[jeeconf-2011] Java Platform Performance BoF
 
2013-03-02 02 Дмитрий Пашкевич. Код на стероидах
2013-03-02 02 Дмитрий Пашкевич. Код на стероидах2013-03-02 02 Дмитрий Пашкевич. Код на стероидах
2013-03-02 02 Дмитрий Пашкевич. Код на стероидах
 
Joker2014
Joker2014Joker2014
Joker2014
 
Собеседование на позицию Java Developer
Собеседование на позицию Java DeveloperСобеседование на позицию Java Developer
Собеседование на позицию Java Developer
 
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
 
Continuous deployment Smartling event
Continuous deployment Smartling eventContinuous deployment Smartling event
Continuous deployment Smartling event
 
"Разрушаем .NET мифы" Сергей Калинец
"Разрушаем .NET мифы" Сергей Калинец"Разрушаем .NET мифы" Сергей Калинец
"Разрушаем .NET мифы" Сергей Калинец
 
Continuous Deployment (in Russian)
Continuous Deployment  (in Russian)Continuous Deployment  (in Russian)
Continuous Deployment (in Russian)
 
D2D Pizza JS Илья Беда "Куда мы все катимся?"
D2D Pizza JS Илья Беда "Куда мы все катимся?"D2D Pizza JS Илья Беда "Куда мы все катимся?"
D2D Pizza JS Илья Беда "Куда мы все катимся?"
 
Developmentmanage3.0
Developmentmanage3.0Developmentmanage3.0
Developmentmanage3.0
 
Инструменты разные нужны, инструменты разные важны
Инструменты разные нужны, инструменты разные важныИнструменты разные нужны, инструменты разные важны
Инструменты разные нужны, инструменты разные важны
 
Developmentmanage1.0
Developmentmanage1.0Developmentmanage1.0
Developmentmanage1.0
 
Sivko
SivkoSivko
Sivko
 

MagicPlot @ UXSPb @ IT Global Meetup #7

  • 1. MagicPlot Опыт разработки интерфейса узкоспециализированного ПО для физиков Александр Левантовский ООО «Мэджикплот Системс» Санкт-Петербург IT Global Meetup #7 2 апреля 2016 г. Санкт-Петербург
  • 3. MagicPlot • 1 разработчик • Дюжина евангелистов • 9 лет разработки и 7 лет на рынке • Около 115 тыс. строк кода (3,5 МБ) • Платформа Java SE/Swing (да, у нас есть и кросс-платформенный jar-файл!) • Разные ОС • Платная (Pro) и бесплатная (Student) версии • ЦА – физики-экспериментаторы и R&D – продвинутая аудитория [Disclaimer] В чем отличие? Интерфейс!
  • 4. Честный подход к интерфейсу Если быть честными, мы же все понимаем, что: Командная строка обладает намного большей мощностью, чем любой графический интерфейс
  • 5. Честный подход к интерфейсу Если быть честными, мы же все понимаем, что: Командная строка обладает намного большей мощностью, чем любой графический интерфейс Если быть честными, мы же все понимаем, что: Изучать синтаксис командной строки станут далеко не все, у нее высокий порог вхождения
  • 6. Меньше, но лучше Что плохо у конкурентов? • Перегруженность функциями • Нет двойной буферизации графиков (мерцание и рассыпание, лишние перерисовки) • Неудобная навигация на графике • Низкая степень интерактивности • Диалоговые окна, меняющие конфигурацию «на ходу» • Проблемы с «откаткой» • Но: это общепризнанный стандарт. Вызывает привыкание! • Пытаемся сделать современно не жалея процессор и память
  • 8. Реализация • Своя библиотека рисования графиков, чтобы контролировать «каждый пиксель» • Элементы управления, показывающие стили • Контроль производительности • Кстати: Java – не медленная!
  • 9. Идеи/паттерны 1. Непосредственное манипулирование 2. Отсутствие «скрытого» состояния 3. Мгновенная реакция на действия 4. Графическая целостность 5. Многоуровневая откатка 6. Немодальные окна свойств 7. Обновление без кнопки «применить»
  • 10. Процесс: Agile-Singleton • Найти пользователей-евангелистов, заинтересованных в разрабатываемой функции, трясти их, но сделать по-своему • Тестировщики-пользователи эффективны в долгосрочной перспективе, но неэффективны в краткосрочной • Минимум внешних библиотек
  • 11. Инструментарий • Разработка: NetBeans IDE • Эскизы окон: Pencil • Баг-трекер: MantisBT • Справка на сайте: DokuWiki • Векторный редактор: MagicPlot
  • 12. Литература 1. Алан Купер. Об интерфейсе. Основы проектирования взаимодействия. – СПб.: Символ-Плюс, 2009 – Для думания в правильном направлении 2. Дженифер Тидвелл. Разработка пользовательских интерфейсов. – СПб.: Питер, 2008 – Список паттернов проектирования интерфейса http://designinginterfaces.com/firstedition/ 3. Джейсон Фрейд, Дэвид Хайнемайер Хенссон. Rework: бизнес без предрассудков. – М.: Манн, Иванов, Фербер, 2010 – Уверенность в непривычных действиях
  • 13. Мировая наука по версии MagicPlot

Editor's Notes

  1. С места в карьер покажу, как выглядит программа, о которой буду говорить. Немного стыдно показывать в такой аудитории спартанский вид и страшные иконки  В двух словах: физики-экспериментаторы, отделы R&D коммерческих компаний таблицы с данными обработка нелинейная аппроксимация векторые графики для публикаций в научных журналах всё это сохраняется в файл проекта.
  2. Что представляет собой MagicPlot внутри. - Физический факультет СПбГУ Если я буду говорить «мы», я имею в виду не себя, а компанию. Но на самом деле это я  В чем же отличие от конкурентов? Посколкьу математические алгоритмы стандартные, главное отличие – интерфейс. Да, нескромно  Типичный отзыв: программа-конкурент перегружена функциями, а MagicPlot позволяет работать проще быстрее. Но хотим еще таких-то функций! Дисклаймер: большинство из вас специализируется именно на интерфейсах, а я занимаюсь всем понемногу, поэтому многие вещи могут быть вам очевидны. Но я постараюсь рассказать интересно.
  3. Когда речь заходит о софте для обработки данных, часто говорят о программировании, скриптах, командной строке. …и всякий раз опускаются руки  Но на самом деле лишь часть людей готовы изучать программирование.
  4. …но потом я возвращаюсь к реальности! Бывает и симбиоз: графический интерфейс, которым можно управлять скриптами. У нас пока нет.
  5. Не будем называть имен… Перегруженность – неизбежное зло. Людям приходится обращаться и к другому софту. Другой софт пишут программисты, или просто слишком умные люди  Я написал «проблемы» с откаткой потому, что в некоторых программах ее нет совсем, а где-то она есть, но реализована не полностью или неудобно. Но почитав книгу «ReWork» мы знаем, что можно пробовать делать меньше и отхватить часть аудитории, которая будет довольна.
  6. Лучше один раз увидеть… Последовательность: Импорт Задание интервала Создание и расположение кривых, демо выделения кривых и курсора мыши Аппроксимация Вычитание кривых, затем вернуть на место Редактирование стиля текста, кривой, дополнительные настройки – в диалоговом окне Редактирование текста «на месте» Создание рисованных объектов, прилипание: показывает не только направляющие, но и объект, к которому липнет! Зум холста для рисования Демо задания своей функции (дело не только в графиках!): подсветка синтаксиса и автоматическое задание параметров Демонстрация откатки вперед-назад! Собрали всё лучшее: - Непосредственное манипулирование Подсвечивание рамки текста при наведении Редактирование на месте Привязка Мгновенное применение настроек Откатка Формулы с подсветкой
  7. Умные Книжки Про Бизнес: главное, на чем построен ваш бизнес, должно быть под вашим контролем и в вашей компетенции. Не отдавайте основную работу на аутсорсинг.