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

Бочаров Александр #12

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

Conversation

Geratoptus
Copy link

@Geratoptus Geratoptus commented Dec 18, 2024

… поиск каждый раз с центра раскладки
- Тесты для ридеров .csv и .docx файлов
- Тест для CloudGenerator
- Тесты для ридеров .csv и .docx файлов
- Тест для CloudGenerator
{
var container = BuildContainer(settings);
var generator = container.Resolve<CloudGenerator>();
Console.WriteLine("File saved in " + generator.GenerateTagCloud());
Copy link

Choose a reason for hiding this comment

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

Это похоже на точку расширения)

Например, мы захотим написать десктоп или Web интерфейс для этого.
Тогда в каждом таком "клиенте" будет дублирование подобного кода.

Как понимаешь, вопрос ко всему файлу и архитектуре этого клиента)

builder.RegisterType<BoringWordsFilter>().As<IWordsFilter>();
}

private static void RegisterLayouters(ContainerBuilder builder, Options settings)
Copy link

Choose a reason for hiding this comment

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

А тут нужен Options?

Copy link

Choose a reason for hiding this comment

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

Вопрос даже чуть более глубокий: нужен ли он хоть где-то, кроме RegisterSettings?
Если он нужен еще где-то, то как будто абстракция протекает))

var enumerable = expectedEnumerable.Take(elementsNumber).ToList();

using var enumerator = enumerable.GetEnumerator();
var actualEnumerable = enumerator.ToIEnumerable();
Copy link

Choose a reason for hiding this comment

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

А в чем прикол?)
Объясни пж, я правда не понимаю

Copy link

Choose a reason for hiding this comment

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

ToIEnumerable вроде бы даже нигде кроме тестов не используется, хелпани плиз)


public interface IWordsFilter
{
List<string> ApplyFilter(List<string> words);
Copy link

Choose a reason for hiding this comment

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

NIT: а почему тут List?)
Принимать более обобщенный тип ведь правильно

@@ -0,0 +1,8 @@
namespace TagCloud.WordsReader;

public static class EnumerableExtensions
Copy link

Choose a reason for hiding this comment

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

Вроде бы только один раз используется, и тот в тестах)

@@ -0,0 +1,6 @@
namespace TagCloud.WordsReader;

public interface IWordsReader
Copy link

Choose a reason for hiding this comment

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

Такой вопрос: а если мы захотим сделать через веб? У нас будет какая-то формочка, куда мы будем вводить данные. Как в такой архитектуре, мы сможем поддержать этот сценарий?

@@ -0,0 +1,3 @@
namespace TagCloud.ImageSaver;

public record FileSaveSettings(string ImageName, string ImageFormat);
Copy link

Choose a reason for hiding this comment

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

А если мы захотим сделать сохранение на яндекс диск, то какие settings нужно будет передать?

Copy link

Choose a reason for hiding this comment

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

Я к тому, что, возможно, передавать Settings в конструкторе - может стать узким горлышком.
Но сразу скажу, что нет, просто хочу послушать твои мысли)

…ый класс SettingsBuilder.cs, который зависит от нового интерфейса IOptions.cs
-Внедрил в Program.cs класс SettingsBuilder.cs
-В SettingsFactory.cs теперь зависимость от интерфейса
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