JS-тусовка сейчас переживает взрывообразный рост. Огромное количество людей приходят к нам из других языков программирования, "с улиц" и университетов. Все мы превосходно знаем Angular, восторгаемся React и хвалим Ember.
Чего же мне не хватает для полного счастья? Почему каждый раз, будучи привлеченным как консультант, я вынужден повторять очевидные вещи? Как стать лучше как программист не изучая новых технологий, фреймворков и прочего хайпа
Детали доклада:
Я разберу типичные ошибки JS-программистов, с которыми мне пришлось столкнуться за 3 года работы собственной компании и консалтинга, и покажу, как "код" мешает нам увидеть реальную картину того, что происходит в отрасли. Постараюсь по минимуму задевать избитую тему soft skills.
Скорее этот доклад - набор наболевших историй "из жизни", каждая из которых должна заставить слушателя задуматься. И да, почти все "со вкусом JS" - часто камнем преткновения становятся особенности языка, поддержка браузеров и т.д. - всё то, что так знакомо всем фронтендерам.
JS-тусовка сейчас переживает взрывообразный рост. Огромное количество людей приходят к нам из других языков программирования, "с улиц" и университетов. Все мы превосходно знаем Angular, восторгаемся React и хвалим Ember.
Чего же мне не хватает для полного счастья? Почему каждый раз, будучи привлеченным как консультант, я вынужден повторять очевидные вещи? Как стать лучше как программист не изучая новых технологий, фреймворков и прочего хайпа
Детали доклада:
Я разберу типичные ошибки JS-программистов, с которыми мне пришлось столкнуться за 3 года работы собственной компании и консалтинга, и покажу, как "код" мешает нам увидеть реальную картину того, что происходит в отрасли. Постараюсь по минимуму задевать избитую тему soft skills.
Скорее этот доклад - набор наболевших историй "из жизни", каждая из которых должна заставить слушателя задуматься. И да, почти все "со вкусом JS" - часто камнем преткновения становятся особенности языка, поддержка браузеров и т.д. - всё то, что так знакомо всем фронтендерам.
Доклад предназначен для проектировщиков и дизайнеров интерфейсов.
Что полезного дизайнеру может пригодится из мира программирования? Громкие термины про контроль версий, архитектуру, чистый код и т.д. это все чуждые слова или повод перенять опыт? Настолько ли суровы программисты чтобы испортить своими подходами творческую суть дизайнера?
Эвристическая оценка, или как решить проблемы в интерфейсе за часAlexey Ryakin
Моё выступление на Profsoux 2016: как полагается вести эвристическую оценку, и как это получилось в нашей компании. Сократили, ускорили, результат - весело и быстро.
Картинки к моему рассказу о том, что такое фреймворки и с чем их едят, что лучше не есть и как выбрать приправы для приготовления. Тезисы тут: http://backendconf.ru/2016/abstracts/2123.html
Картинки к моему рассказу о том, что не всегда круто спешить и бежать впереди паровоза при оптимизации и внедрении новых модных решений. Тезисы тут: http://junior.highload.ru/2016/abstracts/2221.html
Картинки к моему рассказу о том, как мы делаем Банки.ру. Некоторые слайды очень неоднозначны без текста. Тезисы тут: http://nastachku.ru/lectures?lecture_id=630#lecture_630
Видео тут https://www.youtube.com/watch?v=m5QuiTZwMrU
Александр Сербул. Прикладное XP в «1С-Битрикс»: как развивать продукт более 1...ScrumTrek
В компании «1С-Битрикс более 10 лет успешно используется плеяда Agile методологий как для управления продуктом, так и для развития технологической платформы: от XP до Model Storming и Story Mappings, от глубокого проникновения всех «бойцов» общими командными целями и интенсивных визуальных коммуникаций без ТЗ, до выполнения топ-менеджерами компании интегрирующих ролей Scrum Master/ProductOwner, вплоть до парного программирования с генеральным директором. Самобытное и глубокое проникновение в культуру команды принципов Agile Manifesto, уважение клиента, возведенное в культ, с искренним желанием решить его технологические задачи, практическое стремление к техническому совершенству. Мы расскажем об этом, поделимся собственным опытом и инструментами, расскажем что работает лучше и когда, а что не взлетает ни при каких условиях. Особое внимание уделим особенностям применения Agile к задачам, требующим глубокого системного анализа и проектирования.
Константин Назаров – Распараллеливание сборки Parallels Desktop для Mac404fest
Идея доклада — рассказать об использовании Jenkins как не типичного инструмента для построения распределенной сборки продукта, зарабатывающего миллионы долларов. Мы поделимся секретами его адаптации под сборку билдов сложных систем/продуктов с многими компонентами и ускорения в разы этой задачи.
Наша проблема: линейная сборка продукта занимает 8 часов. А Jenkins «из коробки» не умеет собирать сложные иерархии. При этом писать код самостоятельно не хочется. В итоге мы придумали, как использовать существующий инструмент, пройдясь по нему напильником.
Кому будет интересно: Эти знания могут помочь людям, которые хотят построить эффективный CI, но не хотят тратить много времени на исследования.
Мы выложим наш код и материалы на GitHub. Это будет довольно практично.
Лайфхаки:
Используем Build Flow + Groovy скрипты чтобы оркестрировать сложную иерархию с параллельными ветвями и собирать результаты
Правильное использование префиксов в названиях job-ов помогают автоматизировать группировку по бранчам
Переиспользуем окружения сборки много раз, не удаляя их
Предыдущий пункт в итоге оставляет за собой кучу мусора, которую мы периодически очищаем при помощи системных Groovy скриптов по job префиксу
Группировка большого количества job-ов в проекты и бранчи с использованием Nested View
Дамп и разворачивание job-ов из системы контроля версий по шаблону
Ну и взгляд в будущее: автоматический анализ билд проблем.
http://2014.404fest.ru/reports/jenkins/
Не всегда задачи решаются в терминах языка программирования. И когда дело доходит до реализации, иногда "волосы становятся дыбом" от мысли, как это придется делать на конкретном языке. В данном докладе автор "изольет душу" на тему идиом в языках программирования, чем они отличаются от паттернов проектирования, рассмотрит преимущества и недостатки их использования, а также подробно рассмотрит несколько наиболее популярных идиом для C++.
Алексей Трошин. Менеджер не нужен: быстрые шаблоны правильных коммуникацийScrumTrek
Алексей Трошин.
Первый коммерческий сайт создал в 2002 году, первый интернет-магазин вывел в плюс в 2005, участвовал в развитии крупнейших порталов Рунета - АВТО.РУ (www.auto.ru) и Банки.ру (www.banki.ru), развивал конструктор сайтов Сетап (www.setup.ru), создавал первый российский интернет-магазин, вышедший на IPO - Ютинет.ру (www.utinet.ru), поучаствовал в развитии SaaS-системы управления задачами Мегаплан (www.megaplan.ru). Успел нанести непоправимую пользу нескольким стартапам, запустить новые продукты в B2B-Center.ru. Сейчас в ФИНАМ. Выступал на AgileDays в 2012, 14, 15, 16, Agile с 2009-го года (CSM, CSPO), в работе и по жизни :)
Артем Каличкин, Тактика и стратегия DevOps в Enterprise: роль вирусов в поеда...ScrumTrek
Я расскажу реальную историю перехода махровой Enterprise команды на DevOps практики поставки и управления конфигурацией. Итак...
Представьте себе экосистему финансовых enterprise-решений. Непрерывное и гиперактивное развитие, постоянный запуск новых сервисов, потребность в быстром и гибком внесении изменений. И все это под флагом «Mission Critical & 99,99% SLA».
Перед нами стояла задача стать гибкими и при этом сохранить надежность.
Решение? Внедрить практики DevOps в Enterprise экосистему!
В докладе мы пройдемся по выводам, полученным в ходе реализации этого амбициозного проекта:
- Требуется определенный уровень зрелости процессов еще ДО, иначе действительно можно получить «х--к х--к и в продакшен»
- DevOps невозможно внедрить, этим вирусом надо заразить
- Основная работа для «менеджера внедения» — не быть менеджером внедрения, а быть евангелистом
- Только через непрерывное совершенствование — такого слона можно скушать только частями
- Доверять команде.
Для этого нужны действительно сильные специалисты, действительно болеющие за сервис, действительно старающиеся, как для себя. Одним словом, правильные люди — без этого фейл.
- Постоянно ловить момент.
Новые продукты, новые вехи в развитии старых продуктов. Постоянно искать возможности для внедрения желаемых технологий
- Евангелизм в квадрате.
Для успешности нужно распространять «вирус» за пределы команды, смежные подразделения, ИТ, безопасность.
- Неожиданные повороты судьбы.
2012 год - я внедряю CMDB, 2015 год - я воюю против CMDB
- 'Water-agile-flow' (с) Jez Humble — пожалуй, главное препятствие в Enterprise.
JS Lab2017_Алексей Зеленюк_Сбалансированное окружение для вашей продуктивностиGeeksLab Odessa
JS Lab2017, 25 марта, Одесса
Алексей Зеленюк (Application Architect at Eleks Software)
Сбалансированное окружение для вашей продуктивности
Для построения больших веб-приложений необходим хороший фундамент: процесс сборки, тестирования и интеграции, анализа качества кода и отладки. Новые технологии и безнес-требования создают новые требования к окружению, усложняя его. Как построить надежное окружение, сохранив при этом его гибкость и простоту?
Sablon Kaos Batam, Sablon Kaos di Batam, Sablon Kaos digital Batam, Grosir Sablon Kaos di Batam, Tempat Sablon Kaos Di Batam, Jasa Sablon Kaos DI Batam, Sablon Kaos Satuan Batam, Tempat sablon Kaos batam
Доклад предназначен для проектировщиков и дизайнеров интерфейсов.
Что полезного дизайнеру может пригодится из мира программирования? Громкие термины про контроль версий, архитектуру, чистый код и т.д. это все чуждые слова или повод перенять опыт? Настолько ли суровы программисты чтобы испортить своими подходами творческую суть дизайнера?
Эвристическая оценка, или как решить проблемы в интерфейсе за часAlexey Ryakin
Моё выступление на Profsoux 2016: как полагается вести эвристическую оценку, и как это получилось в нашей компании. Сократили, ускорили, результат - весело и быстро.
Картинки к моему рассказу о том, что такое фреймворки и с чем их едят, что лучше не есть и как выбрать приправы для приготовления. Тезисы тут: http://backendconf.ru/2016/abstracts/2123.html
Картинки к моему рассказу о том, что не всегда круто спешить и бежать впереди паровоза при оптимизации и внедрении новых модных решений. Тезисы тут: http://junior.highload.ru/2016/abstracts/2221.html
Картинки к моему рассказу о том, как мы делаем Банки.ру. Некоторые слайды очень неоднозначны без текста. Тезисы тут: http://nastachku.ru/lectures?lecture_id=630#lecture_630
Видео тут https://www.youtube.com/watch?v=m5QuiTZwMrU
Александр Сербул. Прикладное XP в «1С-Битрикс»: как развивать продукт более 1...ScrumTrek
В компании «1С-Битрикс более 10 лет успешно используется плеяда Agile методологий как для управления продуктом, так и для развития технологической платформы: от XP до Model Storming и Story Mappings, от глубокого проникновения всех «бойцов» общими командными целями и интенсивных визуальных коммуникаций без ТЗ, до выполнения топ-менеджерами компании интегрирующих ролей Scrum Master/ProductOwner, вплоть до парного программирования с генеральным директором. Самобытное и глубокое проникновение в культуру команды принципов Agile Manifesto, уважение клиента, возведенное в культ, с искренним желанием решить его технологические задачи, практическое стремление к техническому совершенству. Мы расскажем об этом, поделимся собственным опытом и инструментами, расскажем что работает лучше и когда, а что не взлетает ни при каких условиях. Особое внимание уделим особенностям применения Agile к задачам, требующим глубокого системного анализа и проектирования.
Константин Назаров – Распараллеливание сборки Parallels Desktop для Mac404fest
Идея доклада — рассказать об использовании Jenkins как не типичного инструмента для построения распределенной сборки продукта, зарабатывающего миллионы долларов. Мы поделимся секретами его адаптации под сборку билдов сложных систем/продуктов с многими компонентами и ускорения в разы этой задачи.
Наша проблема: линейная сборка продукта занимает 8 часов. А Jenkins «из коробки» не умеет собирать сложные иерархии. При этом писать код самостоятельно не хочется. В итоге мы придумали, как использовать существующий инструмент, пройдясь по нему напильником.
Кому будет интересно: Эти знания могут помочь людям, которые хотят построить эффективный CI, но не хотят тратить много времени на исследования.
Мы выложим наш код и материалы на GitHub. Это будет довольно практично.
Лайфхаки:
Используем Build Flow + Groovy скрипты чтобы оркестрировать сложную иерархию с параллельными ветвями и собирать результаты
Правильное использование префиксов в названиях job-ов помогают автоматизировать группировку по бранчам
Переиспользуем окружения сборки много раз, не удаляя их
Предыдущий пункт в итоге оставляет за собой кучу мусора, которую мы периодически очищаем при помощи системных Groovy скриптов по job префиксу
Группировка большого количества job-ов в проекты и бранчи с использованием Nested View
Дамп и разворачивание job-ов из системы контроля версий по шаблону
Ну и взгляд в будущее: автоматический анализ билд проблем.
http://2014.404fest.ru/reports/jenkins/
Не всегда задачи решаются в терминах языка программирования. И когда дело доходит до реализации, иногда "волосы становятся дыбом" от мысли, как это придется делать на конкретном языке. В данном докладе автор "изольет душу" на тему идиом в языках программирования, чем они отличаются от паттернов проектирования, рассмотрит преимущества и недостатки их использования, а также подробно рассмотрит несколько наиболее популярных идиом для C++.
Алексей Трошин. Менеджер не нужен: быстрые шаблоны правильных коммуникацийScrumTrek
Алексей Трошин.
Первый коммерческий сайт создал в 2002 году, первый интернет-магазин вывел в плюс в 2005, участвовал в развитии крупнейших порталов Рунета - АВТО.РУ (www.auto.ru) и Банки.ру (www.banki.ru), развивал конструктор сайтов Сетап (www.setup.ru), создавал первый российский интернет-магазин, вышедший на IPO - Ютинет.ру (www.utinet.ru), поучаствовал в развитии SaaS-системы управления задачами Мегаплан (www.megaplan.ru). Успел нанести непоправимую пользу нескольким стартапам, запустить новые продукты в B2B-Center.ru. Сейчас в ФИНАМ. Выступал на AgileDays в 2012, 14, 15, 16, Agile с 2009-го года (CSM, CSPO), в работе и по жизни :)
Артем Каличкин, Тактика и стратегия DevOps в Enterprise: роль вирусов в поеда...ScrumTrek
Я расскажу реальную историю перехода махровой Enterprise команды на DevOps практики поставки и управления конфигурацией. Итак...
Представьте себе экосистему финансовых enterprise-решений. Непрерывное и гиперактивное развитие, постоянный запуск новых сервисов, потребность в быстром и гибком внесении изменений. И все это под флагом «Mission Critical & 99,99% SLA».
Перед нами стояла задача стать гибкими и при этом сохранить надежность.
Решение? Внедрить практики DevOps в Enterprise экосистему!
В докладе мы пройдемся по выводам, полученным в ходе реализации этого амбициозного проекта:
- Требуется определенный уровень зрелости процессов еще ДО, иначе действительно можно получить «х--к х--к и в продакшен»
- DevOps невозможно внедрить, этим вирусом надо заразить
- Основная работа для «менеджера внедения» — не быть менеджером внедрения, а быть евангелистом
- Только через непрерывное совершенствование — такого слона можно скушать только частями
- Доверять команде.
Для этого нужны действительно сильные специалисты, действительно болеющие за сервис, действительно старающиеся, как для себя. Одним словом, правильные люди — без этого фейл.
- Постоянно ловить момент.
Новые продукты, новые вехи в развитии старых продуктов. Постоянно искать возможности для внедрения желаемых технологий
- Евангелизм в квадрате.
Для успешности нужно распространять «вирус» за пределы команды, смежные подразделения, ИТ, безопасность.
- Неожиданные повороты судьбы.
2012 год - я внедряю CMDB, 2015 год - я воюю против CMDB
- 'Water-agile-flow' (с) Jez Humble — пожалуй, главное препятствие в Enterprise.
JS Lab2017_Алексей Зеленюк_Сбалансированное окружение для вашей продуктивностиGeeksLab Odessa
JS Lab2017, 25 марта, Одесса
Алексей Зеленюк (Application Architect at Eleks Software)
Сбалансированное окружение для вашей продуктивности
Для построения больших веб-приложений необходим хороший фундамент: процесс сборки, тестирования и интеграции, анализа качества кода и отладки. Новые технологии и безнес-требования создают новые требования к окружению, усложняя его. Как построить надежное окружение, сохранив при этом его гибкость и простоту?
Sablon Kaos Batam, Sablon Kaos di Batam, Sablon Kaos digital Batam, Grosir Sablon Kaos di Batam, Tempat Sablon Kaos Di Batam, Jasa Sablon Kaos DI Batam, Sablon Kaos Satuan Batam, Tempat sablon Kaos batam
Cours massifs ouverts en ligne - Environnements personnels d'apprentissage co...Denis Gillet
Présentation donnée dans le cadre du colloque "cours massifs ouverts en ligne adaptés aux besoins du 21ème siècle" dans le cadre des entretiens Jacques Cartier 2013, Lyon, France
Référence: D. Gillet, “Personal Learning Environments as Enablers for Connectivist MOOCs”, 12th International Conference on Information Technology Based Higher Education and Training, October 10-12, 2013, Antalya, Turkey
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...IT-Portfolio
20 апреля, DEV {highload} - конференция о Highload веб-разработке, "Демоны в большом проекте – проблемы и их решения (Redis, RabbitMQ, Skytools, Node.JS, HBase)", Александр Чистяков (ведущий разработчик Cezurity)
Аннотация
Когда команда разработчиков собирается написать новый сервис, у нее, как правило, отсутствует свободное время, но есть необходимый энтузиазм. Из-за нехватки времени многие архитектурные решения приходится принимать, руководствуясь общими соображениями, так как провести всесторонние тесты имеющихся на рынке средств в краткие сроки невозможно. Мы, специалисты компании Cezurity, начали свой проект не вчера, и уже накопили некоторый опыт использования технологий, появившихся сравнительно недавно - таких как Skytools, Node.JS, RabbitMQ и Redis. О том, какие возникли проблемы при внедрении этих средств, и какие их ограничения пришлось преодолевать и учитывать - мой доклад. Кроме того, я расскажу о новом направлении в нашей деятельности - внедрении HBase для хранения большого объема данных.
Биография
Докладчик - узкий специалист широкого профиля, относит себя к виду, называемому в современной англоязычной литературе термином "DevOps". Любит принимать участие в создании сложных систем и постоянно это делает. Никогда не работал в Яндексе, компенсировав это работой в Mail.Ru и некоторых других местах.
Бизнес требует от ИТ постоянно ускорять обороты. Сроки выхода на рынок постоянно сокращаются.
Применение гибких методологий в небольшой команде позволяет значительно уменьшить Time-to-Market.
Однако в крупной компании прямое использование Agile/Scrum затруднено: даже простое на первые взгляд изменение бизнес процесса может затрагивать несколько систем, за которые отвечают разные команды. Выпуск релиза приходится координировать с большим количеством заинтересованных лиц. Это сильно замедляет и проектирование и финальное интеграционное тестирование. В результате добиться снижения Time-to-Market кажется очень непростой задачей, осложненной к тому же непростой политической ситуацией, типичной для крупной организации.
Мы поговорим о системном подходе к снижению Time-to-Market для сложных задач координации релиза, характерных для крупных организаций
Расширяемая платформа для создания и управления автоматизированными тестами н...jazzteam
Продукт XML2Selenium - это расширяемая, плагинная платформа для создания и управления автоматизированными тестами на основе технологии Java.
XML2Selenium имеет интеграцию с JUnit, работает поверх Selenium (это изменяемо). XML2Selenim позволяет создавать автоматизированные тесты в простом и понятном обычному (без навыков программирования) QA инженеру формате. XML2Selenium позволяет также управлять всеми стадиями работы с автоматизированными тестами, начиная от стадии создания и заканчивая управлением тестами.
Главными конкурентными преимуществами являются
- низкая стоимость вхождения. Начинающие автоматизаторы, и даже QA инженеры без навыков программирования создают качественные тесты, а значит легко поддерживаемые, легко изменяемые, с использованием DDT (Data Driven Testing) подходов, что увеличивает повторно-используемость тестов
- встроенные возможности структуризации тестов по папкам и файлам, а также по тегам, что позволяет качественно отобразить документацию на тесты. Внедряя эту платформу, вы автоматически улучшаете свои процессы управления тестами
- XML2Selenium - это плагинная, расширяемая платформа, позволяющая кастомизировать процессы под ваши нужды, создать новые плагины, добавить интеграцию с нужными системами, и многое другое
- все повторно-используемые части (инклюды, плагины) могут помещаться в репозитории, откуда ими могут пользоваться QA инженеры с других проектов компании, тем самым распространяется опыт и знания в области автоматизации
- XML2Selenium имеет широкий спектр полезных свойств в области автоматизации, таких как поддержка создания видео, снепшотов и скриншотов страниц, Groovy и JS скриптинга, поддержки объектно-ориентированного программирования на XML и многих других
Традиционно многие компании не инвестируют много в QA инженеров, при этом сложность продуктов и количество Use Cases растёт, и компании утыкаются в барьер, когда архитектура тестов становится сравнительно такого же уровня, как и архитектура приложения. Это же касается и автоматизации тестирования. Ключевыми проблемами становятся:
- вопросы поддержки и тестирования многих инсталяций продукта на стороне заказчика
- вопросы тестирования нескольких версий (бренчей) одного и того же продукта
- повторн
Презентация делалась для JuJa конференции - Java конференции для (пре) Juniors: https://juja.com.ua/materials/jujacon-2017/
В ней
- описываются основные темы-вопросы, которые часто спрашивают на собеседовании на позицию Junior Java Developer;
- советы, что спросить собеседующего;
- как себя позиционировать, как относиться к собеседованию, как не бояться и как понять, что вам "туда".
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...HappyDev
Матерый enterprise проект с "зоопарком" из разнообразных технологий. Часто меняющаяся команда и требовательный заказчик. Менеджер, активно пытающийся вытянуть проект... Все составляющие для сюжета, достойного Титаника.
Было перепробовано множество практик для улучшения процесса разработки, и больше всего это влияло на нас, разработчиков. В одночасье рушились привычные устои, а новые, не успев прижиться, менялись снова. Разве возможна нормальная работа в такой нервной обстановке?
Автор критически оценит парное программирование, тестирование, code review и прочие практики из мира улучшения разработки, а также расшарит набитые шишки и обнаруженные грабли.
Нас с детства окружают правила, которые не хочется нарушать. Мы не суем пальцы в розетку, переходим улицу на зеленый свет и не сушим кота в микроволновке. В детстве нам просто говорят, что так делать нельзя, и мы этому верим.
Повзрослев, мы понимаем, почему этого делать не следует, и радуемся, что мы получили такие знания не на своем опыте.
А бывают другие правила. Такие, как не свистеть дома, опасаться черных кошек или не рассыпать соль. Они оказываются на проверку мифами, что, впрочем, не мешает миллионам людей слепо им следовать.
Как раз о подобных мифах из мира программирования мы и поговорим на этом докладе. Некоторые из них применимы не только к .NET, но и к другим платформам.
Внимание! На докладе у ряда слушателей возможен батхёрт.
D2D Pizza JS Илья Беда "Куда мы все катимся?"Dev2Dev
Окружение JavaScript, наверно, самая быстроразвивающаяся отрасль в мире разработки программного обеспечения. Все слышали шутку про книгу “36 новых JavaScript фреймворков, выпущенных в марте”, и это не далеко от правды.
В своем обзорном докладе я расскажу о своем пути во frontend. О том, как вижу современную индустрию, о существующих проблемах и путях их решения. Все не так уж радужно, как может показаться. Надеюсь, мой доклад позволит вам взглянуть на мир JavaScript с другой стороны или, по крайней мере, задуматься о том, в правильном ли направлении вы движетесь?
Доклад с конференции D2D Pizza JS - http://dev2dev.ru/events/8/
Инструменты разные нужны, инструменты разные важныRoman Dvornov
В мире фронтенда уже существует большое количество инструментов: как браузерных, так и консольных. Но достаточно ли этих инструментов? Мне кажется, что нет. Веб-приложения становятся все больше и сложнее, и многое остается вне нашего поля зрения. Потому фреймворки и приложения должны предоставлять дополнительные инструменты, упрощающие разработку и улучшающие понимание того, что же происходит у них там — «под капотом». В ходе доклада я расскажу о таких инструментах: какими они могут быть, какие задачи могут решать, что необходимо для их создания.
CodeFest, Новосибирск, 28 марта 2015
http://www.youtube.com/watch?v=HMTc3DERw5c
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
• Найти пользователей-евангелистов, заинтересованных в
разрабатываемой функции, трясти их, но сделать по-своему
• Тестировщики-пользователи эффективны в долгосрочной
перспективе, но неэффективны в краткосрочной
• Минимум внешних библиотек
12. Литература
1. Алан Купер. Об интерфейсе. Основы проектирования
взаимодействия. – СПб.: Символ-Плюс, 2009
– Для думания в правильном направлении
2. Дженифер Тидвелл. Разработка пользовательских интерфейсов. –
СПб.: Питер, 2008
– Список паттернов проектирования интерфейса
http://designinginterfaces.com/firstedition/
3. Джейсон Фрейд, Дэвид Хайнемайер Хенссон. Rework: бизнес без
предрассудков. – М.: Манн, Иванов, Фербер, 2010
– Уверенность в непривычных действиях
С места в карьер покажу, как выглядит программа, о которой буду говорить. Немного стыдно показывать в такой аудитории спартанский вид и страшные иконки
В двух словах:
физики-экспериментаторы, отделы R&D коммерческих компаний
таблицы с данными
обработка
нелинейная аппроксимация
векторые графики для публикаций в научных журналах
всё это сохраняется в файл проекта.
Что представляет собой MagicPlot внутри.
- Физический факультет СПбГУ
Если я буду говорить «мы», я имею в виду не себя, а компанию. Но на самом деле это я
В чем же отличие от конкурентов? Посколкьу математические алгоритмы стандартные, главное отличие – интерфейс. Да, нескромно
Типичный отзыв: программа-конкурент перегружена функциями, а MagicPlot позволяет работать проще быстрее. Но хотим еще таких-то функций!
Дисклаймер: большинство из вас специализируется именно на интерфейсах, а я занимаюсь всем понемногу, поэтому многие вещи могут быть вам очевидны. Но я постараюсь рассказать интересно.
Когда речь заходит о софте для обработки данных, часто говорят о программировании, скриптах, командной строке.
…и всякий раз опускаются руки
Но на самом деле лишь часть людей готовы изучать программирование.
…но потом я возвращаюсь к реальности!
Бывает и симбиоз: графический интерфейс, которым можно управлять скриптами. У нас пока нет.
Не будем называть имен…
Перегруженность – неизбежное зло. Людям приходится обращаться и к другому софту.
Другой софт пишут программисты, или просто слишком умные люди
Я написал «проблемы» с откаткой потому, что в некоторых программах ее нет совсем, а где-то она есть, но реализована не полностью или неудобно.
Но почитав книгу «ReWork» мы знаем, что можно пробовать делать меньше и отхватить часть аудитории, которая будет довольна.
Лучше один раз увидеть…
Последовательность:
Импорт
Задание интервала
Создание и расположение кривых, демо выделения кривых и курсора мыши
Аппроксимация
Вычитание кривых, затем вернуть на место
Редактирование стиля текста, кривой, дополнительные настройки – в диалоговом окне
Редактирование текста «на месте»
Создание рисованных объектов, прилипание: показывает не только направляющие, но и объект, к которому липнет!
Зум холста для рисования
Демо задания своей функции (дело не только в графиках!): подсветка синтаксиса и автоматическое задание параметров
Демонстрация откатки вперед-назад!
Собрали всё лучшее:
- Непосредственное манипулирование
Подсвечивание рамки текста при наведении
Редактирование на месте
Привязка
Мгновенное применение настроек
Откатка
Формулы с подсветкой
Умные Книжки Про Бизнес: главное, на чем построен ваш бизнес, должно быть под вашим контролем и в вашей компетенции.
Не отдавайте основную работу на аутсорсинг.