Как стать автором
Обновить
25
0
Голованов Владимир @Colwin

Senior Java Developer

Отправить сообщение

JavaScript: как правильно курить IE10, или проблемы миграции

Время на прочтение 2 мин
Количество просмотров 16K
Авторское отступление: Не закидывайте камнями те, кому выпало писать под разные браузеры!
В моей работе из-за использования ActiveX-компонентов сейчас поддерживается только IE. Поэтому дальнейшее изложение касается только различных версий IE.

IE10 — это особый браузер. Многое из того, что было верно для предыдущий версий IE, перестало работать.
Рассматриваются только ошибки JavaScript, возникшие при миграции legacy-кода. Различие в CSS выходит за рамки данной статьи.
Читать дальше →
Всего голосов 49: ↑39 и ↓10 +29
Комментарии 21

web и MVC: разбор полетов

Время на прочтение 3 мин
Количество просмотров 10K
Навеяно топиком о смерти MVC.

Чтобы разобраться в том, что происходит, давайте пойдем от принципов ООП.
Класс объектов в ООП инкапсулирует данные объекта с его поведением.
Вся сложность в разделении предметной области на объекты.
Здесь под «предметной областью» я понимаю также техническое окружение (БД, сеть и т.д.)

Распространенной практикой в наши дни стало создание легковесных POJO-объектов и их proxy, нам которыми работает некоторая логика, разнесенная по всем частям MVC (по M, V и C соответственно).
Это удобно с точки зрения реализации различных технологий для M, V и C частей приложения соответственно. На выходе имеем M-framefork'и, V-framefork'и и C-framefork'и (иногда наблюдается смешение). В этой парадигме переносить логику в POJO-классы модели, которые отражаются (mapping) на БД, было бы самоубийством.

Какие у нас есть альтернативы?

Расследование здесь
Всего голосов 12: ↑6 и ↓6 0
Комментарии 26

Как проектировать ПО, чтобы избежать проблем: обработка данных web-формы

Время на прочтение 3 мин
Количество просмотров 1.3K
При ответе на данный вопрос всегда необходимо задаться вопросом эволюции ПО. Какая часть системы с наибольшей вероятностью будет меняться, а какая скорее всего останется постоянной?

Будем рассматривать данный вопрос на примерах. Рассмотрим несколько задач, регулярно возникающих в более-менее крупных системах. Причины возникновения данного вида задач выносятся за рамки данного поста, здесь же останавливаемся на реализации.

Обработка данных web-формы


Формы бывают похожие: добавил одно поле, убрал другое, урезали возможные значения до чисел, сделал множественный выбор вместо единственного и т.д. С точки зрения представления — мелкое изменение. Насколько при этом меняется внутренняя логика?
Интересно?
Всего голосов 21: ↑13 и ↓8 +5
Комментарии 5

Несколько слов об использовании перечислений в изменяющейся среде

Время на прочтение 6 мин
Количество просмотров 32K
Данный пост предлагает решение проблем с использованием перечислений при изменении состава констант или наличия дублирования кода при их использовании. В остальных случаях применение озвученного ниже подхода, как правило, нецелесообразно.

Читать дальше →
Всего голосов 11: ↑7 и ↓4 +3
Комментарии 9

Расширение Java: алиасы

Время на прочтение 2 мин
Количество просмотров 7.4K
Выкладываю данный пост с целью получения обратной связи от хабра-сообщества Java-программистов. При наличии достаточного количества голосов «за» эту фичу можно будет отправить для рассмотрения в Sun.

Проблема



После длительной работы с Java 5 и Java 6 и небольшой аналитики я пришел к тому, что generic'и в Java имеют ряд ограничений, которые не дают реализовать решение красивым способом, и обходить их порой приходится очень нетривиально. Данное высказывание относится к разработке подсистем, которые активно используют generic'и (доходит до 3-4 generic-типов со сложной иерархией в описании класса).

Приведу примеры кода, которые явно указывают на данные ограничения, а также неудобство использования (рассматривать только синтаксис):
public class A {
    public <X> void method(List<? extends X> list) {
        // processElement(list, list.get(0)); - compilation error
        processElement((List) list, (Object) list.get(0)); // compilation warning
    }

    public <T> void processElement(List<T> list, T object) {
    }

    public static class B<T extends I1 & I2> {
    }

    // Приходится повторять объявления generic-типов
    public static class С<T extends I1 & I2> extends A.B<T> {
    }
}


Читать дальше →
Всего голосов 7: ↑2 и ↓5 -3
Комментарии 7

Java для профессионалов: задачи на знание спецификации

Время на прочтение 3 мин
Количество просмотров 5.9K
По ходу подготовки к сертификационному экзамену SCJP, а также при чтении в различных источниках нюансов использования языка Java, возникают множество различных вопросов. Также некоторые особенности языка кажутся совершенно нелогичными, однако так указано в спецификации языка, и каждый уважающий себя профессионал стремится к тому, чтобы знать эти мелочи.

Данный топик посвящен коротким примерам программ (или участков кода). Для каждой программы требуется ответить на простые вопросы: как она будет выполняться и что будет выведено на консоль после ее выполнения. Предполагается использование Java 1.6, если в задаче не указано иное.

Читать дальше →
Всего голосов 9: ↑7 и ↓2 +5
Комментарии 11

Задачка со спичками

Время на прочтение 1 мин
Количество просмотров 764
Предлагаю вашему вниманию задачку со спичками.
Конечно, тема не нова, так что просьба тем, кто знает решение, не кричать «баян!», т.к. знают, безусловно, не все.

Итак, условие.

Имеются шесть спичек. Требуется составить из них:
  • 6 равных правильных треугольников (задача 1).
  • 4 равных правильных треугольника, сторона каждого из них равна одной спичке (задача 2).


Остальные условия аналогичны похожим задачам со спичками (нельзя ломать или поджигать спички, нельзя использовать края стола и т.д.)
Всего голосов 14: ↑4 и ↓10 -6
Комментарии 23

Информация

В рейтинге
Не участвует
Откуда
Новосибирск, Новосибирская обл., Россия
Дата рождения
Зарегистрирован
Активность