Skip to content

Задание TagsCloudContainer#56

Open
dm7672 wants to merge 13 commits intokontur-courses:masterfrom
dm7672:master
Open

Задание TagsCloudContainer#56
dm7672 wants to merge 13 commits intokontur-courses:masterfrom
dm7672:master

Conversation

@dm7672
Copy link
Copy Markdown

@dm7672 dm7672 commented Dec 19, 2025

No description provided.

@@ -0,0 +1,13 @@
using System;
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Хочу коммент по организации кода оставить.
Ты сейчас выделил папку interfaces, но она у тебя на достаточно высоком уровне.

Хорошая практика в больших проектах делить сначала по областям, например: директория - FrequencyAnalyzers, в нее уже можно закинуть директорию interfaces где будет IFrequencyAnalyzer и реализация, если несколько реализаций можно выделять директорию impementations

var dict = new Dictionary<string, int>();
foreach (var w in words)
{
if (dict.ContainsKey(w)) dict[w]++; else dict[w] = 1;
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

вообще по большей части, на шарпе стараемся не писать так, на на каждую строку делать if / else. Но сильно зависит от команды, так что тут просто к сведению

public float CalculateFontSize(int frequency, int minFrequency, int maxFrequency)
{
if (minFrequency == maxFrequency) return (minFont + maxFont) / 2;
var t = (frequency - minFrequency) / (float)(maxFrequency - minFrequency);
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Старайся все таки переменный называть не одной буквой) Норм такое, в Linq, но все таки лучше давать понятнее названия


namespace TagsCloud.Interfaces
{
public interface IMorphologyAnalyzer
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Тут интерфейс можно было бы сделать IAnalyzer с Morphology реализацей и в DI настраивать

using System.Linq;
using TagsCloud.Interfaces;

public sealed class MorphologicalPreprocessor : IWordsPreprocessor
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Имея общий Analyzer можно было бы сделать общий препроцессор, а то у тебя сейчас тут приходятся завязываться на конкретный интерфейс

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

В целом ок, но старайся делать интерфейсы более переиспользуемыми

using System.Linq;
using TagsCloud.Interfaces;

public class ImageRenderer : IImageRenderer
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Тут бы в названии указать, что это за реализация рендеринга

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