Profile cover photo
Profile photo
JavaRush
1,344 followers -
JavaRush - обучение программированию на Java в форме онлайн-игры
JavaRush - обучение программированию на Java в форме онлайн-игры

1,344 followers
About
JavaRush's posts

Post has attachment
Public
Update JavaRush

Друзья! Пришло время для очередного обновления JavaRush. В рамках текущего апдейта мы исправили часть ошибок, о которых вы нам писали, и реализовали ряд предложенных вами функций.

Список новых крутых фич можно посмотреть здесь http://info.javarush.ru/news/2017/03/29/Update-JavaRush.html


Post has attachment
Update JavaRush 2.0

Друзья! Пришло время для очередного обновления JavaRush. В рамках текущего апдейта мы исправили часть ошибок, о которых вы нам писали, и реализовали ряд предложенных вами функций.

Список улучшений можно посмотреть здесь - http://info.javarush.ru/news/2017/03/14/Update-JavaRush-2-0_4.html

Post has attachment
Update JavaRush 2.0

Друзья! Пришло время для очередного обновления JavaRush. В рамках текущего апдейта мы исправили часть ошибок, о которых вы нам писали, и реализовали ряд предложенных вами функций.

Список улучшений можно посмотреть здесь - http://info.javarush.ru/Bender/2017/03/03/Update-JavaRush-2-0_3.html

Post has attachment
Update JavaRush 2.0

Друзья! Сегодня мы обновили JavaRush. В рамках текущего апдейта мы исправили часть ошибок, о которых вы нам писали, и реализовали ряд предложенных вами функций.

Список улучшений можно посмотреть здесь - http://info.javarush.ru/news/2017/02/28/Update-JavaRush-2-0_2.html

Post has attachment
Среда разработки JavaRush. Работа с WebIDE

Начать работать с WebIDE - http://bit.ly/2d7xcpy

Post has attachment
JavaRush 2.0: масштабное обновление легендарного курса

Этого события мы ждали полтора года. С момента рождения курс претерпел существенные изменения, но, пожалуй, он никогда ещё не менялся так резко, как сейчас. Представляем вашему вниманию продукт, который сможет изменить всю индустрию online-обучения.

Он называется JavaRush 2.0 - http://javarush.ru
Photo

Post has attachment
Друзья!

Приближается час ИКС! Лайнер JavaRush 2 Dark Master готов к выходу в открытый космос, остались считанные часы подготовки. Сегодня мы перегружаем наши серверы, перезаливаем базы данных… словом, идет техническая работа. В связи с этим сегодня сайт JavaRush работать не будет! Но уже совсем скоро вы сможете оценить вторую версию нашего курса во всей красе!

Следите за объявлениями в группе и на info!
Photo

Post has attachment
Как стать программистом (часть 1)

Итак, ты испытываешь острое желание стать программистом. Куда теперь бежать?

На этот вопрос существует множество ответов в сети. Некогда мы уже писали статью об этом. Тем не менее, судя по вопросам, которые нам задают в социальных сетях, новички часто теряются в обилии информации и не знают, с чего конкретно начинать. В принципе, мы на JavaRush только тем и занимаемся, что помогаем ответить на этот вопрос. Однако для тех, кто совсем растерялся, мы решили составить приблизительный план действий.
Для начала определись с пулом технологий.
Выбери 2-3 основных источника знаний, а также с десяток дополнительных. Но не забывай «гуглить», если что-то не ясно.
Выбери среду разработки и установи на свою рабочую машину всё необходимое ПО.
Определись с тем, что еще учить и где черпать информацию.

А теперь обо всем по порядку.

Хочу освоить программирование с нуля. Что теперь?

Продолжение: http://goo.gl/Bgz0sG

Post has attachment
⚠ Первая лекция CS50 уже на JavaRush [на русском!] - http://javarush.ru/cs50.html

Это Хогвартс? Нет, друзья, это Гарвард и первая лекция по основам программирования CS50 с русским переводом! Даже на этом вводном занятии (хотя мозг отказывается воспринимать это яркое интерактивное действо как «занятие») David Malan уже успел рассказать и показать много интересного -

Вот о чем:

• родной язык компьютеров — двоичная система счисления
• ASCII — как записываются символы
• как алгоритмизировать задачи — на живых примерах. Очень живых=)
• почему Дэвид разорвал телефонный справочник или что такое двоичный поиск
• сложность алгоритма — что, как и почему
• о том, что такое циклы, расскажет никто иной, как Марк Цукерберг, основатель Facebook
• …а еще вы увидите его же в 2005 году, в качестве приглашенного гостя CS50. Хм… судя по аудитории, интерес к технологиям вырос в десятки раз!

И поверьте, смотрится это всё гораздо интереснее, чем это скучное перечисление. Убедитесь сами - http://javarush.ru/cs50.html

Post has attachment
Вопросы на собеседование Hibernate
Статьи
Hibernate
Данная статья является переводом и улучшением зарубежных статей (список ресурсов перечислен в конце статьи). Ответы на некоторые вопросы расширены, представлены ссылки на сторонние ресурсы которые содержат ответы которые могут возникнуть в процессе чтения.

1) Что такое Hibernate?

Это фреймворк для объектно-реляционного отображения сущностей в традиционные реляционные базу данных.
Основные возможности фреймворка:
1) Автоматическая генерация и обновление таблиц в базах данных;
2) Поскольку основные запросы к базе данных (сохранение, обновление, удаление и поиск) представлены как методы фрейморка, то значительно сокращается код, который пишется разработчиком;
3) Обеспечивает использование SQL подобного языка (HQL — hibernate query language). Запросы HQL могут быть записаны рядом объектами данных (POJO классы подготовленные для работы с базой данных).

