"Спроси меня" со SlavaRa

Буйнов Вячеслав или SlavaRa

Основная моя деятельность связана с разработкой социальных игр(AS3, Haxe, Ant, Tests, CI).
А, вот, свободное время я трачу на haxe проекты, благодаря чему появился порт DragonBones, haxe-common-async.
К тому же помогаю по разработке FlashDevelop.
Собственно, могу ответить по любому вопросу связанному с текстом выше.

Комментарии

Про языки

Я знаю, что ты при разработке FD используешь C#, кроме того, знание AS3 и haxe тобой неоспоримо. Я бы хотел узнать - есть ли у тебя опыт практического использования других языков и для каких проектов. И как продолжение этого вопроса - каждый язык имеет свои особенности, уникальные возможности. Как ты думаешь - как бы эти языки могли повлиять на haxe? Какие бы возможности хотелось бы видеть из этих языков в хаксе? Какие полезные практики из этих языков программист мог бы использовать при работе с haxe?

Про ЯП

  • AS3 - работа, какие-то свои игровые проекты
  • Haxe - всякого рода утилиты для работы и себя, игровые проекты
  • C# - FlashDevelop
  • CPP - один игровой проект на cocos2d-x
  • читаю perl, раньше читал php - необходимость для работы js, jsfl, ... - не в счет думаю)))

Нууу.... я думаю, что можно было бы добавить в haxe некоторые фишки из других ЯП:

  • ?. и *. операторы из groovy
  • as оператор из c#|as3
  • livecoding
  • статическая инициализация
  • константы
  • readonly из C#

Полезная практика одна - меньше кода, как можно меньше кода!

Слава, большое спасибо за

Слава, большое спасибо за ответы про ЯП и про инструменты.

Про инструменты

И конечно следующий вопрос про инструменты - выше ты указал ant, tests, CI.
Хотелось бы узнать, для чего ты используешь ant.
В чем ты пишешь тесты и какого рода тесты (unit, интеграционные и т.п.). Сторонник ли ты полного покрытия тестами кода или нет. Как ты относишься к тестированию графических интерфейсов и использовал ли ты какие-либо инструменты для автоматизации такого рода тестов.
Какие CI ты используешь и каким CI отдаешь предпочтения и почему. Нужно ли использовать CI если ты занимаешься хобби. И какие задачи, можно решать с помощью CI.

Про инструменты

Apache ant использую как сборщик, т.к. это самая простая платформонезависимая система, кроме сборки и т.п. дает возможность быстро настроить проект для любой IDE, это бывает необходимо когда в команде появляется новый программист.

Для организации CI на работе использую TeamCity, ставится эта система и на Windows и на Mac, имеет приятный интерфейс, очень проста в настройке, обновляется, имеет хорошую службу поддержки. На работе билдмашиной выступает mac mini т.к. надо собирать и сервер и клиента и графический интерфейс, mac - это единственная платформа, которая нас устраивает. Дома я использую Windows. Использовать нужно и для работы и для хобби, потому что:
- сокращается время на проверку обновлений библиотек\контента\__________________
- сокращается время на проверку совместимости с новыми обновлениями(см. п.1), путем запуска тестов, сборкой и т.д.
- сокращается время на заливку тестовых версий, сборку релизов, деплой релизов и т.д.
- устраняет большую часть рутинной работы(автомержи, закрытие задач и т.д.)
- увеличивает мотивацию и настроение разработчика
пс
Для сборки плагинов FD, хочу попробовать Travis и AppVeyor

Графический интерфейс я не тестирую, нет необходимости, с софтом для автоматизации знаком.
ТДД, юнит тесты, интеграционные тесты - это все, что я использую в своей работе, каждый день.
Я сторонник написания тестов до кода или на баги(по мере поступления!) в существующем.
Считаю, что "слепое покрытие"(т.е. тесты ради тестов) уже существующего кода - это очень плохо.
- для c# использую, то что дает студия из коробки, тесты пишу в VisualStudio
- для haxe - munit, тесты пишу во FlashDevelop
- для as3 - flexunit, тесты пишу во FlashDevelop
- для cpp - то что идет с cocos2d-x, тесты пишу в VisualStudio

