JavaRush/Java блог/Архив info.javarush/Онлайн-стажировка: весенний набор
Fry
41 уровень

Онлайн-стажировка: весенний набор

Статья из группы Архив info.javarush
участников
UPD: Группа набрана. Предположительный старт ближайшего набора на проект - первая неделя мая 2016. Предположительный старт ближайшего проекта - 26 мая 2016. Следите за новостями. Все, кто оставил заявки после весеннего набора, будут проверены и зачислены в следующий набор. Good News Everyone! С радостью сообщаем вам, что начался очередной набор на онлайн стажировку! У вас есть уникальная возможность получить опыт в работе с такими технологиями: Git, Spring, Spring MVC, Spring Security, Hibernate, JPA, Junit, JSP, JSTL, ORM, REST, Bootstrap, AJAX и jQuery. Конечно, за 12 недель слишком глубоко все это не выучить, но, во-первых, вы сможете указать эти технологии в своем резюме, а во-вторых, очень вероятно, что за эти 12 недель вы узнаете о программировании больше, чем 5 лет универа. Выбор за вами. Записывайтесь, только если сможете уделять обучению 6-8 часов в неделю. Отзывы предыдущих участников можно почитать тут. Условия участия:
  • У вас есть подписка Internship, Mentor или Premium Project
  • Ваш уровень на JavaRush 30 или выше
  • Вы выполнили тестовое задание
Если ваш уровень ниже 30-го, но хотя бы 25+, вы можете попробовать дойти до 30-го уровня. Набор на онлайн-стажировку будет продолжаться до 24 февраля, так что почти месяц у вас есть. Если у вас нет подписки Internship/Mentor, то, возможно, самое время ее купить или проапгрейтить, если у вас уже есть другая Premium-подписка. Кому будет полезно: Если в вашем городе мало крупных компаний, у них высокие требования, или вы хотите выделиться на фоне других искателей работы и попасть не абы-куда, а сразу в правильное место, то вам стоит получить практический опыт на онлайн-стажировке. Онлайн стажировка – это отличный способ получить практический опыт (за ваши деньги). Где можно записаться: Оставьте свои контактные данные в разделе «МОЯ СТРАНИЦА, Реальный проект». Так же вам надо прислать ссылку на выполненное тестовое задание. Тестовое задание надо выполнить обязательно. Если вы не в состоянии справится с тестовым заданием, значит вам будет не по силам половина заданий онлайн-стажировки. Лучше порешайте задачи на JavaRush – они в разы проще. Следующая стажировка планируется через 3 месяца – не справились с тестовым заданием в этот раз – значит справитесь в следующий. Лучше день потерять, потом за пять минут долететь. Участвовать в онлайн-стажировке можно только один раз. Сроки: Стажировка длится 12 недель. Набор открыт до 24 февраля, старт самой стажировки – 25 февраля. После 24 февраля заявки приниматься не будут – будете ждать следующей стажировки (май/июнь 2016 года). Как все будет происходить: Вы будете писать достаточно большой проект и получите очень разносторонний опыт, который, что логично, поможет вам и при устройстве на работу и, уж тем более, в первый год работы. Проект рассчитан на 12 недель (3 месяца). Каждую неделю вы будете изучать очередную технологию и добавлять очередной кусок функциональности к вашему проекту. План обучения и список изучаемых технологий можно посмотреть здесь. Формат занятий В начале каждой недели вы будете получать видеозапись урока (длиной 2-4 часа!), на которой разбирается и объясняется очередная технология, а также дается задание на дом, которое вы должны сделать за неделю. Задания средней сложности. Если в первый день вы во всем разобрались, то сделайте его за 1-2 дня. Если сразу не поняли, то в неделю должны вложиться. Правильное решение Через неделю куратор стажировки выкладывает свое решение, и вы можете посмотреть/разобрать его, независимо от того, заработало у вас ваше решение или нет. Это очень эффективный подход, т.к. разбирать решения опытных разработчиков может быть на порядок полезнее, чем сделать свое кое-как. Особенно, если вы только что днями ломали голову, ища способ все сделать хорошо, быстро и красиво. Поддержка В скайпе будет создана отдельная группа, где вы и другие участники стажировки в режиме реального времени можете задавать вопросы и получать ответы от руководителя стажировки. Он может давать комментарии по изучаемой технологии, по своему решению и по своему коду. Но не по вашему коду :P
Комментарии (207)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
maluta
Уровень 40
30 июля 2016, 10:38
Решил тестовое задание. Отправил на проверку. Буду ждать овета. Спасибо за интересное задание и отличный сайт. Последний раз писал на Java в 2007 году, когда заканчивал универ. С тех пор много чего поменялось. В задании с внешним видом не сильно заморачивался. Посчитал, что главное функциональность. Сейчас понимаю, что можно было сделать проще и быстрее с использованием JpaRepository. Как говорится, умная мысля приходит опосля. :) Надеюсь на положительный результат. :)

