вторник, 25 февраля 2014 г.

Шаблоны разработки (полный курс) (плейлист)

Шаблоны разработки (полный курс) (плейлист)



Вот, наконец мне выделили время, чтобы прочесть полный курс по паттернам. Следите за обновлениями - лекции каждый вторник и четверг,в  принципе можно попробовать киевлянам прийти - 10:00-12:00, на Позняках.



В планах после этого курса будут рефакторинг, Enterprise patterns и еще многов сего.

среда, 10 июля 2013 г.

Design patterns (плейлист)



Извините, что опять пропал. Но вот, снова возвращаюсь. на этот раз я начал записывать курс для более опытных разработчиков - шаблоны проектирования. Очень рекомендую для просмотра, по моему, очень полезный курс для регулярного пересмотра всеми разработчиками. И не только на Java.

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

Если есть идеи для следующих курсов лекций - отписывайтесь так же. Постараюсь что-то придумать.

среда, 8 мая 2013 г.

Лекции по основам Java (плейлист)

Как видят наши читатели, писать посты мне надоело. Да, ленив уж больно. Поэтому вместо написания я занялся их записыванием. Все новодобавленные видео моих лекций я выкладываю на  Youtube вот в этом канале. Если кому интересно - слушайте и комментируйте. Буду признателен.

пятница, 26 апреля 2013 г.

Лекция по Java для начинающих

Наконец я сделал это. В смысле - записал одну свою лекцию. Вышло, скажем так, не очень. Учитывая, что писалось оно на веб-камеру. так удивительно, что хоть так вышло. Тем более, что лекция эта не первая, а третья. И уже две первых записывать придется потом. Более того, подготовиться к лекции времени было совсем мало, так что вот так.... Немного сумбурно получилось. В общем, если кому-то вдруг интересно - вот запись. Там где-то час двадцать. Смотрите, ругайте.


вторник, 4 декабря 2012 г.

XML или как его едят

Сегодня мы публикуем статью , человека, который недавно начал изучать Java. Думаю, что это будет интересно таким же новичкам, как и он. Итак, встречайте

AlexNNovak

Работа с XML, что же в этом направлении на сегодняшний момент времени написано очень много статей с примерами и примеров со статьями, некоторое из них лучше, некоторые хуже, некоторые можно сказать совсем отвратительные. Отвратительные они в том плане, что читающий их человек может совершенно бездумно скопировать пример описанный в статье и так же, не задумываясь и не углубляясь в подробности изменив два значения его использовать.  «А что в этом плохого?» совершенно справедливо спросите Вы, «Взял мол, готовый кусок кода, подправил под свои потребности и используй!», вот тут то и заключается «плохо». Используя чужой код Вы отвыкаете думать сами, и я не подразумеваю библиотеки сторонних разработчиков, я имею ввиду конкретно код примеров из статей.  Ну да ладно, я отвлекся и хватил немного в сторону.

Итак, я не претендую на ни на истину  ни на велосипед, но, перед тем как начать работу с великим и могучим XML-ем нам надо сперва определить, какое действие с ним, мы хотим выполнить, а именно: создать XML документ – записать некие данные использую определённую структуру или наоборот разобрать(parse) XML документ – из готового документа подчиненного строгой структуре извлечь интересующие нас данные. Когда мы определились, что именно мы хотим делать, мы должны понять, какими методом в данной конкретной ситуации нам удобнее и/или правильнее поступать.

Признаюсь честно, что с созданием XML документов мне пока сталкиваться не приходилось, посему буду описывать методы, к которым прибегал и которые, как я считаю для совсем уж начинающего Java программиста или QA Automation инженера самые быстрые в освоении и понимании. Итак, я выбрал два основных метода: это DOM и XPath.

вторник, 6 ноября 2012 г.

О перспективах Java. Часть 1

Получили очень интересный вопрос в комментариях, сразу его и процитирую:

Avicorn: Новичковый вопрос: на сколько сейчас востребованы программисты на java, в том числе - начинающие?
С учетом последних фортелей Oracle (смена лицензии и закрытие 100500 открытых еще Sun'ом проектов, исключение java-машины из linux-дистрибутивов и т.п.) и активного развития .net и php (если речь идет о вебе) будущее платформы видится туманным.
 Не буду голословным, поэтому начну с фактов. И сразу оговорюсь, буду говорить только про Киев, так как ситуацией в других городах не владею. Факты - это количество вакансий и количество соискателей. Вернее их отношение. Так вот, фактически последние пять лет у меня не было ни единого раза, чтобы были заполнены все вакансии - людей постоянно не хватает. Как заметили мне в комментариях - заполненность вакансий - 0.3 человека на место. Зарплаты в долларах у программистов на Java за последние пять лет же выросли от 1000 долларов до 2500 долларов для middle developer со стажем с года до 6 лет. Если кому хочется посмотреть текущую ситуацию с зарплатами, то среднюю температуру по больнице можно оценить вот здесь: на dou.ua . Обращаю внимание, что данные эти по настоящему "средние", то есть существенно искажены в сторону уменьшения, тем, что в рейтинг попадают и сотрудники гос предприятий и разработчики компаний, работающих на отечественный (читай бСССР) рынок. Почему у них зарплаты существенно меньше - чуть позже. Вывод - перспективы прекрасные.

hashCode

В прошлой заметке мы говорили о HashMap, hashcode() и немного equals().

Краткое содержание: записывая пару ключ-значение (запись)  в HashMap, мы помещаем ее в одну из ячеек (бакет) массива. То, в какую именно ячейку будет помещена запись (индекс ячейки в массиве) определяется по значению hashcode() ключа. Поскольку в один бакет может быть помещено несколько записей, то в бакет записываются не сами записи, а содержащие их связные списки.

В HashMap могут быть помещены записи только с уникальными ключами. Уникальность определяется методом equals(). То есть если

new Integer(1).equals(new Integer(1)); - вернул true - объекты равны.

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

1. равные объекты должны иметь один и тот же hashcode
 то есть, если equals - true, hashcode() возвращает одинаковое число
2. объекты, имеющие разный hashcode - неравны
то есть если hashcode() возвращает разные числа, equals обязано вернуть false

Почему соблюдать эти правила необходимо?