Pull to refresh
25
0
Голованов Владимир @Colwin

Senior Java Developer

Send message

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

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

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

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

Reading time3 min
Views10K
Навеяно топиком о смерти MVC.

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

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

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

Расследование здесь
Total votes 12: ↑6 and ↓60
Comments26

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

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

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

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


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

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

Reading time6 min
Views32K
Данный пост предлагает решение проблем с использованием перечислений при изменении состава констант или наличия дублирования кода при их использовании. В остальных случаях применение озвученного ниже подхода, как правило, нецелесообразно.

Читать дальше →
Total votes 11: ↑7 and ↓4+3
Comments9

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

Reading time2 min
Views7.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> {
    }
}


Читать дальше →
Total votes 7: ↑2 and ↓5-3
Comments7

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

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

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

Читать дальше →
Total votes 9: ↑7 and ↓2+5
Comments11

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

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

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

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


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

Information

Rating
Does not participate
Location
Новосибирск, Новосибирская обл., Россия
Date of birth
Registered
Activity