суббота, 12 апреля 2014 г.
А надо ли?
Кстати, обсуждали с коллегами разработку приложения как часть собеседования. Большинство считает, что для людей нашего уровня это бесполезно и ненужно. Я же стараюсь смотреть шире: с точки зрения работодателя, если человек нашёл время сделать проект, то у него, значит, серьёзные намерения, а не абы что.
Тестирование
После собеседования мне наконец-то выслали задание:
В браузере Google Chrome есть такой пункт контекстного меню “Inspect Element”, который показывает информацию о текущем элементе на страничке с возможностью посмотреть свойства его “детей” и “родителей”. Выглядит примерно так.
Суть технического задания: написать плагин для IntelliJ IDEA 13, который бы эмитировал данную функциональность. Как это можно сделать? Зарегистрируйте свой action, назовите его “Inspect UI Element” и поместите в меню “Main Menu > Tools”.Это заняло у меня несколько минут, включая настройку проекта, ибо в IDEA уже встроена поддержка разработки плагинов.
После вызова action ожидайте пока пользователь не кликнет куда-нибудь в идее с зажатой кнопкой Alt. Т.е. нас интересует исключительно Alt+Click, остальные мы игнорируем.Вот тут уже пришлось задуматься. Игнорировать можно по-разному. Сначала я начал писать обрабоку событий через GlassPane, но потом обнаружил, что полное игнорирование событий не позволяет нам найти нужный элемент UI после того, как выбран наш пункт меню. Поэтому я решил рассматривать слово "игнорировать" как "пропускать остатьные события в систему" и стал использовать AWTEventListener. Так и код короче и можно анализировать UI других приложений, запущенных из IDEA.
После Alt+Click нужно определить на каком компоненте был произведен Click (стартовый компонент) и показать информацию о нём в новом немодальном диалоге. В этом немодальном диалоге, как и в панельке Google Chrome, хочется иметь всё дерево доступных компонентов в распахнутом состоянии с выделенным стартовым компонентом. Справа от дерева нужно отобразить панель свойств (Insets, Border, Font, и другие, которые соответствуют JavaBeans нотации) Панель можно показать в виде таблицы. Конечно, большинство из свойств захочется редактировать. Чем больше их будет, тем лучше.Теперь осталось найти время и написать этот новый диалог.
Максимальный срок выполнения задания 3 недели.А вот с этим самое сложное. С работы уходить в отпуск нет желания, поэтому остаётся 6 выходных дней, если учесть, что мы с Мишкой на этих выходных вдвоём, то всего 5.
Все в космос
ЛИАП - это сила
Поздравляю всех с нашим профессиональным праздником!
Кстати, китайцы сегодня памятник Гагарину поставили.
Кстати, китайцы сегодня памятник Гагарину поставили.
Подписаться на:
Сообщения (Atom)