Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Брозовский Максим #11

Open
wants to merge 17 commits into
base: master
Choose a base branch
from
Open

Conversation

BMV989
Copy link

@BMV989 BMV989 commented Dec 18, 2024

Comment on lines 8 to 9
private const double OptimalRadius = 1;
private const double OptimalAngleOffset = 0.5;

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Можно вынести в какой-нибудь класс конфигурации для настройки layouter'a и передавать в него как настройки

Comment on lines 3 to 8
public static class EnumerableExtensions
{
public static string Join(this IEnumerable<string> words, string separator = "") => string.Join(separator, words);

public static IEnumerable<string> ToLower(this IEnumerable<string> words) => words.Select(w => w.ToLower());
}

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Как будто лишняя оболочка уже существующих методов

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Убрал


namespace TagCloud.Visualization;

public class TagCloudImageGenerator(SKSizeI Size, SKTypeface fontFamily ,SKColor background, SKColor foreground)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Тоже кажется прикольно было бы иметь конфигурацию

@ksamnole
Copy link

Пока всё норм, но давай постараемся сделать максимально настраиваемый генератор, то есть сделать программу такой, чтобы можно было довольно просто ей пользоваться, но при этом можно было создавать очень разные "облака". К примеру, на вход у меня есть файл с каким-то текстом и я хочу создать облако тегов. Я могу просто закинуть файл и получить результат, а могу точечно настроить: указать шрифт, размер текста, размер картинки, исключить местоимения из слов и т.п. штуки.

@BMV989 BMV989 requested a review from ksamnole December 25, 2024 16:00
Copy link

@ksamnole ksamnole left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Действительно сильно получилось, молодец)

Comment on lines 52 to 62
builder
.RegisterType<FileReader>().As<IWordsReader>()
.OnlyIf(_ => Path.GetExtension(settings.FilePath) == ".txt");

builder
.RegisterType<CsvFileReader>().As<IWordsReader>()
.OnlyIf(_ => Path.GetExtension(settings.FilePath) == ".csv");

builder
.RegisterType<WordFileReader>().As<IWordsReader>()
.OnlyIf(_ => Path.GetExtension(settings.FilePath) == ".docx");

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Точно не уверен, но кажется если взять файл другого расширения, то всё развалится так как не будет ни одного зарегистрированного IWordsReader

Comment on lines 8 to 9
"../../../../TagCloud/WordsFilter/Dictionaries/EnUS.dic",
"../../../../TagCloud/WordsFilter/Dictionaries/EnUS.aff");

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Давай вынесем в пути относительно проекта

Required = false,
HelpText = "Words font")]
public string FontFamilyName { get; set; } = "Arial";
public SKTypeface FontFamily => SKTypeface.FromFamilyName(FontFamilyName);

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

FromFamilyName насколько мне известно может вернуть null, давай как-то сделаем чтобы если шрифт оказался некорректным, чтобы это не ломало работу программы, а просто подставлялся дефолтный

Comment on lines 33 to 35
builder.RegisterType<TagCloudGenerator>().AsSelf();
builder.RegisterType<TagCloudBitmapGenerator>().AsSelf();
builder.RegisterType<TagCloudSaver>().AsSelf();

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Давай завяжемся на интерфейсах, а не реализациях

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Как минимум для TagCloudSaver

@BMV989 BMV989 requested a review from ksamnole December 28, 2024 07:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants