ttt
30 уровень
Симферополь

Свой проект

Статья из группы Архив info.javarush
Всем привет! После недавнего неудачного прохождения собеседования в одной конторе, я решил что пора начать более активно двигаться. Задача такова - создать проект, который бы дал необходимые знания, плюс который не стыдно было бы показать на собеседовании. Идею проекта я уже придумал - своя облачная CRM система для малого бизнеса с поддержкой мобильных устройств. Так вот, есть вопрос, что вы думаете по этому поводу? Как подойти к проектированию и разработке? Хотели бы вы принять участие в данном проекте?
Комментарии (9)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Cepr0 Уровень 41
14 июня 2016
blacky Уровень 23
9 июня 2016
а тестовое от JR после 30-го уровня ты делал? сколько по времени оно у тебя займет?
Joysi Уровень 41
9 июня 2016
Я сам реализовывал большие инженерные проекты, но не в области ПО. Правда участвовал в разработке ПО со стороны заказчика :)
Мои 25 копеек:
1. Вы делаете демонстрационный проект на соискание джуна. Он должен стремиться быть идеальным во всем, кроме сложности. То есть если Вы — столяр-школяр, то для Вас лучше идеальная табуретка, чем криво сделанный шкаф в византийском стиле.
2. Сделано должно быть так, чтобы было понятно Ваше творение во всех деталях с первого раза (прозрачный код и пользовательский интерфейс).
3. Проект должен собираться при минимальном вмешательстве со стороны. Для учебного CRM не годится, если для его развертывания придется танцевать час с лишним до/после установки (не нужно заводить несколько логинов, распределять роли, назначать сложную авторизацию по группам и т.п.).
4. При проектировании учебного проекта не стоит ставить максимально-высокие цели, надо сделать приоритет на легкости расширения функционала.
Исходя из этого:
1) Напишите ТЗ с этапным созданием. Это не должен быть 200страничный труд, но и десять строк вымученных в notepad-е тоже не годятся.
1.1) Поэтапные требования к функционалу.
1.2) Требования к архитектуре ПО (основное — независимость составляющих).
1.3) Требования по срокам реализации.
1.4) Требования к моделям с описанием стандартных процессов (Например Клиенты. Есть возможность Ввести-Отредактировать-Удалить-Импортировать-Экспортировать(TXT,CSV,JSON,XML) клиента. Есть разграничение прав на данные действия.
1.5) Требования к тестам
1.6) Требования к СКВ (система контроля версий — Git, SVN и.т.п)

2) При проектировании делайте упор:
2.1) На независимость модулей. Например, если необходимо добавить другой язык, то это должно быть сведено к новому файлу properties внутрь которого внесены все строковые константы + прописать наличие данного файла и возможность его выбора (а не вылавли