По работе мы тоже используем

По работе мы тоже используем TeamCity - очень удобный интерфейс, легко обновляется и устанавливается.

Про время

Слава, я думаю многим будет интересно услышать как ты планируешь свое время. Не секрет, что ты занимаешься многими проектами (как по основной работе, так и по теме haxe и opensource) и в такой ситуации очень важно правильно распределять время и усилия. Кроме того, для многих из нас haxe это хобби и хотелось бы услышать, как можно совмещать такое хобби с основной работой.

Более конкретно такие вопросы:
- какие инструменты планирования времени
- какие инструменты ведения задач
- используешь ли какие то практики (канбан, леан, аджайл и т.п.)
- работаешь ли ты по opensource в любое свободное время или только по выходным

Про время

На самом деле все зависит от проекта.
FlashDevelop:
- если есть свободное время и настрой, иду в репо редактора, и беру то, что быстрее всего могу сделать, согласуя выбор в приватном чате разработчиков.
- если какой-то функционал не работает или работает неправильно и это сильно мешает моей команде или моей работе, то могу исправить и в рабочее время, либо в ближайшее свободное, зависит от сложности задачи.
- если меня просят со стороны fdorg что-то запилить, то мы обычно обговариваем сроки и желаемый функционал.
- плагины, это наплывами, и часто из-за того, что нельзя что-то добавить в основной функционал.

Для всех остальных проектов кроме плагинов FD, я чаще пытаюсь подстроиться(если это возможно) под людей, которые в них участвуют. Для всего использую YouTrack. Пробовал много других инструментов, но ничего не прижилось.

Хобби с работой совмещается довольно просто, я не люблю писать код ради кода, все что я делаю решает какую-то задачу, часто получается так, что при решении большой задачи, получаются какие-то мелкие библиотеки\инструменты, часть уходит на работу, часть попадает в opensource(если уже им не является).

"Работаю" много в будни и очень мало в выходные(обычно если у жены танцы или дела)

Слава, спасибо за ответ.

Слава, спасибо за ответ.

Основная деятельность и Haxe

В рамках основной деятельности были ли уже какие-то релизы, использующие Haxe?
Если да, то какие? И в какой степени в них используется Haxe?

Игр, в которых использовался

Игр, в которых использовался бы Haxe как основной ЯП в данный момент нет(на это есть ряд причин, если говорить о основной работе), хотя во всех сделанных за последний год, он идет первым для написания кроссплатформенных утилит.
Проект написанный целиком на Haxe, надеюсь, появится относительно скоро, я обязательно освещу этот момент)

FD

Насколько я знаю ты работаешь над портированием FlashDevelop на Mono. Есть ли продвижки в этой теме? Если да, то когда ожидаются первые публичные билды? Когда планируется в дев ветку fdorg встроить поддержку unix-систем?

Да, в данный момент идет

Да, в данный момент идет работа по портированию FlashDevelop на Mono, занимаюсь этим не только я, мне помогают(@Sergey Miryanov, @Егор Харват, @Warstone, ...).
Наблюдать за прогрессом можно в ветке development-linux, любая помощь приветствуется.
Мерж с dev веткой fdorg будет ровно в тот же момент, что и первый рабочий билд.
Точных сроков пока говорить не хочется, но мы уже смогли запустить компонент Scintilla на линуксе.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <blockcode> <dd>
  • Строки и параграфы переносятся автоматически.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>. The supported tag styles are: <foo>, [foo].
  • Use [gist:####] where #### is your gist number to embed the gist.

Подробнее о форматировании

CAPTCHA
Для отсева спамеров)
N
Y
z
K
V
p
Enter the code without spaces and pay attention to upper/lower case.