Сообщения

Показаны сообщения с ярлыком "java"

Duck Hierarchy

Изображение
В этой статье больше шутки нежели полезной информацией. Под влиянием книги  Head First Design Patterns  я когда-то давно нарисовал такую картинку. Слева мы видим типичное наследование и проблему двойного наследования когда хотим реализовать в одном классе два поведения. А справа наследование от абстрактного класса и реализация интерфейсов. В этом случае нам конечно придется писать под для каждого интерфейса, зато это провоцирует нас писать классы с одной обязанностью как и ожидает от нас один из пунктов принципа SOLID. А под конец картинка про фабрику
Периодически забываю как делать сложные enum с поиском по строке (метод valueOfPretty), поэтому вот заготовка. public enum EnumExample { ZERO ( 0 , "zero value" ) , ONE ( 1 , "one value" ) , NULL ( - 1 , "null value" ) { @ Override public String toString ( ) { return super . toString ( ) + "special null value" ; } } ; private int value ; private String description ; EnumExample ( int value , String description ) { this . value = value ; this . description = description ; } public String asPretty ( ) { return this . name ( ) . toLowerCase ( ) ; } public static EnumExample valueOfPretty ( String s ) { for ( EnumExample state : EnumExample . values ( ) ) { if ( state . asPretty ( ) . equals ( s ) ) { return state ; } } ...

Rutor Parser

Изображение
Предисловие В интернете часто ходят слухи, что можно легко зарабатывать на мобильных приложениях. Где-то я видел статистику 100$ за 10 000 активных пользователей. Вот я и решил попробовать написать приложение, тем более что, наконец, нашлась нереализованная, на мой взгляд, идея, причем нужная мне самому. Скачать Rutor Parser Идея Я иногда скачивают торренты на мобильный телефон, но заходить на сайт и пытаться там попасть в магнет-ссылку, а еще надоедливая реклама. Я залез в google play но там не было удобных приложения для rutor и rutracker (для rutracker появились некоторое время назад удобные приложения). Поэтому я решил написать такое приложение – парсер формы поиска rutor с большими кнопками для скачки. Естественно для самого скачивания нужно пользоваться торрент-клиентами типа Flud , utorrent и др. Девелопмент Разработка была сделана по принципу – быстро вывести проект на рынок, т.к. если гнаться за прекрасным, с точки зрения инженера, то можно надолг...

Time Zones

Аннотация В данном посте будет описана немного истории для понимания, что такое тайм зона и в чем ее сложности. Также будет объяснено, что такое Date, как она представляется в коде и БД. Будут разысканы проблемы, которые возникают с датами в GWT и их решения. С чего все началось Форматирование даты в GWT по маске происходит через DateTimeFormat. Однако оказалось, что при выводе дата зависит от клиентской тайм зоны, т.е. часового пояса, который установили на компьютере в Windows. Это явно не очень хорошо, потому что в enterprise приложениях тайм зона (TZ) может не равняться тайм зоне на клиенте. Логично сделать прокидывание TZ в DateTimeFormat при форматировании и парсинге, но в GWT на клиенте это можно сделать только для форматирования, да и прокинуть тайм зону тоже не очень получиться - нет метода создания TZ по имени. Для справки в Java это есть: TimeZone timeZone = TimeZone.getTimeZone(“Europe/Moscow”); SimpleDateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy HH:mm...

Web-инструменты

За полгода работы с web-приложениями у меня накопился небольшой набор инструментов, которыми я пользуюсь. В этом посте я хочу рассказать об этих приложениях т.к. еще полгода назад я о них (почти о всех) даже и не слышал. Начнем с того, что разработка преимущественно ведется для IE7, IE8, FF. Причем в качестве языков программирования я использую java + javascript. Итак для программирования под IE7, IE8 собственно нужны эти браузеры, для этого можно использовать IE collection . Великолепный снифер - HttpWatch . Однако, я считаю, нет смысла в использовании бесплатной версии, потому что в ней недостаточно функциональности, в отличии от Professional Edition. В качестве инструмента просмотра html и javascript-консоли я использую BebugBar Для debug'a javascript установлено СompanionJS Для FF есть отличное комплексное решение Firebug , которое совмещает все возможности из перечисленных выше инструментов для ie и имеет большую функциональность. Правда по части анализа трафика HttpW...

Звания IT-работников

Изображение
Некоторое время назад я пытался найти кем можно стать начиная с программиста и куда эта дорога может привести. К сожалению ничего толкового мне найти не удалось. Поэтому я попытался самостоятельно провести исследование на эту тему. Итак представляю вам на обозрение схему развития программиста начального уровня в нечто более разумное. Особое спасибо Дмитрию Ч. за помощь. Стрелки обозначают переходы из одной должности в другую. В общем случае, возможен любой переход, однако на мой взгляд, нарисованный на схеме переходы наиболее вероятны. Итак все начинается с JD - Junior Developer (тот кто только, что устроился на работу в компанию на последнем курсе университета). У него 3 пути. Он может продолжать подниматься по лестнице разработчика: D - Developer (понимает чем отличается программирование в комании от программирования в университете или школе); SD - Senior Developer (хорошо знает ряд технологий); LD - Lead Developer (знает еще больше технологий, знает как работает весь проект,...