P.S. На GitHub загрузил только WAR файл. Если потребуются исходники, скажите.
Fry
Уровень 41
30 июля 2016, 11:13
исходники, вар не грузите. Надо будет смотреть Ваш код
maluta
Уровень 40
30 июля 2016, 11:33
Уже загрузил проект в зип файле.
Fry
Уровень 41
30 июля 2016, 11:50
Зачем зип? пользуйтесь гитом правильно. Загрузите проект весь.
maluta
Уровень 40
30 июля 2016, 12:26
Просто в проекте много библиотек. Гит их грузить отказался. Или я что-то не так делал. :)
Fry
Уровень 41
30 июля 2016, 13:10
в задании все написано. выкладывать только сорцы.
maluta
Уровень 40
30 июля 2016, 17:16
Загрузил исходники
maluta
Уровень 40
30 июля 2016, 19:57
Оставил, на всякий случай zip файл, на случай если потребуется.
ksandr
Уровень 30
31 июля 2016, 08:59
написано же только исходники, зайди в пару любых проектов на гитхабе и посмотри что именно там лежит
maluta
Уровень 40
31 июля 2016, 11:44
Я его уже убрал.
maluta
Уровень 40
2 августа 2016, 23:17
Вопрос: а сколько будет длиться проверка?
Medniy
Уровень 33
26 июня 2016, 09:42
На конец то решил(как мне кажется) тестовое задание. Жду проверки… Всем спасибо за помощь!!!
Medniy
Уровень 33
22 июня 2016, 21:33
ЗДРАВСТВУЙТЕ!!.. Нужны cнова ваши наставления. Делаю приложение TODOList(список дел что нужно сделать). Есть необходимость выводить активные и завершенные дела отдельно. В таблице базы данных за это отвечает колонка status(тип TINYINT). Это нужно еще добавить в dao, service по два метода? И в контроллер как минимум 2(ActiveList, Finishedlist)
Я не уверен что правильно сформулировал запрос в методах в dao:

@Override
public ListlistActiveTasks() {
Session session = this.sessionFactory.getCurrentSession();
Listrezult = session.createQuery(«from Task WHERE status LIKE '1'»).list();
for(Task t:rezult){
logger.info(" Active Task list: "+t);
}
return rezult;
}

Если не верно подскажите пожалуйста как сделать правильно…
blacky
Уровень 23
22 июня 2016, 23:10
С like конечно будет работать, но поле-то интовое. И правильней было бы простое сравнение чисел.
Допустим от клиента ты получил информацию, что нужно отобразить только завершенные дела. Далее на уровень ниже ты можешь эту информацию передать в качестве булева флага или целочисленного значения. А на уровне дао в зависимости от параметра ты отбираешь данные. Т.е. получится 1 метод на каждый слой. Можно и по 2 метода, но функционал очень-очень схож и чтобы не было дублирования кода можно сделать параметризацию. Например:
// Web layer - 2 rest methods 
public List<Task> getActiveTasks() {
   return service.getTasks(1);
}
public List<Task> getDoneTasks() {
   return service.getTasks(0);
}
// -------------
// service layer - 1 method
public List<Task> getTasks(int status) {
   return dao.getTasks(status);
}
// -------------
// dao layer - 1 method
public List<Task> getTasks(int status) {
   // make query - "FROM Task WHERE status = "  + status
   return tasks;
}
Einstein
Уровень 31
19 июня 2016, 19:53
Пожалуйста, отправьте мне тестовое задание.
Fry
Уровень 41
19 июня 2016, 21:56
У Вас какой уровень? и подписка?
Einstein
Уровень 31
20 июня 2016, 17:56
Уровень 28. Просто хотел посмотреть задание. Я постараюсь участвовать осенн. стажировке
Fry
Уровень 41
20 июня 2016, 18:10
так еще 2 месяца. проходите курс.
Medniy
Уровень 33
19 июня 2016, 11:31
Нужна помощь!!! В модели есть поле (Date date) дата, я хочу вставить его в таблицу базы данных. Как это все настроить? Каким должен бить тип поля в базе данных, какой должен бить html input jsp-файле, может нужны какие-то аннотации в модели к этому полю? Просветлите пожалуйста. Не могу найти нормальный материал по этой теме.
blacky
Уровень 23
19 июня 2016, 22:16
Копаешь в правильном направлении. Date ни кого не обошел стороной. На StackOverflow много ответов — смотри по лучшему рейтингу вопроса.
Первое — у колонки в таблице есть свой формат даты — попробуй вставлять записи из mysql-консоли.
Второе — типы данных энтити хибера нужно согласовать с типами таблицы, т.е. должна быть правильная сериализация и десериализация объектов.
Третье — с клиента поступают данные формы и их формат тоже нужно знать, чтобы правильно сериализовать/десериализовать, т.к. http — это текстовый протокол.
См. стандарт ISO-8601
Medniy
Уровень 33
20 июня 2016, 10:23
Ух какая жесть. Сделал, добавляет. Спасибо.
Medniy
Уровень 33
11 июня 2016, 21:17
И снова БЕДА. Какая-то ошибка запроса при добавлении задания.




ССЫЛКА НА КОД В GOOGLEDRIVE
Medniy
Уровень 33
12 июня 2016, 20:32
blacky
Уровень 23
12 июня 2016, 21:38
У модели id должен быть типа Integer. Присылаемый id должен быть либо числом, либо null. Для персиста нового объекта нужен null, а не 0.
Для вызова методов используй curl/postman
curl -X GET http://localhost:8080/tasks
curl -X GET http://localhost:8080/remove/1
curl -X POST http://localhost:8080/tasks/add -H 'Content-Type: application/json' -d '{"dateOfStart":"2016-06-13","taskDeskr":"something", "notes": "notes"}'

Запросы выше перепиши под свои и дебажь до посинения. Посмотри как правильно связывать html-форму с моделью спринга на официальном сайте спринга.
Сделай сначала, чтобы правильно принимало данные с клиента, а потом бд. Для проверки используй модель из 1-2 параметров.
Medniy
Уровень 33
11 июня 2016, 16:49
И опять ошибка. Помогите… не знаю как решить:



Сам клас:

package NoneCom.FistProject.TODOList.model;

import java.text.SimpleDateFormat;
import java.util.Date;

import javax.persistence.*;


/**
 * Created by medniy on 30.05.2016.
 */

@Entity
@Table(name = "tasks")
public class Task {
    @Id
    @Column(name = "id")
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int id;

    @Column(name = "dateOfStart")
    private Date dateOfStart;

    @Column(name = "taskDeskr")
    private String taskDeskription;

    @Column(name = "taskStatus")
    private boolean active;

    @Column(name = "notes")
    private String notes;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public Date getDateOfStart() {
        SimpleDateFormat format = new SimpleDateFormat("dd MMMM yy hh:mm:ss");
        return dateOfStart;
    }

    public void setDateOfStart(Date dateOfStart) {
        this.dateOfStart = dateOfStart;
    }

    public String getTaskDeskription() {
        return taskDeskription;
    }

    public void setTaskDeskription(String taskDeskription) {
        this.taskDeskription = taskDeskription;
    }

    public boolean isActive() {
        return active;
    }

    public void setActive(boolean active) {
        this.active = active;
    }

    public String getNotes() {
        return notes;
    }

    public void setNotes(String notes) {
        this.notes = notes;
    }

    @Override
    public String toString() {
        return "Task{" +
                "id=" + id +
                ", dateOfStart=
Fry
Уровень 41
11 июня 2016, 18:54
переименнуй поле active в taskStatus
Medniy
Уровень 33
11 июня 2016, 20:38
о теперь все ок. спасибо за совет
Medniy
Уровень 33
11 июня 2016, 21:03
значит поля класа и таблицы должны совпадать!
Medniy
Уровень 33
7 июня 2016, 20:59
ой плохо видно… Вот часть кода с которым проблемка…
<code><tr>
      <td>
        <c:set var="dateNow" value="<%=new java.util.Date()%>"  />
        <fmt:formatDate type="both" dateStyle="medium" timeStyle="medium" var="Now" value="${dateNow}" />(в этой строчке вероятно ошибка)
        <form:hidden  path="dateOfStart" value="${Now}"/>
      </td>
    </tr></code>
Заранее спасибо
Fry
Уровень 41
7 июня 2016, 22:09
возможно не подключен в jsp taglib fmt
Medniy
Уровень 33
8 июня 2016, 20:19
да. Вы правы. У меня был подключен fmt, но ссылка там не та что нужно была
Medniy
Уровень 33
7 июня 2016, 20:55
подскажите что тут не так(томкат не пропускает):

arver
Уровень 30
28 апреля 2016, 18:28
По идее первая неделя мая, хотя меня больше интересует вердикт)