Skip to content

Commit 465d439

Browse files
author
Ilia_Isakhin
committed
Added hw #1
1 parent f5fdf13 commit 465d439

File tree

10 files changed

+257
-0
lines changed

10 files changed

+257
-0
lines changed

.gitignore

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
*.class
2+
3+
# Package Files #
4+
*.war
5+
*.ear
6+
*.pydevproject
7+
.project
8+
.metadata
9+
target/
10+
bin/**
11+
tmp/**
12+
tmp/**/*
13+
*.tmp
14+
*.bak
15+
*.swp
16+
*~.nib
17+
local.properties
18+
.classpath
19+
.settings/
20+
.loadpath
21+
.nb-gradle-properties
22+
*.log
23+
24+
# External tool builders
25+
.externalToolBuilders/
26+
27+
# Locally stored "Eclipse launch configurations"
28+
*.launch
29+
30+
# CDT-specific
31+
.cproject
32+
33+
# PDT-specific
34+
35+
.buildpath
36+
*.iml
37+
*.ipr
38+
*.iws
39+
.idea/
40+
**/*.iml
41+
**/.idea/
42+
**/private
43+
*~
44+
.gradle
45+
.gradletasknamecache
46+
/build
47+
/out
48+
/intTestHomeDir
49+
/subprojects/*/out
50+
/intellij
51+
/reports
52+
/buildSrc/lib
53+
/buildSrc/build
54+
/subprojects/*/build
55+
/subprojects/docs/src/samples/*/*/build
56+
/website/build
57+
/website/website.iml
58+
/website/website.ipr
59+
/website/website.iws
60+
/performanceTest/build
61+
/subprojects/*/ide
62+
/*.iml
63+
/*.ipr
64+
/*.iws
65+
/subprojects/*/*.iml
66+
/buildSrc/*.ipr
67+
/buildSrc/*.iws
68+
/buildSrc/*.iml
69+
/buildSrc/out
70+
*.classpath
71+
*.project
72+
*.settings
73+
/bin
74+
/subprojects/*/bin
75+
.DS_Store
76+
/performanceTest/lib
77+
.textmate
78+
/incoming-distributions
79+
.idea
80+
*.sublime-*
81+
.nb-gradle
82+
/classes
83+
build
84+
pmd-config.xml
85+
findbugs-config.xml
86+
derbyDB
87+
derby.log
88+
/jbehave
89+
90+
generated-src
91+
data
92+
generatedFromThrift

pom.xml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5+
<modelVersion>4.0.0</modelVersion>
6+
7+
<groupId>ru.izh.online.course</groupId>
8+
<artifactId>oop-homework-template</artifactId>
9+
<version>1.0-SNAPSHOT</version>
10+
11+
<build>
12+
<plugins>
13+
<plugin>
14+
<groupId>org.apache.maven.plugins</groupId>
15+
<artifactId>maven-compiler-plugin</artifactId>
16+
<version>3.8.1</version>
17+
<configuration>
18+
<source>1.8</source>
19+
<target>1.8</target>
20+
</configuration>
21+
</plugin>
22+
</plugins>
23+
</build>
24+
</project>
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package ru.izh.online.course.task1;
2+
3+
import ru.izh.online.course.task1.entity.Developer;
4+
import ru.izh.online.course.task1.entity.Project;
5+
import ru.izh.online.course.task1.entity.SimpleProject;
6+
import ru.izh.online.course.task1.entity.dev.AutomatedTester;
7+
import ru.izh.online.course.task1.entity.dev.BackendDeveloper;
8+
import ru.izh.online.course.task1.entity.dev.FrontendDeveloper;
9+
10+
import java.util.Arrays;
11+
import java.util.List;
12+
13+
public class Main {
14+
15+
public static void main(String[] args) {
16+
Project project = new SimpleProject();
17+
18+
Developer techLead = new BackendDeveloper();
19+
project.assignTechLead(techLead);
20+
21+
List<Developer> team = Arrays.asList(
22+
new FrontendDeveloper(),
23+
new FrontendDeveloper(),
24+
new BackendDeveloper(),
25+
new BackendDeveloper(),
26+
new AutomatedTester()
27+
);
28+
project.addTeam(team);
29+
}
30+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package ru.izh.online.course.task1.entity;
2+
3+
/**
4+
* Абстрактный разработчик. Должен иметь поля: имя, фамилию, уровень, список названий скиллов, опыт работы.
5+
*/
6+
public abstract class Developer {
7+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package ru.izh.online.course.task1.entity;
2+
3+
/**
4+
* Уровень разработчика, есть поля название и численная ценность (1-5)
5+
*
6+
* Возможные значения:
7+
* Студент
8+
* Джуниор
9+
* Миддл
10+
* Сеньор
11+
* Техлид
12+
*/
13+
public enum Level {
14+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package ru.izh.online.course.task1.entity;
2+
3+
import java.util.List;
4+
5+
/**
6+
* Проект
7+
*/
8+
public interface Project {
9+
10+
/**
11+
* Метод, назначающий техлида на текущий проект
12+
* @param developer - должен быть уровня L5
13+
* @return удалось назначить техлида или нет
14+
*/
15+
boolean assignTechLead(Developer developer);
16+
17+
/**
18+
* Назначает всю команду в проект. Метод ОБЯЗАН вызывать метод addDeveloper
19+
* @param developers
20+
*/
21+
boolean addTeam(List<Developer> developers);
22+
23+
/**
24+
* Назначает разработчика на проект. Должен проверять скиллы
25+
* @param developer
26+
* @return
27+
*/
28+
boolean addDeveloper(Developer developer);
29+
30+
/**
31+
* Проверяет, удовлетворяет ли разработчик проекту: количество совпадающих скиллов должно быть больше 50%
32+
* @param developer
33+
* @return
34+
*/
35+
boolean isDeveloperFits(Developer developer);
36+
37+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package ru.izh.online.course.task1.entity;
2+
3+
import java.util.List;
4+
5+
/**
6+
* Сущность проект. У проекта есть id, техлид (разработчик уровня 5), команда разработки(бек-девелоперы, тестеры,
7+
* фронт-девелоперы), заказчик, дата старта, предположительная дата окончания, список названий технологий
8+
*/
9+
public class SimpleProject implements Project{
10+
11+
public boolean assignTechLead(Developer developer) {
12+
return false;
13+
}
14+
15+
public boolean isDeveloperFits(Developer developer) {
16+
return false;
17+
}
18+
19+
public boolean addTeam(List<Developer> developers) {
20+
return false;
21+
}
22+
23+
public boolean addDeveloper(Developer developer) {
24+
return false;
25+
}
26+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package ru.izh.online.course.task1.entity.dev;
2+
3+
import ru.izh.online.course.task1.entity.Developer;
4+
5+
/**
6+
* Автотестировщик, должен иметь поле среднее количество найденных багов в час
7+
*/
8+
public class AutomatedTester extends Developer {
9+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package ru.izh.online.course.task1.entity.dev;
2+
3+
import ru.izh.online.course.task1.entity.Developer;
4+
5+
/**
6+
* Бэк-разработчкик, должен иметь поле любимая база данных
7+
*/
8+
public class BackendDeveloper extends Developer {
9+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package ru.izh.online.course.task1.entity.dev;
2+
3+
import ru.izh.online.course.task1.entity.Developer;
4+
5+
/**
6+
* Фронт-разработчик - должен иметь поле любимый JS-фреймворк
7+
*/
8+
public class FrontendDeveloper extends Developer {
9+
}

0 commit comments

Comments
 (0)