Loading...
pataroka avatar pataroka 319 Точки

[Homework] КПК - Задача {2} - Naming Identifiers

Отварям нова тема, щот задачите явно се различават от тези на предните випуски. Имам следния процедурен въпрос свързан с втора задача.

"You can refactor anything else you wish (extract methods / classes, add comments, etc.). Just make sure the program still works correctly after refactoring."

Това дава ли ни право да бъркаме и във файловете с входните данни? Щот файлът с описанията на категориите не е много удобно написан и трябва или да се редактира файла или кода в програмата, за да работи коректно.

Така както го разбирам, тук:

"1,Beverages,Soft drinks, coffees, teas, beers, and ales"

Името на категорията е Beverages,Soft drinks, а останалото до края е дескрипшън. Написаният код ще изкара име Beverages и дескрипшън Soft drinks.

Тагове:
3
C# OOP Advanced 11/07/2015 22:15:11
EBojilova avatar EBojilova 330 Точки

Малко със закъснение, ама чак сега седнах да я правя. Аз редактирах текстовия файл, като първите 2 запетаи ги направих точки и нататък дискрипшъна остана цяло изречение със запетаи, т.е.:

1.Beverages. останалото го оставих за дискрипшън Soft drinks, coffees, teas, beers, and ales

Промених и сплита в програмата да е по точка.

Аз си посвикнах да преписвам от минали домашни и сега ми е малко тегаво, че нямам от къде да сверявам :)))

0
12/07/2015 00:09:49
KatyaMarincheva avatar KatyaMarincheva 572 Точки

Добър въпрос наистина.

Аз пък го направих по примера на Ship Enhancements от Mass Effect - там всичко от commandArgs[4] нататък се брои за enhancements list.

        public IEnumerable<Category> GetAllCategories()
        {
            var categoryArgs = InputHandler.ReadFileLines(this.CategoriesFileName, true);
            return categoryArgs
                .Select(c => c.Split(','))
                .Select(c => new Category
                {
                    Id = int.Parse(c[0]),
                    Name = c[1],
                    Description = string.Join(", ", new List<string>(c.Skip(2).Take(c.Length - 2)))
                });
        }

т.е за description вземам всичко от 2 позиция нататък. И така хем не ми се налага да променям изходния файл, хем използвам подоход подобен на този в Mass Effect.

2
12/07/2015 08:04:00
EBojilova avatar EBojilova 330 Точки

Става и така. И аз си го помислих този вариант, но отпадна тъй като има едно and накрая. Освен това и някои напитки ще са с главна, други с малка буква. Няма да ми трябват да ги викам от категорията, а  ще се викат с прпъртито нейм от продукта и затова реших тука да е цяло описателно изречение. 

По-късно днес ще постна домашното в темата и ако имате забележки ги казвайте наволя, за да можем да си направим екипно едно перфектно домашно :)

0
EBojilova avatar EBojilova 330 Точки

Това е моя вариант на трите задачи от домашното. Всякакви коментари са добре дошли. На третата задача съм оставила почти всичко в мейна с изключение на един клас. Искаше ми се да направя и други класове, но много се замотах на това домашно.

Не ми стана ясно само как да променя името на неймспейса на първа и трета задача. Премахнах дори прожектите от сълюшъна, преименувах папките и после пак ги добавих, но и това не помогна.

https://github.com/EBojilova/CSharpHQC/tree/master/02.%20Naming-Identifiers-Homework/Naming%20Identifiers%20Homework

3
12/07/2015 21:36:48
pataroka avatar pataroka 319 Точки
Неймспейса се променя с няколко стъпки, ако сменяш името на директорията. Първо, затваряш проекта, после си преименуваш директорията, отваряш асембли-то с текстов редактор и въвеждаш името на новата директория, същото правиш и за солюшън файла. После отваряш проекта и отиваш в пропъртис на солюшъна и някъде там в асембли конфиг или нещо от сорта задаваш новото име на неймспейса и през ВС.
1
EBojilova avatar EBojilova 330 Точки

Пламене, благодаря много, ама ми трябва видео май :))) Така както си го обяснил няма  да се справя. Виж как пействам линковете още :))) Ще потърся днес из нета видео и ако не става ще моля пак за помощ.

Аз си ги преименувах директно в ВС но седят подчетани, че трябва да са ConsoleAplicatin1 .........

0
pataroka avatar pataroka 319 Точки

Така, щом си преименувала във ВС - затвори проекта и смени името на директорията да отговаря на името на неймспейса. ВС не преименува директориите и няма начин, по който да направиш всичко това през ВС. След като смениш името на директорията трябва да редактираш пътеката указана в солюшън файла за това, къде ти се намира проекта/солюшъна. За да стане трябва да отвориш солюшън файла с какъв да е текстов редактор, не с текстовия редактор на ВС. Същото правиш и за асембли файла. После отваряш солюшъна с ВС, може да ти излезе съобщение, че проектът е редактиран извън ВС и да поиска да рилоудне файловете - потвърждаваш. Последната стъпка е да редактираш неймспейса в асемблито през ВС - както съм писал по-горе.

Не мисля, че за такова нещо има смисъл да записвам видео, ако пак удариш греда, налази ме в Скайп ще ти шеърна скрийн и ще ти покажа.

2
iordan_93 avatar iordan_93 Trainer 407 Точки

По принцип имаме право да променяме само кода. Текстовите файлове са данни, които идват отвън, т. е. нещо, върху което нямаме никакъв контрол. Това, което може да направим, е да си защитим програмата така, че да не се чупи.

Колкото до запетаите, файлът е във формат .csv - всяка колонка се разделя със запетая.
А във файла с категориите, наистина е така: номер 1, категория Beverages, описание Soft drinks, coffees..., така че няма нищо сбъркано smiley в конкретния случай.

Колкото до това дали по принцип е добра идея да се разделя със запетаи, правилото е, че данните не трябва да влияят на структурата, в която се намират. Ако имаме запетаи в input-a не е добра идея да разделяме по този начин: ако добавим категория, в чието име има запетая, това ще се счупи smiley.

1
16/07/2015 11:27:38
pataroka avatar pataroka 319 Точки

Позволи ми да не се съглася:

ID: 1, Name: Beverages,Soft drinks
ID: 2, Name: Condiments,Sweet and savory sauces
and the following products:
ID: 1, Name: Chai, CategoryID: 1
ID: 4, Name: Chef Anton's Cajun Seasoning, CategoryID: 2
,
this means that the product Chai belongs to the category Beverages,Soft drinks.
 

С други думи - втората и третата колонка от от .csv-то съставляват името на категорията. Въпросът беше, къде да редактираме - аз не пипах текстовия файл - редактирах кода.

П.П. Ъ-ъ-ъ, marker style не работи...

1
16/07/2015 16:07:33
iordan_93 avatar iordan_93 Trainer 407 Точки

Условието беше грешно. Вече е оправено, мерси smiley.

2
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.