Git Product home page Git Product logo

prefixtree's People

Contributors

alexandro9911 avatar

Watchers

 avatar

prefixtree's Issues

Upgrade impl.

  • В коде не должно быть лишних комментариев. Если Вам приходится писать комментарии для того, чтобы Ваш код был понятен, то это плохой код.
  • В общем случае в коде не должно быть вызовов System.out.println. Если Вам необходимо логгирование действий программы, то для этого стоит использовать специальные библиотеки. Если Вам необходимо отладить свою программу, то следует аоспользоваться специальным режимом запуски программы в Вашей ide --- debug.
  • child --- это ребенок в единственном числе, у Вас же внутри экземпляра Node хранится множество узлов. Очень важно, чтобы имена переменных и методов соответствовали тому, что действительно делает эта перменная/метод.
  • Вместо ArrayList надо возвращать List, вместо HashMap --- Map. Это правило в общем работает и для всех остальных типов коллекций.
  • Некоторые методы в PrefixTrie необходимы только для тестирования. Такие методы стоит вынести в тестовый пакет Вашей программы (отдельным классом или в класс с самими тестами) хотя бы ради того, чтобы они не захламляли основной код программы.
  • Метод hasChild реализован ужасно. Все, что Вы хотели в нем сделать можно записать одной командой.
  • Метод input всегда возвращает true.
  • Составление стэка узлов внутри метода delete очень похоже на то, что делает listNodes. Подумайте, может быть одинаковый код получится вынести в отдельный метод?
  • Метод find работает некорректно.
  • Вместо new String() лучше писать "". Подробности см. здесь. Вообще idea такие (и многие другие) вещи подсвечивает. Не игнорируйте, наведите корсур, прочитайте сообщение. В большинстве случаев можно нажать ctrl + Enter для того, чтобы idea предложила варианты исправлений.
  • Не понятно, зачем Вам метод findAllStrings, который принимает char. Это должен быть просто частный случай метода findAll.
  • Функция findAll работает некорректно.

Add Javadoc

Добавьте javadoc к разработанным классам.

Remove unused files

В Вашем проекте не должно быть лишних файлов.

Use consistent code style/formatting

В исходном коде программы встречаются разночтения стиля кодирования/форматирования. В качестве референсного стиля кодирования можно использовать google java style guide.

Также в исходном коде крайне нежелательно наличие комментариев, которые не являются Javadoc'ом. Если Ваш код нельзя понять без комментариев, значит это плохой код.

Add properly configured .gitignore file

В .gitignore файле описываются файлы и директории, которые необходимо исключить при работе с данным репоиторием в git. В число таких файлов, как правило, включают специфичные для пользователей файлы, что позволяет избежать конфликтов при конкурентной работе с репозиторием. В частности, сюда целесообразно отнести файлы, генерируемые IDE, поскольку их формат и содержание может отличаться от версии к версии. Для генерации .gitignore в idea удобно использовать .ignore плагин.

Add tests

По условиям первого задания весь разработанный код должен быть покрыт тестами. Для вычисления процента покрытия используйте Run with Coverage. От Вас, естественно, не требуется покрывать тестами такие методы, как equals, hashCode и toString.

Task 2.0

Общая формулировка
Разработать консольную утилиту, реализующую указанную в задании функциональность, на языках Java и/или Kotlin. При проектировании использовать объектно-ориентированный подход. Разработать автоматические тесты для отдельных частей программы. Написанный код держать в отдельном проекте или модуле в репозитории на GitHub.

split
Разбивает большой текстовый файл на маленькие файлы фиксированного размера.

file задаёт имя входного файла.
Флаг -o ofile задаёт базовое имя выходного файла. Если параметр отсутствует, базовое имя выходного файла равняется “x”. Если параметр равен “-”, в качестве базового имени выходного файла следует использовать имя входного файла.
Флаг -d означает, что выходные файлы следует называть “ofile1, ofile2, ofile3, ofile4 …”, где ofile это базовое имя выходного файла. Если же этот параметр не указан, то файлы должны называться “ofileaa, ofileab, ofileac, ofilead … ofileaz ofileba ofilebb … ”.
Флаг -l num указывает размер выходных файлов в строчках. По умолчанию выходные файлы имеют размер в 100 строчек.
Флаг -с num указывает размер выходных файлах в символах.
Флаг -n num указывает количество выходных файлов. Размер файлов при этом должен считаться автоматически.

Command line: split [-d] [-l num|-c num|-n num] [-o ofile] file

В случае, когда какое-нибудь из имён файлов указано неверно или одновременно указано несколько флагов управления размером, следует выдать ошибку.

Кроме самой программы, следует написать автоматические тесты к ней.

Use common project structure

В java проектах принято файлы исходного кода организовать в определнной структуре папок. Описание одного из наиболее распространенных способов организации проекта смотри здесь или здесь.

Кроме того, в java принято орагнизовывать классы в пакеты. Общепринятые правила именования пакетов см. здесь. Понятно, что у Вас скорее всего нет никакого сайта. В этом случае можно его придумать или взять название орагнизации, в рамках которой делается проект. Например, org.spbstu.your_surname.

Каждый файл исходного кода должен находится в структуре папок, соответствующей названию его пакета. Например, если файл исходного кода озаглавлен директивой package com.mycompany.myname, то этот файл должен располагаться по пути com/mycompany/myname относительно папки с исходным кодом внутри проекта.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.