-
Notifications
You must be signed in to change notification settings - Fork 245
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
Рушкова Ольга #230
base: master
Are you sure you want to change the base?
Рушкова Ольга #230
Conversation
ObjectPrinting/ObjectPrinting.csproj
Outdated
<ItemGroup> | ||
<Folder Include="Tests\TestCases\" /> | ||
</ItemGroup> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Лишнее
ObjectPrinting/PrintingConfig.cs
Outdated
using System.Text; | ||
|
||
namespace ObjectPrinting | ||
{ | ||
public class ArrayPrintingConfig<T> : PrintingConfig<T[]> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Давай вынесем в отдельный файл. Лучше придерживаться принципа 1 класс - 1 файл
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Или же можно вовсе избавиться от этого класса, вместо можно сделать метод PrintToStringCollection публичным
ObjectPrinting/PrintingConfig.cs
Outdated
protected HashSet<Type> excludedTypes = []; | ||
protected HashSet<string> excludedProperties = []; | ||
protected Dictionary<string, Func<object, string>> propertySerializers = []; | ||
protected Dictionary<Type, Func<object, string>> propertyTypeSerializers = []; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
protected поля/свойства с большой буквы по код стайлу
ObjectPrinting/PrintingConfig.cs
Outdated
protected HashSet<string> excludedProperties = []; | ||
protected Dictionary<string, Func<object, string>> propertySerializers = []; | ||
protected Dictionary<Type, Func<object, string>> propertyTypeSerializers = []; | ||
private HashSet<Type> finalTypes = new HashSet<Type>() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Можно сделать readonly, так как меняться эта коллекция никогда не должна
protected PropertyPrintingConfig<TParent, TProperty> RefineSerializer(Func<string, string> serializer) | ||
{ | ||
parentConfig.RefineSerializer<TProperty>(serializer); | ||
return this; | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Не используется
return sb.ToString().Trim(); | ||
} | ||
|
||
private string PropertyToString( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Можно попробовать переделать на метод принимающий MemberInfo. PropertyInfo и FiledInfo можно скастить к MemberInfo и одинаково с ними работать. А логику в различии поля и свойства вынести в отдельное место, например как extensions
ObjectPrinting/PrintingConfig.cs
Outdated
return new PropertyPrintingConfig<TOwner, TProperty>(this); | ||
} | ||
|
||
public PropertyPrintingConfig<TOwner, TProperty> Printing<TProperty>(Func<TOwner, TProperty> get) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Название сбивает с толку - printer.Printing(...) хочется сразу думать что сейчас уже будет вывод строки, но нет
[UseReporter(typeof(DiffReporter))] | ||
public class ObjectPrinterTests | ||
{ | ||
[Test] //1 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Что за числа в комментариях?)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Чтобы было проще отслеживать кейсы из задания - не потерялся ли функционал, удалила
В общем, всё что было в задании выполнено, но попробуй немного порефакторить своё решение. Важна ведь не только правильная работа кода, но и его "чистота". Если смотреть с точки зрения разработки в больших проектах, то твой код будет жить "вечно", его должны переиспользовать люди и быстро разбираться, что происходит. Но так-то всё супер! Пока один балл поставлю, потом исправлю на 2 |
No description provided.