1

Step 1

Задание 1

23 October—23 October

2

Step 2

Задание 2

24 October—20 November

3

Step 3

Задание 3

21 November—30 December

1

Step 1

Задание 1

23 October—23 October

2

Step 2

Задание 2

24 October—20 November

3

Step 3

Задание 3

21 November—30 December

11 October 2016 30 December 2016
Goal completed 31 December 2016

Goal author

Daniil

Belarus, Минск

30 years old

General

Пройти успешно курсы от 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...

 Goal Accomplishment Criteria

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

  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'ы определяются кураторами.

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

  • 9202
  • 11 October 2016, 19:19
Sign up

Signup

Уже зарегистрированы?
Quick sign-up through social networks.
Sign in

Sign in.
Allowed.

Not registered yet?
 
Log in through social networks
Forgot your password?