2) Как Hibernate помогает в программировании?

Hibernate реализует ряд фичь которые значительно упрощают работу разработчика.
— Одной из таких фичь является то, что hibernate позволяет разработчику избежать написания большинства SQL запросов (они уже реализованы, вам надо просто использовать методы которые предоставляет фреймворк).
— Под бортом у Hibernate есть куча полезных инструментов которые значительно ускоряют работу приложения, самыми примечательными из них являются двухуровневое кэширования и тонкие настройки lazy и fetch изъятия.
— Сам генерирует таблицы в базу данных.

3) Способы конфигурации работы с Hibernate.

Существует четыре способа конфигурации работы с Hibernate:
— используя аннотации;
— hibernate.cfg.xml;
— hibernate.properties;
— persistence.xml.
Самый частый способ конфигурации: через аннотации и файл persistence.xml, что касается файлов hibernate.properties и hibernate.cfg.xml, то hibernate.cfg.xml главнее (если в приложение есть оба файла, то принимаются настройки из файла hibernate.cfg.xml). Конфигурация аннотациями, хоть и удобна, но не всегда возможна, к примеру, если для разных баз данных или для разных ситуаций вы хотите иметь разные конфигурацию сущностей, то следует использовать xml файлы конфигураций.

4) Какие ключевые интерфейсы использует Hibernate?

Существует пять ключевых интерфейсов которые используются в каждом приложении связанном с Hibernate:
— Session interface;
— SessionFactory interface;
— Configuration interface;
— Transaction interface;
— Query and Criteria interfaces.

5) Какая роль интерфейса Session в Hibernate?

Session — это основной интерфейс, который отвечает за связь с базой данных. Так же, он помогает создавать объекты запросов для получение персистентных объектов. (персистентный объект — объект который уже находится в базе данных; объект запроса — объект который получается когда мы получаем результат запроса в базу данных, именно с ним работает приложение). Обьект Session можно получить из SessionFactory:
Session session = sessionFactory.openSession();
Роль интерфейса Session:
— является оберткой для jdbc подключения к базе данных; (https://ru.wikipedia.org/wiki/Java_Database_Connectiv..)
— является фабрикой для транзакций (согласно официальной документации transaction — аllows the application to define units of work, что, по сути, означает что транзакция определяет границы операций связанных с базой данных).
— является хранителем обязательного кэша первого уровня.

6) Какая роль интерфейса SessionFactory в Hibernate?

Именно из объекта SessionFactory мы получаем объекты типа Session. На все приложение существует только одна SessionFactory и она инициализируеться вместе со стартом приложения. SessionFactory кэширует мета-дату и SQL запросы которые часто используются приложением во время работы. Так же оно кэширует информацию которая была получена в одной из транзакций и может быть использована и в других транзакциях.
Обьект SessionFactory можно получить следующим обращением:
SessionFactory sessionFactory = configuration.buildSessionFactory();

7) Какие типы коллекций представлены в Hibernate?

Bag, Set, List, Map, Array.

8) Что собой являет коллекция типа Bag и зачем она используется?

Своей реализации тип коллекции Bag очень напоминает Set, разница состоит в том, что Bag может хранить повторяющиеся значения. Bag хранит непроиндексированный список элементов. Большинство таблиц в базе данных имеют индексы отображающие положение элемента данных один относительно другого, данные индексы имеют представление в таблице в виде отдельной колонки. При объектно-реляционном маппинге, значения колонки индексов мапится на индекс в Array, на индекс в List или на key в Map. Если вам надо получить коллекцию объектов не содержащих данные индексы, то вы можете воспользоваться коллекциями типа Bag или Set (коллекции содержат данные в неотсортированном виде, но могут быть отсортированы согласно запросу).

9) Какая разница в работе методов load(); и get();?

Метод load(); обычно используется когда в не уверен что запрашиваемый объект уже находится в базе данных. Если объект не найден, то метод кидает исключение Если объект найден — метод возвращает прокси объект, который является ссылкой на объект находящийся в базе данных (запрос в базу данных еще не был осуществлен, своего рода lazy изъятие), непосредственный запрос к базе данных когда мы непосредственно обращаемся к необходимому объекту через прокси объект.
Метод get(); используется тогда, вы на 100 процентов не уверены есть ли запрашиваемый объект в базе данных. В случае обращение к несуществующему объекту, метод get(); вернет null. В случае нахождения объект, метод get(); вернет сам объект и запрос в базу данных будет произведен немедленно.

10) Что такое Lazy fetching(изъятие) в Hibernate?

Тип изьятия Lazy, в Hibernate, связан с листовыми(дочерними) сущностями и определяют политику совместного изъятия, если идет запрос на изъятие сущности родителя.
Простой пример:
Есть сущность Дом. Он хранит информацию о своем номере, улице, количество квартир и информацию о семьях которые живут в квартирах, эти семьи формируют дочернюю сущность относительно сущности Дом. Когда мы запрашиваем информацию о Доме, нам может быть совершенно ненужным знать информацию семьях которые в нем проживают, тут нам на помощь приходит lazy(ленивое) изъятие(fetching) которая позволяет сконфигурировать сущность Дом, чтобы информацию о семьях подавалась только по востребованию, это значительно облачает запрос и ускоряет работу приложения.

Photo
Wait while more posts are being loaded