Пройти успешно курсы от NetCracker
Почти случайно попал на курсы (проходил мимо, когда у них было собеседование =) и теперь надо постараться успешно их пройти, т.к. перспективы весьма радужные. Многие из пунктов цели являются необязательными или "на будущее", такие как большой список литературы и т.п. Но есть и такие, которые требуют немедленного изучения. Но записывать сюда решил всю информацию, т.к. если не сразу, то позже можно будет сюда обратиться и сделать то, что не доделал.
По ходу дела буду расставлять приоритеты и в зависимости от них двигаться. Главной задачей является не зациклиться на чем-то одном, в какое-то время, а делать все во время и в правильном порядке.
Конкретные главы из книг и прочитанные статьи, показавшиеся мне интересными, буду здесь конспектировать или помечать. Для таких конспектов буду отводить отдельный "пост", чтобы их было легче найти и просматривать в будущем. В перспективе мб создам отдельные цели для некоторых книг, но это не сейчас.
Также планирую описывать общие впечатления от этих курсов.
Поехали!
Источники
- http://www.intuit.ru/studies/courses/16/16/lecture...
- Брюс Эккель. Философия java
- Гради Буч. Объектно-ориентированный анализ и проектирование
- Бретт Маклафлин. Объектно-ориентированный анализ и проектирование
- Вайсфельд М. Объектно-ориентированное мышление
- http://javatalks.ru/topics/18502
- Р.Мартин. Быстрая разработка программного обеспечения
- https://www.udemy.com/mastering-object-oriented-design-in-java/
- Гамма Э. и др. Приёмы объектно-ориентированного проектирования. Паттерны проектирования
- Стелтинг С. Применение шаблонов Java
- Мурат Йенер. Java EE. Паттерны проектирования для профессионалов
- Head first patterns
- https://www.udemy.com/java-design-patterns-tutori...
- Workin effectively with lgegacy code +book
- Рефакторинг книга Мартина Фаулера +books, Рефакторинг с использованием шаблонов
- https://habrahabr.ru/post/112042/
- https://google.github.io/styleguide/javaguide.html
- https://blog.goyello.com/2013/01/21/top-9-principl...
- Роберт Мартин. Чистый код
- Best practices
Goal Accomplishment Criteria
Успешно прошел курсы и получил предложение о работе.
-
Задание 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
Задание
Создать веб-приложение на основе предыдущего задания, удовлетворяющее следующим требованиям:
- • Учесть требования предыдущего задания.
- • Информацию о предметной области хранить в БД (в качестве СУБД рекомендуется 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
Задание
Создать веб-приложение на основе задания, удовлетворяющее следующим требованиям:
- • Учесть требования предыдущего задания.
- • Разбить задания в команде (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
Don't miss new posts!
Subscribe for the Goal and follow through to its completion