Первая встреча с тестами была пять лет назад, в первом проекте. Клиентская часть была написана на Dojo, для тестов использовался поставляемый вместе с dojo тестовый фреймворк D.O.H. Потом я попал в Яндекс(Почту). Спустя год работы в почте, я самостоятельно пришел к пониманию, что нужны тесты. Первые пару месяцев я настраивал инфраструктуру и писал тесты самостоятельно. К концу моей работы в Яндексе (спустя 1.5года) в почте было две тысячи unit-тестов и написание тестов было стандартной практикой при разработке. Сейчас, работая в YouTrack-е(JetBrains), я также успешно использую тесты при написании клиентского кода.
Тестирование программного обеспечения не ново, уже давно разработчики, которые пишут на Java, Ruby и других серверных языках, успешно применяют TDD в своем процессе разработки. Картина тестирования меняется, когда мы начинаем говорим о программах, написанных на JavaScript-е. Часто эти программы исполняются в браузере, у пользователя на компьютере, и являются промежуточным звеном между пользователем и сервером.
В начале программы выглядят довольно просто, но с ростом проекта растет и объем JavaScript кода. В них появляется бизнес логика, перенесенная с сервера на клиент для улучшения отзывчивости, хитрая логика показа/скрытия элементов UI, и маленький, понятный скрипт, который был в начале, уже давно не маленький и не везде понятный. Непонимание приводит к дублированию кода. Дублирование кода влечет за собой рост сложности и количества ошибок. Из-за сложного кода уже не так просто добавлять новую функциональность, а постоянные ошибки начинают раздражать пользователей.
Всё это негативно сказывается на команде и проекте в целом. Одним из инструментов, который позволяет бороться со сложностью и количеством ошибок, является автоматическое тестирование. Однако тестирование JavaScript-а имеет свою специфику. В этом докладе я расскажу про свой опыт тестирования клиентского кода.
Александр Чистяков работает в компании Git in Sky старшим вычислителем и видит и слышит вас. Просто не любит.
Наша компания является соорганизатором Docker-митапа в Петербурге, поэтому нам приходится использовать Docker в продакшне. На самом деле - не поэтому. А почему и зачем - как раз об этом я и расскажу в докладе. Поскольку мы накопили уже довольно большой опыт использования Docker для решения довольно сложных задач, мне есть о чем рассказать.
Спикеры:
Денис Соколов, команда iFunny :) Начал заниматься фронтэндом, когда jQuery ещё только набирала популярность и имела версию 1.2. Говорят, неплохо верстал под IE6. Разработал развлекательный портал ifunny.co (node.js, SPA, адаптив, как надо всё), который посещают сотни тысяч американцев каждый день. Почитает чистый код, верит в справедливость, в будущем планирует стать Мастером и тренировать Пикачу.
Андрей Лебедев, компания Моё дело Дипломированный программист и выпускник экономического факультета гуманитарного ВУЗа. Свыше 5 лет профессиональной разработки. Прошел путь от простого верстальщика до разработчика front-end архитектуры в крупной SaaS-компании. В последнее время активно занимается оптимизацией производительности клиентского кода, ускорением загрузки веб-страниц и внедрением новых технологий.
Артём Приходько, компания Моё дело Занимается разработкой интерфейсов 5 лет. Делал красивые «окошки» для десктопных приложений, а теперь и для большого веб-проекта. Любит чистый, валидный, покрытый тестами код с щепоткой ванили. А ещё енота-полоскуна, за его чистоплотность и вредность.
А что ещё за фронтэндеры такие? А они есть в Пензе? Ну конечно! Мы даже специально собрали здесь несколько интересных экземпляров из разных компаний города (руками не трогать, кусаются). Вас ждёт серия блиц-докладов о лучших практиках, немного философии и много дельных рецептов. А ещё потом можно дружно затроллить их на специальном баркемпе (помидоры и яйца приносить с собой). В общем, мойте руки и проходите на нашу кухню (да-да, пиво в холодильнике, бери уже, не стесняйся).
Блиц-доклады:
Я могу разложить стили и разметку по полочкам, а ты?
Всё ещё копируешь CSS-код? Держишь все стили в одном файле на 100500 строк? Уверен, что словосочетание «Объектно-ориентированный CSS» — просто остроумная шутка? Никак не дойдут руки разобраться, что такое BEM? Тогда тебе точно сюда, пора расширять сознание.
Меня уже тошнит от этого спагетти! Организация JS-кода
Надоел спагетти-код или просто хочется разнообразить свой рацион? Вам тут понравится! Я расскажу какой фреймворк лучше съесть сегодня на ужин, как его приправить и чем запивать. А может вам уже пора садиться на диету или заняться велосипедом?!
Почему они не тестируют код и пишут с ошибками?
Кто этот загадочный человек “фронтэндер”? Почему он не тестирует свой код? Постоянно допускает в нем синтаксические ошибки? Как это исправить?
Был спикером с докладами на тему безопасности на конференциях .NEXT, dotnetconf. Сейчас работаю product manager'ом в компании Cezurity. Один из создателей анализатора исходного кода Application Inspector в компании Positive Technologies (модуля поиска уязвимостей в ASP.NET приложениях). Ранее работал team lead’ом в компаниях Acronis, Luxoft (г. Москва), НПФ КРУГ (г. Пенза), учился в Пензенской Государственной Технологической Академии.
Посмотрим на море различных уязвимостей глазами разработчика и разложим их по полочкам своей системы классификации, чтобы понять на что нужно обращать внимание при написании безопасных приложений. Будет много примеров уязвимого кода, разберем SQL Injection, XSS, CSRF, Session Fixation, типичные логические уязвимости и другие типы атак.
Материал будет особо ценен для .NET разработчиков, все примеры написаны на C# и мы затронем особенности архитектуры безопасности ASP.NET платформы. Так как все рассматриваемые типы уязвимостей актуальны и для других платформ, то и остальные программисты найдут для себя полезную информацию в этом докладе.
Программирую уже лет 15. Последние годы наиболее сконцентрирован на распределенных системах (инструменты, алгоритмы, подходы, идеи) и not-so-BIG-DATA.
Люблю Java, Scheme и Prolog и постоянно смотрю на новые языки с желанием расширить этот список :)
Технически Ecwid это пара десятков связанных друг с другом сервисов, запущенных в нескольких копиях в трех датацентрах. Любая машина с любым сервисом может как внезапно пропасть из кластера (проблемы с железом, сетью, кодом) так и появиться там (выросла нагрузка и автоматически запустились дополнительные сервера).
Такая архитектура требует поддерживать знания "все обо всех" - сервисы должны постоянно знать кто в кластере работает (а кто уже нет) и распределять между собой задачи. Мы создали механизмы service discovery и cluster-wide блокировок на базе consul и это работает. В докладе я расскажу о технических подробностях и нюансах работы с consul.
Закончив МФТИ, я совершенно случайно попал в Web-разработку. Я начал свой профессиональный путь разработчиком на C# и ASP.Net. Через 4 года я переметнулся в мир open-source и Linux, став разработчиком на PHP, а потом и на Ruby. Организовал конференцию Railsclub, два года вел RubyNoName подкаст, дорос до руководителя разработки в Scalaxy, а потом и в Групоне. Провел несколько мастер-классов для разработчиков. На данный момент являюсь генеральным директором компании "Экспресс 42", которая занимается консультированием в области эксплуатации ИТ-проектов.
Обзорный доклад, который рассказывает о том, что такое DevOps, какие практики относятся к DevOps и почему это важно. Так же, на примере двух систем - ansible и chef, рассказывается о том, что такое системы управления конфигурацией, зачем они нужны и какие задачи помогают решить.
Основатель и технический директор сервиса coub.com. 8 с лишним лет занимается разработкой интернет-проектов повышенной сложности.
Хороших и отличных разработчиков разделяет совсем немного качеств, тем не менее разница в результатах их работы порой очень большая. Дело тут не в эрудированности и каких-то личных качествах, а только в понимании ценностей. У разработчика они одни, у его руководства другие. Очень редко бывает когда они совпадают.
Мой доклад попробует объяснить, к чему надо стремиться к работе, и что за это будет.
Технический лидер команды health-samurai, которая уже больше 7 лет работает в области Нealth IT и разрабатывает открытую медицинскую платформу fhirbase.
Современный веб-сервер становится интерактивным (websockets, server sent events) и распределённым (microservices). А разрабатывать его нужно, как всегда, быстро и надежно.
В докладе я расскажу про язык программирования Clojure и о том, почему он является идеальным инструментом для разработки интерактивных систем:
Профессиональный астроном, работает научным сотрудником в ГАИШ МГУ. С 1996 года занимается созданием новых функциональных возможностей PostgreSQL, является одним из ключевых разработчиков, член PostgreSQL Foundation. Основные интересы в PostgreSQL — расширяемость (GiST, GIN, SP-GiST), новые типы данных, индексы. Cоавтор полнотекстового поиска, хранилища для слабо-структурированных данных (hstore, jsonb) и многих других расширений.
Мир баз данных за последние годы существенно изменился. Повсеместное проникновение интернет технологий привело к необходимости работы с большим количеством разнородных данных в реальном времени, к чему традиционные реляционные СУБД оказались не готовы. Принято считать, что слабая масштабируемость и излишняя “жесткость” модели данных реляционных СУБД и являются основными причинами появляние и роста популярности NoSQL баз данных (NoSQL в дальнейшем). Я расскажу о концептуальных предпосылках появления NoSQL и их классификации. Одним из “жупелов” NoSQL является поддержка типа данных json, который реализует документо-ориентированную модель данных. Эта модель данных является более гибкой и позволяет менять схему данных “на лету”, что сделать очень трудно в реляционных СУБД, особенно в работающих под большой нагрузкой системах. Тем не менее, несмотря на успех NoSQL, многие пользователи не готовы приносить в жертву целостность данных в угоду масштабируемости, но хотят иметь гибкость схемы данных в проверенных и надежных реляционных СУБД. Темпы роста компьютерной индустрии (процессоры, дисковые подсистемы и сетевые устройства) позволяют большому количеству проектов успешно функционировать на одном сервере и не требовать горизонтальной масштабируемости NoSQL. Более того, при правильном проектировании архитектуры приложения возможно добиться горизонтальной масштабируемости реляционной СУБД, что подтверждает пример проекта Instagram, использущий открытую реляционную СУБД PostgreSQL.
Нами была предложена и реализована поддержка документо-ориентированной модели в PostgreSQL (версия 9.4). Уже больше 10 лет в PostgreSQL существует возможность работать со schema-less данными, используя наш модуль расширения hstore. Hstore предлагает хранилище ключ-значение с сохранением всех реляционных возможностей, что сделало его самым используемым расширением PostgreSQL. Однако, возникающие технологии, основанные на популярном стандарте json, требуют от баз данных встроенную поддержку иерархических структур. Мы разработали бинарное хранение для вложенных структур с поддержкой массивов и типов, что позволило реализовать новый тип данных jsonb, гибкий язык запросов jsquery с индексной поддержкой. Таким образом, открытая СУБД PostgreSQL получила полноценную поддержку json и стала серьезным конкурентом MongoDB.
Матвеев Дмитрий, CTO Rails Jedies. Работаю в программировании с 2005 года, в последовательности c#-> php -> ruby. С 2008 года полностью перешел на разработку на ruby on rails.
Ляпин Артур, разработчик RailsJedies. ruby-программист с 2012 года. До этого 2 года писал на C, C++, C#. Окончил факультет вычислительной техники в ПГУ с отличием.
1. Что такое руби на рельсах. Как оно ездит.
2. Мотивация. Зачем вставать на рельсы.
3. Личный опыт. Минуты славы.
4. Бонус. Зачем ездить на конференции )
Доклад для студентов, начинающих программистов.
Цель: сформировать представление о технологическом стеке RoR, особенностях работы веб-программиста в целом и ruby-программиста в частности.
Программировать начал в школе. Официальный стаж в IT исчисляется с 1997 года. Работал на предприятии ВПК, был соучредителем одной из первых в Пензе фирм - партнеров 1С, сотрудником одного из крупных российских системных интеграторов. В настоящее время работаю удаленно с заказчиками из-за рубежа.
Занимался самыми разными вещами, в диапазоне от написания драйверов и низкоуровневого программирования до разработки решений на базе геоинформационных систем и от автоматизации учета частных предпринимателей до аналитических систем для крупного бизнеса. Более семи лет разрабатываю и внедряю хранилища данных и системы Business Intelligence.
Доклад посвящен вопросам создания аналитических систем на базе многомерных хранилищ данных. Будут рассмотрены следующие вопросы:
Доклад ориентирован на всех желающих познакомиться с технологией многомерных хранилищ данных, в том числе на начинающих IT специалистов.
Более 10 лет работаю с Linux, последние 5 лет связаны с администрированием Linux в сфере web разработки. На данный момент работаю в консалтинговой компании PostgreSQL-Consulting.com и занимаюсь администрированием СУБД PostgreSQL в связи с чем каждый день сталкиваюсь с самыми разными задачами и проблемами. Особый интерес для меня представляет взаимодействие СУБД с операционной системой и внутреннее устройство как PostgreSQL так и Linux.
База данных зачастую является неотъемлемым элементом любого проекта и к ней предъявляют довольно жесткие требования в плане производительности и стабильности. Если вы планируете использовать PostgreSQL в своем проекте, то столкнетесь с вопросом выбора операционной системы. Одной из популярных на сегодняшний день операционных систем является Linux. Сочетание гибкости и стабильности делает Linux хорошим кандидатом в качестве платформы для PostgreSQL. Однако настройки по умолчанию предназнaчены для широкого круга задач и потребностей. В этом докладе я расскажу о том, на какие настройки следует обратить внимание и как они влияют на работу PostgreSQL. Какие из этих настроек более важные, а какие - нет. Как сделать работу PostgreSQL более предсказуемой как в обычных условиях, так и при непостоянной или растущей нагрузке.
В разработку ПО пришел в 1997 году, занимался созданием новых клиент-серверных продуктов и доработкой существующих, сначала для государства, потом коммерческих. Тогда же тесно познакомился с миром баз данных. В 2002 году присоединился к open-source проекту по разработке СУБД Firebird, с 2005 года является его координатором и релиз-менеджером. Текущая специализация — С++, кросс-платформенная разработка, высоконагруженные системы и оптимизация SQL запросов.
Автор открытого полнотекстового поисковика Sphinx. В прошлых профессиональных жизнях вдобавок к этому веб-разработчик (два раза), технический директор с уклоном в 3D графику, системный программист, и т.д. Писал много кода, делал много презентаций, управлял командами разработчиков, чем и продолжает с переменным успехом заниматься. Характер скверный. Ноги свои. Попугая нет.
Все больше и больше в IT отрасль проникают/адаптируются идеи "бережливого производства" #Lean Software Development, #Lean Startup, #Kanban, #Continuous Delivery...
Все эти идеи, практики и инструменты "работают" только в руках специалистов с определенными профессиональными ценностями, образом мыслей и соответствующими им навыками. Таких специалистов я и называю "бережливыми". Какие они? Как они мыслят? Какие у них ценности? Какими навыками они обладают? Как такими стать?
Приходите, обсудим ответы на эти вопросы!
В данный момент Наталья выступает в роли тренера и консультанта по вопросам построения процесса тестирования ПО в «Лаборатории Качества», а также отвечает за предоставление услуг по аутсорсингу тестирования. Все, кто работали с Натальей или были на её тренингах, отмечают её неизменный позитив, жизнерадостность и высокую энергетику.
Модель проектного треугольника очень быстро дала плоды на благодатной почве русской души, которая любит всё делать с размахом. Хотите больше фич? Надо увеличивать сроки! Хотите более качественный продукт? Давайте расширим команду!
Первое следствие такого подхода становится заметным сразу: мы всё реже выпускаем новые версии, а бюджет непрерывно растёт. Но постепенно становится заметным и менее ожидаемый результат: продукт качественнее не становится, а за единицу времени мы добавляем всё меньше новых фич.
Раздутая команда становится неуправляемой, расширяться дальше нет желания и возможностей. Как решать проблему?
В своём докладе я расскажу о четвёртом, редко учитываемом факторе, который влияет на успешность проектов - процессе разработки. За счёт оптимизации процессов мы почти всегда можем достигнуть улучшений в своей работе, не затрачивая дополнительных ресурсов.
Доклад будет полезен руководителям проектов, руководителям продуктов, руководителям отделов разработки и руководителям отделов тестирования, а также всем сочувствующим.
Инженер-Системотехник. Помогаю создавать и развивать команды создающие комплексные решения.
Создаю, обучаю, консультирую в области разработки ПО (внутренняя, заказная, продуктовая).
Знаю и люблю соборные и гибкие методологии разработки.
p.s. Я очень люблю agile – это замечательная методология, люблю коллег agile коучей, но очень не люблю, когда все проблемы в разработке лечат одной и той же таблеткой, а когда она не срабатывает, говорят что вы «недостаточно» старались или вам не хватает “true” agile…
Занимаюсь разработкой ПО более 10 лет. Начиналось все с Windows, затем Linux, потом мобильные платформы. В основном участвую в разработке заказных проектов для государственных заказчиков. Сейчас деятельность сосредоточена на разработке мобильных приложений для разных платформ.
В веб-разработке с 2002 года, участвовал в развитии крупнейших порталов Рунета - АВТО.РУ и Банки.ру, развивал конструктор сайтов Сетап, создавал первый российский интернет-магазин, вышедший на IPO - Ютинет.ру, поучаствовал в развитии SaaS-системы управления задачами Мегаплан. Успел нанести непоправимую пользу нескольким стартапам, а сейчас строю продукты в B2B-Center.ru.
Менеджерские школы учат, как готовить проекты правильно. А реальность говорит про 30% успешного завершения проектов. Чувствуете проблему?
Этот доклад про опыт. Про множество подходов, которые смогут помочь ускорить разработку. Никакой уличной магии нет, есть множество рецептов, приводящих к результату, который даёт на выходе работающий продукт и радует заказчика. Это факторы планирования, технологий, психологии, презентации, приоритезации и многие другие.
Приготовьтесь к изменениям!
Инженер-программист по образованию. За последние 7 лет переориентировался с разработки на продвижение компаний и интернет-проектов. Основные интересы в работе: поисковое продвижение, изучение факторов ранжирования в поисковых системах, аналитика и изучение поведения пользователей сайтов.
Александр Еремеев, руководитель заочного акселератора.
Имеет большой опыт в бизнесе, работал как в небольших компаниях, так и в крупных международных корпорациях.
В разное время руководил интернет магазином, выстраивал сеть дистрибуции аксессуаров к сотовым телефонам, был редактором в крупном бумажном издании, создавал с нуля навигационную программу Shturmann и управлял разработкой программного продукта.
Около 15-ти лет работает IT журналистом и редактором. Поработал практически со всеми бумажными и электронными IT изданиями в России.
Знает много о тех ошибках, которые совершают создатели новых продуктов, причем в независимости от того в большой компании или в стартапе, потому что сам через все это прошел.
В коммерческой разработке ПО с 2012 года. Начав свой путь в IT с разработчика С++, увлекся темой мобильных приложений, разработав вместе с командой мобильное приложение для ПГУ, тем самым задав небольшой тренд для других университетов Пензы.
Также занимаюсь обучением студентов основам современной разработки ПО и работе в команде при бизнес-инкубаторе ПГУ. На данный момент команда вышла на коммерческий уровень.
Как быть молодым командам разработчиков, начинающим свой нелегкий путь? Многие выбирают популярное направление разработки мобильных приложений. Какие подводные камни ожидают их? Возможно ли разработать стоящее приложение на мобильный рынок Пензы?
Занимаюсь разработкой маркетинговых стратегий. За это время время освоил много чего еще, начиная от SMM заканчивая написанием рекламных текстов и PR.
Периодически приходиться делиться этим опытом на IT и бизнес конференциях. Основные интересы: изучение рынков, создание инновационных подходов в продвижении IT стартапов и конечно же создание самих IT-стартапов.
Доклад ориентирован на аудиторию занимающуюся созданием или продвижением стартапов. Либо тем кто хотел бы создать что то свое но их пугает отсутствие денег и непонимание того как можно продвигать стартап другими путями требующих минимум вложений.
Ведущий разработчик компания AwesomaticGames. Опыт разработки собственного игрового движка на C++ и OpenGL. Опыт разработки на Unity3d + C# 5 лет. За это время было разработано и выпущено три мобильных игры под андроид и ios, две онлайн игры для социальных сетей и браузера.
Аудитория
Доклад нацелен как на новичков (людей которые только начали заниматься gamedev или хотят им заняться), так и на профессионалов индустрии, т.к. собираюсь поделиться не только своим практическим опытом, но и опытом других проектов с разработчиками которых я лично знаком.
На докладе обсудим следующие вопросы.
В конце потренируемся думать о пользовательских потребностях.
Окончила факультет социологии Высшей Школы Экономики в Санкт-Петербурге. Продолжила образование в Институте медиа, дизайна и архитектуры «Стрелка» в Москве, где занималась исследованием городского пространства с помощью новых технологий. В "Теплице" пишет материалы о гражданских приложениях в России и других странах.
Для того, чтобы создавать общественное благо и помогать решать социальные проблемы не обязательно полностью менять свою жизнь - мобильный краудфандинг, краудсорсинг и микроволонтерство сделали процесс помощи максимально простым (и часто очень интересным).
В своем докладе я расскажу, зачем нужно создавать такие приложения, какие задачи они решают и кому могут быть полезны.