1

Этап 1

Задание 1

23 октября—23 октября

2

Этап 2

Задание 2

24 октября—20 ноября

3

Этап 3

Задание 3

21 ноября—30 декабря

1

Этап 1

Задание 1

23 октября—23 октября

2

Этап 2

Задание 2

24 октября—20 ноября

3

Этап 3

Задание 3

21 ноября—30 декабря

11 октября 2016 30 декабря 2016
Цель завершена 31 декабря 2016

Автор цели

Общая

Пройти успешно курсы от NetCracker

Почти случайно попал на курсы (проходил мимо, когда у них было собеседование =) и теперь надо постараться успешно их пройти, т.к. перспективы весьма радужные. Многие из пунктов цели являются необязательными или "на будущее", такие как большой список литературы и т.п. Но есть и такие, которые требуют немедленного изучения. Но записывать сюда решил всю информацию, т.к. если не сразу, то позже можно будет сюда обратиться и сделать то, что не доделал.

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

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

Также планирую описывать общие впечатления от этих курсов.

Поехали!



Источники

  1. http://www.intuit.ru/studies/courses/16/16/lecture...
  2. Брюс Эккель. Философия java
  3. Гради Буч. Объектно-ориентированный анализ и проектирование
  4. Бретт Маклафлин. Объектно-ориентированный анализ и проектирование
  5. Вайсфельд М. Объектно-ориентированное мышление
  6. http://javatalks.ru/topics/18502
  7. Р.Мартин. Быстрая разработка программного обеспечения
  8. https://www.udemy.com/mastering-object-oriented-design-in-java/
  9. Гамма Э. и др. Приёмы объектно-ориентированного проектирования. Паттерны проектирования
  10.  Стелтинг С. Применение шаблонов Java
  11.  Мурат Йенер. Java EE. Паттерны проектирования для профессионалов
  12. Head first patterns
  13. https://www.udemy.com/java-design-patterns-tutori...
  14. Workin effectively with lgegacy code +book
  15. Рефакторинг книга Мартина Фаулера +books, Рефакторинг с использованием шаблонов
  16. https://habrahabr.ru/post/112042/
  17. https://google.github.io/styleguide/javaguide.html
  18. https://blog.goyello.com/2013/01/21/top-9-principl...
  19. Роберт Мартин. Чистый код
  20. Best practices
    1. https://docs.oracle.com/cd/A97688_16/generic.903/b...
    2. https://docs.oracle.com/cd/A97688_16/generic.903/b...
    3. http://howtodoinjava.com/java-best-practices/
    4. https://www.javacodegeeks.com/2015/06/java-program...

 Критерий завершения

