{"action":"opened","issue":{"url":"https://api.github.com/repos/l1feforce/FileSplitter/issues/2","repository_url":"https://api.github.com/repos/l1feforce/FileSplitter","labels_url":"https://api.github.com/repos/l1feforce/FileSplitter/issues/2/labels{/name}","comments_url":"https://api.github.com/repos/l1feforce/FileSplitter/issues/2/comments","events_url":"https://api.github.com/repos/l1feforce/FileSplitter/issues/2/events","html_url":"https://github.com/l1feforce/FileSplitter/issues/2","id":314437451,"number":2,"title":"Upgrade 2.0","user":{"login":"JohnKhandygo","id":2545754,"avatar_url":"https://avatars3.githubusercontent.com/u/2545754?v=4","gravatar_id":"","url":"https://api.github.com/users/JohnKhandygo","html_url":"https://github.com/JohnKhandygo","followers_url":"https://api.github.com/users/JohnKhandygo/followers","following_url":"https://api.github.com/users/JohnKhandygo/following{/other_user}","gists_url":"https://api.github.com/users/JohnKhandygo/gists{/gist_id}","starred_url":"https://api.github.com/users/JohnKhandygo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JohnKhandygo/subscriptions","organizations_url":"https://api.github.com/users/JohnKhandygo/orgs","repos_url":"https://api.github.com/users/JohnKhandygo/repos","events_url":"https://api.github.com/users/JohnKhandygo/events{/privacy}","received_events_url":"https://api.github.com/users/JohnKhandygo/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2018-04-15T18:02:57Z","updated_at":"2018-04-15T18:02:57Z","closed_at":null,"author_association":"NONE","body":"- [ ] Не реализован специальный случай именования выходных файлов.\r\n- [ ] \"Нумерация\" выходных файлов по умолчанию не соответствует условию.\r\n- [ ] В коде не должно быть лишних комментариев. Если для того, чтобы понять Ваш код нужны комментарии, то это плохой код. Особенно, если они не совсем правдивы. \r\n- [ ] Чтение из файла реализовано неэффективно: при больших файлах программа может упасть из-за недостатка выделенной ей памяти из-за того, что все содержимое файла считывается и хранится в памяти программы. То есть, например, для того, чтобы обработать входной файл размером 2GB программе необходимо будет выделить не менее 2GB оперативной памяти для работы (а [`File::readText`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.io/java.io.-file/read-text.html) в принципе не способен работать с файлами большего объема).\r\n- [ ] В kotlin вместо контенации строк лучше использовать string interpolation.\r\n- [ ] В тестах не покрыты случаи пустых строк в случае разбиения по строкам и переносов строк в случае разбияния по символам. \r\n- [ ] Не вижу инструкции/скриптов по сборке/запуску приложения из командной строки.\r\n- [ ] Вывод в файл реализован некорректно. \r\n- [ ] Файлы в папке output --- побочный результат запуска тестов, они не должны оставаться в проекте. Для того, чтобы решить эту проблему используйте специальный механизм junit4 [`TemporaryDirectory`](https://junit.org/junit4/javadoc/4.12/org/junit/rules/TemporaryFolder.html) ([пример использования](https://examples.javacodegeeks.com/core-java/junit/junit-temporary-folder-example/)).\r\n- [ ] Файлы в папке input, конечно, нужны для тестирования, но только для него. Такие файлы принято держать в тестовых ресурсах (src/test/resources).\r\n- [ ] У Вас какие-то проблемы с именованием функций/переменных. Постарайтесь дать переменным и методам \"говорящие\" названия. Для того, чтобы \"безболезненно\" переименовать любую сущность в idea поставьте курсов на эту сущность (например, название переменной, которую хотите переименовать) и используйте комбинацию клавиш Shift + f6.\r\n- [ ] В pom.xml `groupId` и `artifactId` --- это не одно и то же: `groupId` используется как идентификатор **группы** приложений, в то время как `artifactId` --- это **имя** конкретного приложения. "}}
{"actor":{"display_login":"JohnKhandygo"}}