KruASe76 / news-recommendation-service

Part of education at MIPT, HSSE under the lead of MTS
0 stars 0 forks source link

Add RssParser #25

Open Vlad-Ali opened 3 days ago

KruASe76 commented 3 days ago

в данный момент нас интересует только класс RssParser и dto Article, который я бы переименовал в ParsedArticle, чтобы избежать путаницы в дальнейшем, и вообще, заменил бы на record. все остальное абсолютно не нужно, максимум - в тестах (которых, кстати, нет). и да, ты это, конечно, ловко придумал - поместить все в новый пакет, чтобы пайплайн не крашился, но будь добр, перенеси упомянутые мной выше классы в org.hsse.news.parser и напиши к ним тесты :)

KruASe76 commented 2 days ago

у нас исходный код лежит не в src/, а в app/src/

KruASe76 commented 2 days ago

а файл из ресурсов лучше загружать вот так:

ClassLoader classLoader = this.getClass().getClassLoader();
File file = new File(classLoader.getResource("RssTestFile.xml").getFile());

(и сам файл должен лежать не в app/arc/main/resources, а в app/src/test/resources, ведь он для тестов и читается из модуля тестов)

Vlad-Ali commented 2 days ago

Папку app в эту ветку лучше не засылать, так как в main есть такая же. Тогда как лучше заслать сюда app, создать еще папку, в которой будет app, или как-то по-другому?

KruASe76 commented 2 days ago

Папку app в эту ветку лучше не засылать, так как в main есть такая же

...почему? я для кого структуру проекта делал?) если что, та система, которая у нас на ревью для контестов - чисто для удобства, потому что это не единая кодовая база, а отдельные задачи. в нормальных преоктах люди работают над одними и теми же файлами в одних и тех же директориях (но все же лучше, чтобы работа над одними и теми же файлами происходила последовательно, а не параллельно: так логичнее и будет меньше merge-конфликтов)

Vlad-Ali commented 1 day ago

А функцию main можно не засылать, правильно? Только папку с нужными классами и тестами, то есть всегда так в ветку нужно засылать?

KruASe76 commented 1 day ago

ну да, тестов достаточно для подтверждения работоспособности)

Vlad-Ali commented 1 day ago

Все dependency, которые используются, нужно добавлять в build.gradle.kts, верно?

KruASe76 commented 1 day ago

@Vlad-Ali да, в формате:

implementation("com.sparkjava:spark-core:2.9.4")

в блок dependencies (обрати внимание на двоеточия)

KruASe76 commented 1 day ago

а еще твоя задача сделать так, чтобы ci со сборкой не крашился если что, сборку можно запускать локально, в IntelliJ справа должно быть меню gradle, там нужно запустить таск build

KruASe76 commented 1 day ago

и да, удали src/, которая лежит вне app/

KruASe76 commented 6 hours ago

...не надо полностью перезаписывать build.gradle.kts

Vlad-Ali commented 6 hours ago

...не надо полностью перезаписывать build.gradle.kts. Я случайно не тот build добавил, новые implementation только написал

KruASe76 commented 6 hours ago

замени пж блок dependencies на

dependencies {
    testImplementation(libs.junit.jupiter)
    testRuntimeOnly("org.junit.platform:junit-platform-launcher")

    compileOnly("org.jetbrains:annotations:25.0.0")

    implementation("org.slf4j:slf4j-api:2.0.16")
    implementation("ch.qos.logback:logback-classic:1.5.12")

    implementation("org.jsoup:jsoup:1.18.1")
    implementation("com.rometools:rome:2.1.0")
}
KruASe76 commented 3 hours ago

настрой, пожалуйста у себя в IDE разделители строк не CRLF, а LF и, желательно, не просто в файлах этого проекта, а в глобальных настройках тоже так всем жить будет проще) (да, именно из-за этого в диффах показывается, что ты удалил и добавил одно и то же: там разные разделители строк)