Успешно прошел курсы и получил предложение о работе.

  1. Задание 1

    Задание

    Создатьконсольноеприложение, удовлетворяющееследующимтребованиям:

    • Использовать возможности ООП: классы, наследование, полиморфизм, инкапсуляция.
    • Каждый класс должен иметь отражающее смысл название и информативный состав.
    • Наследование должно применяться только тогда, когда это имеет смысл.
    • При кодировании должны быть использованы соглашения об оформлении кода java code convention.
    • Классы должны быть грамотно разложены по пакетам.
    • Консольное меню должно быть минимальным.

    Подзадание

    • 1. Выбрать себе задание из списка заданий. Спроектировать классы для задания в UML.
    • 2. Написать иерархию классов по выбранному проекту в коде. Переопределить методы equals(), hashCode(), toString().
    • 3. Написать/сгенерировать javadoc для классов из проекта.
    • 4. Изучить файл Java Code Conventions.pdf. Отрефакторить проект в соответствии с Java Code Conventions (правильные имена пакетов, классов, методов и пр.). Придумать правильную иерархию пакетов для всех будущих модулей задания.
    • 5. Добавить в классы итогового проекта необходимые конструкторы. Добавить в классы итогового проекта геттеры и сеттеры. Использовать в классах проекта правильные модификаторы доступа. Создать объекты иерархии в итоговом проекте, инициализировать их корректными значениями и вывести все в консоль.
    • 6. Реализовать в проекте счетчик объектов через statiс. Реализовать в проекте интерфейсы и абстрактные классы (хотя бы по одному)
    • 7. Реализовать в проекте модуля custom exceptions и их корректную обработку
    • 8. Посмотреть в исходном коде Java как реализованы коллекции (интерфейсы, абстрактные классы, конкретные классы). Перенять элементы архитектуры коллекций для своих проектов. Использовать List, Set, Map в проекте. Использовать Comparable и Comparator в проекте. Использовать ListIterator в проекте. Использовать в проекте GregorianCalendar.
    • 9. Реализовать запись/чтение символьной и байтовой информации в файл в итоговом проекте. Реализовать сериализацию в итоговом проекте (иерархия, static, transient).
    • 10. Реализовать перечисления в итоговом проекте. Реализовать параметризацию (generics) в итоговом проекте.
    • 11. Прочитать главу 1 из книги Мартина Фаулера «Рефакторинг»
    • Отрефакторить итоговый проект модуля по принципам, изложенным в книге.
    • 12. Отрефакторить код по SOLID принципам.

    Сроки

    05.10 - 23.10

    Примечание

    Задание выполняется индивидуально

  2. Задание 2

    Задание

    Создать веб-приложение на основе предыдущего задания, удовлетворяющее следующим требованиям:

    • • Учесть требования предыдущего задания.
    • • Информацию о предметной области хранить в БД (в качестве СУБД рекомендуется MySQL, etc.)
    • • Развернуть приложение на сервере (Tomcat, etc.)
    • • Использовать сервлеты и JSP.
    • • Использовать GitHub.
    • • Использовать Log4j.

    Подзадание

    • 1. Сделать формы логина, регистрации, меню для сайта (HTML+CSS+JS-валидация).
    • 2. Информацию о предметной области хранить в БД, для доступа использовать API JDBC с использованием пула соединений, стандартного или разработанного самостоятельно.
    • 3. Приложение должно поддерживать работу с кириллицей (быть многоязычным), в том числе и при хранении информации в БД.
    • 4. Архитектура приложения должна соответствовать шаблону Model-View-Controller.
    • 5. При реализации алгоритмов бизнес-логики использовать шаблоны GoF: Factory Method, Command, Builder, Strategy, State, Observer etc.
    • 6. В страницах JSP применять библиотеку JSTL.
    • 7. При разработке бизнес-логики использовать сессии и фильтры.
    • 8. Код должен содержать комментарии.

    Сроки

    24.10 - 20.11

    Примечание

    Задание выполняется индивидуально

  3. Задание 3

    Задание

    Создать веб-приложение на основе задания, удовлетворяющее следующим требованиям:

    • • Учесть требования предыдущего задания.
    • • Разбить задания в команде (Team Lead).
    • • Информацию о предметной области хранить в БД (в качестве СУБД рекомендуется MySQL, etc.)
    • • Развернуть приложение на сервере (Tomcat, etc.)
    • • Использовать GitHub.
    • • Использовать JUnit.
    • • Использовать Log4j.
    • • Использовать Hibernate.
    • • Использовать Spring.

    Подзадание

    • 1. Сделать формы логина, регистрации, меню для сайта (HTML+CSS+JS-валидация).
    • 2. Информацию о предметной области хранить в БД, для доступа использовать API JDBC с использованием пула соединений, стандартного или разработанного самостоятельно.
    • 3. Приложение должно поддерживать работу с кириллицей (быть многоязычным), в том числе и при хранении информации в БД.
    • 4. Архитектура приложения должна соответствовать шаблону Model-View-Controller.
    • 5. При реализации алгоритмов бизнес-логики использовать шаблоны GoF: Factory Method, Command, Builder, Strategy, State, Observer etc.
    • 6. В страницах JSP применять библиотеку JSTL.
    • 7. При разработке бизнес-логики использовать сессии и фильтры.
    • 8. Код должен содержать комментарии.

    Сроки

    21.11 - 30.12

    Примечание

    Задание выполняется в командах по 3-4 человека с TeamLead'ом.
    Обязанности TeamLead'a:

    • - распределение задач в команде (учесть, что каждый должен поучавствовать в написание серверной части, клиентской части и БД);
    • - ответсвенность за выполнение проекта в целом;
    • - следить за выполнением заданий командой.

    Команды и TeamLead'ы определяются кураторами.

    Финальный проект с защитой. Защита всей командой.

  • 9240
  • 11 октября 2016, 19:19
Регистрация

Регистрация

Уже зарегистрированы?
Быстрая регистрация через соцсети
Вход на сайт

Входите.
Открыто.

Еще не зарегистрированы?
 
Войти через соцсети
Забыли пароль?