Kujivunia

Пользователь

Регистрация: 10.01.2015

Сообщения: 5505

Рейтинг: 996

Kujivunia

Регистрация: 10.01.2015

Сообщения: 5505

Рейтинг: 996

Написал я пару лет назад авторизатор текста, но такой говнокод там был... В общем, улучшить я прогу так и не смог. А хотел добавить новых алгоритмов... 

 

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

 

В итоге придумал это: 

unknown.png

Запрогал тестовую версию, И ОНО РАБОТАЕТ! С ПЕРВОГО РАЗА! Я впервые написал что-то сложно и крутое (для меня) с первого раза. Вы не предстьавляете, какой это кайф... 

unknown.png

 

типа я могу сделать любое число шагов алгоритма, любое число самих агоритмов, запускать всё это в любом порядке и совершенно не меняя код (только добавляя новый в новых классах причём). В итоге я к диплому просто завалю инст всеми вариациями всех возможных алгоритмов КАЕФ 

 

п.с. просто делюсь радостью

DarthGandalf

Пользователь

Регистрация: 03.11.2014

Сообщения: 1004

Рейтинг: 1033

DarthGandalf

Регистрация: 03.11.2014

Сообщения: 1004

Рейтинг: 1033

img

Это не то что говнокод, это во первых читать блевотно ( я про код), табуляция не? За блок-схемы вот лайк, очень хорошо если ты понимаешь как строить алгоритм своей программы.

Kujivunia

Пользователь

Регистрация: 10.01.2015

Сообщения: 5505

Рейтинг: 996

Kujivunia

Регистрация: 10.01.2015

Сообщения: 5505

Рейтинг: 996

DarthGandalf сказал(а):

Это не то что говнокод, это во первых читать блевотно ( я про код), табуляция не? За блок-схемы вот лайк, очень хорошо если ты понимаешь как строить алгоритм своей программы.

Нажмите, чтобы раскрыть...

Это линейный алгоритм, какая в нём может быть табуляция? Для чего? Для укачки? Чтобы всё непонятно стало? 

pralivalka

Пользователь

Регистрация: 06.06.2015

Сообщения: 15091

Рейтинг: 7449

pralivalka

Регистрация: 06.06.2015

Сообщения: 15091

Рейтинг: 7449

img

и зачем это ваще

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

kotyra

Пользователь

Регистрация: 22.09.2013

Сообщения: 2010

Рейтинг: 618

kotyra

Регистрация: 22.09.2013

Сообщения: 2010

Рейтинг: 618

Етить тут интерфейсов. Ими прям обмазаться можноPekaPled.png?1619501252

Kujivunia

Пользователь

Регистрация: 10.01.2015

Сообщения: 5505

Рейтинг: 996

Kujivunia

Регистрация: 10.01.2015

Сообщения: 5505

Рейтинг: 996

Caribu сказал(а):

Етить тут интерфейсов. Ими прям обмазаться можноPekaPled.png?1619501252

Нажмите, чтобы раскрыть...

4 интерфейса. 

4 штучки внизу слева это называются интерфейсами, но фактически они несут не программный (они абсолютно одинаковые и более того - пустые), а человечий-организационный смысл. Они показывают мне, какая часть алгоритма там должна быть. Ибо большинство алгоритмов делится на эти части. И чтобы у меня не было соблазна запихать всё в один суперкласс - сделал такую разбивку. 

raptor86

Пользователь

Регистрация: 14.01.2014

Сообщения: 2647

Рейтинг: 1020

raptor86

Регистрация: 14.01.2014

Сообщения: 2647

Рейтинг: 1020

Короче чел сделал г и хвастается KEKW.png?1616515034

kotyra

Пользователь

Регистрация: 22.09.2013

Сообщения: 2010

Рейтинг: 618

kotyra

Регистрация: 22.09.2013

Сообщения: 2010

Рейтинг: 618

Kujivunia сказал(а):

4 интерфейса. 

4 штучки внизу слева это называются интерфейсами, но фактически они несут не программный (они абсолютно одинаковые и более того - пустые), а человечий-организационный смысл. Они показывают мне, какая часть алгоритма там должна быть. Ибо большинство алгоритмов делится на эти части. И чтобы у меня не было соблазна запихать всё в один суперкласс - сделал такую разбивку. 

Нажмите, чтобы раскрыть...

А если нужно будет больше частей добавить, ты еще интерфейсов наплодишь?WutFace.png?1616514768

Kujivunia

Пользователь

Регистрация: 10.01.2015

Сообщения: 5505

Рейтинг: 996

Kujivunia

Регистрация: 10.01.2015

Сообщения: 5505

Рейтинг: 996

Caribu сказал(а):

А если нужно будет больше частей добавить, ты еще интерфейсов наплодишь?WutFace.png?1616514768

Нажмите, чтобы раскрыть...

Да Yes.png?1619501018

 

Они же ни на что не влияют, кроме читаемости (повышают её)

kotyra

Пользователь

Регистрация: 22.09.2013

Сообщения: 2010

Рейтинг: 618

kotyra

Регистрация: 22.09.2013

Сообщения: 2010

Рейтинг: 618

Kujivunia сказал(а):

Да Yes.png?1619501018

 

Они же ни на что не влияют, кроме читаемости (повышают её)

Нажмите, чтобы раскрыть...

Уже представил себе алгоритм, разделённый на 1000 интерфейсов. Читаемость про ВОPepeOK.png?1592047625

Kujivunia

Пользователь

Регистрация: 10.01.2015

Сообщения: 5505

Рейтинг: 996

Kujivunia

Регистрация: 10.01.2015

Сообщения: 5505

Рейтинг: 996

Caribu сказал(а):

Уже представил себе алгоритм, разделённый на 1000 интерфейсов. Читаемость про ВОPepeOK.png?1592047625

Нажмите, чтобы раскрыть...

А ты представь не 1 алгоритм из 1000 интерфейсов

А 100 алгоритмов, в каждом из которых от 10 до 20 частей, и понять что к чему относится без интерфейсов - невозможно

AMDkrolyan

Пользователь

Регистрация: 21.04.2013

Сообщения: 7673

Рейтинг: 2908

Нарушения: 10

AMDkrolyan

Регистрация: 21.04.2013

Сообщения: 7673

Рейтинг: 2908

Нарушения: 10

DarthGandalf сказал(а):

Это не то что говнокод, это во первых читать блевотно ( я про код), табуляция не? За блок-схемы вот лайк, очень хорошо если ты понимаешь как строить алгоритм своей программы.

Нажмите, чтобы раскрыть...

 

где ты там увидел блок схему ?

DarthGandalf

Пользователь

Регистрация: 03.11.2014

Сообщения: 1004

Рейтинг: 1033

DarthGandalf

Регистрация: 03.11.2014

Сообщения: 1004

Рейтинг: 1033

img
AMDkrolyan сказал(а):

 

где ты там увидел блок схему ?

Нажмите, чтобы раскрыть...

ну это некое ее подобие, хотел опустить ТСа, но понял что лучше уж хоть за что-то похвалить, ведь если челу нравится, зачем опускать его на дно?

Kujivunia сказал(а):

Это линейный алгоритм, какая в нём может быть табуляция? Для чего? Для укачки? Чтобы всё непонятно стало? 

Нажмите, чтобы раскрыть...

то есть по твоему надо на нее забить совсем? Лично я такое на код-ревью даже смотреть не буду, объяснять про то насколько важно иметь привычку писать хорошо читаемый код тем более не буду. 

pochemyzamenya

Пользователь

Регистрация: 25.02.2016

Сообщения: 4440

Рейтинг: 4049

pochemyzamenya

Регистрация: 25.02.2016

Сообщения: 4440

Рейтинг: 4049

Kujivunia сказал(а):

А хотел добавить новых алгоритмов... 

 

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

Нажмите, чтобы раскрыть...

Из твоей диаграммы я ничего не понял, но предполагаю что у тебя много алгоритмов и в программе можно выбрать какой использовать.

Если так то используй паттерн абстрактная фабрика

Почему21

Пользователь

Регистрация: 13.01.2021

Сообщения: 1774

Рейтинг: 1891

Почему21

Регистрация: 13.01.2021

Сообщения: 1774

Рейтинг: 1891

Не совсем понимаю зачем нужна схемка, разве что бы оценить зависимости, но тут вроде бы всё абсолютно прямолинейно. Если бы от таких схемок был какой-то практический толк, мы бы уже все пользовались визуальным програмированием аля анриловские ноды, но нет же, не пользуемся.

 

Ну а вообще отлично, что всё заработало. Молодец!

Kujivunia

Пользователь

Регистрация: 10.01.2015

Сообщения: 5505

Рейтинг: 996

Kujivunia

Регистрация: 10.01.2015

Сообщения: 5505

Рейтинг: 996

pochemyzamenya сказал(а):

Из твоей диаграммы я ничего не понял, но предполагаю что у тебя много алгоритмов и в программе можно выбрать какой использовать.

Если так то используй паттерн абстрактная фабрика

Нажмите, чтобы раскрыть...

Если я правильно понимаю, у меня что-то среднее между фабрикой, командой и говнокодом. 

А в диагграмме вродь всё ясно: 

 

IAlgorithmStep это интерфейс для любой части алгоритма, для любого его шага. Он имеет один метод: Execute(data)

Через data и идёт работа алгоритма и обмен данными между шагами и внешним миром. 

В наследниках у него не только шаги алгоритма, но и IFullAlgorithm - интерфейс класса-макрокоманды(?). Я могу наплодить экземпляры шагов алгоритма, сделать .EnqueueStep(stepN);, а потом вызывать их по одному (мало ли, вдруг понадобится?) или все сразу: .Execute(data);

 

Ну остаётся только АлгоритмДата и Дистанция. Первое - это исходный текст, промежуточные данные и выход для алгоритма анализа текста. Второе - это сравнение анализа двух разных текстов.

 

DarthGandalf сказал(а):

то есть по твоему надо на нее забить совсем? Лично я такое на код-ревью даже смотреть не буду, объяснять про то насколько важно иметь привычку писать хорошо читаемый код тем более не буду. 

Нажмите, чтобы раскрыть...

Если ты не знаешь ни одного правила, по кторому здесь нужна табуляция, но "она нужна смотреть не буду без неё", то зачем вообще писать? 

Табуляция определяет вложенность алгоритма. 

У меня алгоритм строго линейный. 

Более того, VS2019 сама ставит табуляцию. 

Цитата:
        public void Execute(IAlgorithmData data)

        {

            DataTEST dt = (DataTEST)data;

            for (int i = 0; i < dt.normalized.Length - 1; i++)

            {

                dt.tokens.Add(dt.normalized.ToString() + dt.normalized.ToString());

            }

            Console.Write("Tokens: ");

            foreach (var item in dt.tokens)

            {

                Console.Write(item+" ");

            }

            Console.WriteLine();

        }
Нажмите, чтобы раскрыть...

7even7een

Пользователь

Регистрация: 23.04.2021

Сообщения: 980

Рейтинг: -52

Нарушения: 110

7even7een

Регистрация: 23.04.2021

Сообщения: 980

Рейтинг: -52

Нарушения: 110

DarthGandalf сказал(а):

Это не то что говнокод, это во первых читать блевотно ( я про код), табуляция не? За блок-схемы вот лайк, очень хорошо если ты понимаешь как строить алгоритм своей программы.

Нажмите, чтобы раскрыть...

таблуяция, блок-схемыsammyyPepekek.png?1598626065 чел о чем ты?))) Забей. ты же вообще никто

DarthGandalf

Пользователь

Регистрация: 03.11.2014

Сообщения: 1004

Рейтинг: 1033

DarthGandalf

Регистрация: 03.11.2014

Сообщения: 1004

Рейтинг: 1033

img
7even7een сказал(а):

таблуяция, блок-схемыsammyyPepekek.png?1598626065 чел о чем ты?))) Забей. ты же вообще никто

Нажмите, чтобы раскрыть...

а ты тогда кто? Если раз уж я никто? С -62 зачем ты пишешь клоун?

Kujivunia сказал(а):

Если я правильно понимаю, у меня что-то среднее между фабрикой, командой и говнокодом. 

А в диагграмме вродь всё ясно: 

 

IAlgorithmStep это интерфейс для любой части алгоритма, для любого его шага. Он имеет один метод: Execute(data)

Через data и идёт работа алгоритма и обмен данными между шагами и внешним миром. 

В наследниках у него не только шаги алгоритма, но и IFullAlgorithm - интерфейс класса-макрокоманды(?). Я могу наплодить экземпляры шагов алгоритма, сделать .EnqueueStep(stepN);, а потом вызывать их по одному (мало ли, вдруг понадобится?) или все сразу: .Execute(data);

 

Ну остаётся только АлгоритмДата и Дистанция. Первое - это исходный текст, промежуточные данные и выход для алгоритма анализа текста. Второе - это сравнение анализа двух разных текстов.

 

Если ты не знаешь ни одного правила, по кторому здесь нужна табуляция, но "она нужна смотреть не буду без неё", то зачем вообще писать? 

Табуляция определяет вложенность алгоритма. 

У меня алгоритм строго линейный. 

Более того, VS2019 сама ставит табуляцию. 

Нажмите, чтобы раскрыть...

и тебе было сложно прикрепить скрин с VsCode? Ты делишься с людьми своей работой, потрудись хотя бы сделать это более читабельным или не пости вообще

Dermand

Пользователь

Регистрация: 13.09.2013

Сообщения: 522

Рейтинг: 200

Dermand

Регистрация: 13.09.2013

Сообщения: 522

Рейтинг: 200

DarthGandalf сказал(а):

ну это некое ее подобие, хотел опустить ТСа, но понял что лучше уж хоть за что-то похвалить, ведь если челу нравится, зачем опускать его на дно?

Нажмите, чтобы раскрыть...

это ж uml диаграмма, да и вполне нормальная

maxutor2

Пользователь

Регистрация: 16.06.2014

Сообщения: 1655

Рейтинг: 395

maxutor2

Регистрация: 16.06.2014

Сообщения: 1655

Рейтинг: 395

Этот вброс же уже был год назадmonkaW.png?1592047323 1:1 и от тебя же.


 

Да и вообще в последний месяц вижу нереально много копипаст прошлых темок, вы боты адского?

Kujivunia

Пользователь

Регистрация: 10.01.2015

Сообщения: 5505

Рейтинг: 996

Kujivunia

Регистрация: 10.01.2015

Сообщения: 5505

Рейтинг: 996

maxutor2 сказал(а):

Этот вброс же уже был год назадmonkaW.png?1592047323 1:1 и от тебя же.


Да и вообще в последний месяц вижу нереально много копипаст прошлых темок, вы боты адского?

Нажмите, чтобы раскрыть...

ссылку дай. если я год назад уже решил эту проблему, то там 100% уже решены все проблемы которые я щас решаю. 

 

DarthGandalf сказал(а):

а ты тогда кто? Если раз уж я никто? С -62 зачем ты пишешь клоун?

 

и тебе было сложно прикрепить скрин с VsCode? Ты делишься с людьми своей работой, потрудись хотя бы сделать это более читабельным или не пости вообще

Нажмите, чтобы раскрыть...

Ты издеваешься? Я тебе текст скинул текстом, так чего же боле? Я что, додик что ли, чтобы кидать ТЕКСТ КАРТИНКОЙ? 

И я не делюсь работой, я показываю, где должна стоять табуляция, и как её сама ставит вс2019

1ncr3dible

Пользователь

Регистрация: 04.10.2015

Сообщения: 2821

Рейтинг: 1620

1ncr3dible

Регистрация: 04.10.2015

Сообщения: 2821

Рейтинг: 1620

в чем польза этого алгоритма(алгоритмов)?

DarthGandalf

Пользователь

Регистрация: 03.11.2014

Сообщения: 1004

Рейтинг: 1033

DarthGandalf

Регистрация: 03.11.2014

Сообщения: 1004

Рейтинг: 1033

img
Kujivunia сказал(а):

ссылку дай. если я год назад уже решил эту проблему, то там 100% уже решены все проблемы которые я щас решаю. 

 

Ты издеваешься? Я тебе текст скинул текстом, так чего же боле? Я что, додик что ли, чтобы кидать ТЕКСТ КАРТИНКОЙ? 

И я не делюсь работой, я показываю, где должна стоять табуляция, и как её сама ставит вс2019

Нажмите, чтобы раскрыть...

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

Kujivunia

Пользователь

Регистрация: 10.01.2015

Сообщения: 5505

Рейтинг: 996

Kujivunia

Регистрация: 10.01.2015

Сообщения: 5505

Рейтинг: 996

1ncr3dible сказал(а):

в чем польза этого алгоритма(алгоритмов)?

Нажмите, чтобы раскрыть...

В том, что раньше мой код выглядел так: 

_L7N07-o0c8.jpg?size=774x721&quality=96&sign=0ca51d4b51ba52fe7fcda57e1eaf9e19&type=album

Очевидно, что изменить или, упаси Боже!, добавить новый алгоритм было решительно невозможно. 

 

Или ты про то, какой алгоритм я запихаю внутрь? Ну, авторизация текста - це круто. 

Или, цитирую самого себя: 

Цитата:

Мне видятся следующие сферы практического применения

библиотеки авторизации текста, а именно:

● Развлекательная — пользователю будет любопытно узнать, к

тексту какого из известных авторов ближе предложенный им

текст.

● Практическая — использование результатов работы

авторизатора текста в качестве одного из аргументов в вопросе

авторизации текста, например, при выяснении авторства

краткого анонимного сообщения или спорного авторства

крупного литературного произведения.

● По авторскому профилю текста, при наличии

соответствующей выборки, можно классифицировать текст по

самым различным критериям, таким как жанр, стиль речи,

эмоциональная окраска, временная эпоха написания, etc.

Нажмите, чтобы раскрыть...

1ncr3dible

Пользователь

Регистрация: 04.10.2015

Сообщения: 2821

Рейтинг: 1620

1ncr3dible

Регистрация: 04.10.2015

Сообщения: 2821

Рейтинг: 1620

Kujivunia сказал(а):

В том, что раньше мой код выглядел так: 

 

Очевидно, что изменить или, упаси Боже!, добавить новый алгоритм было решительно невозможно. 

 

Или ты про то, какой алгоритм я запихаю внутрь? Ну, авторизация текста - це круто. 

Или, цитирую самого себя: 

Нажмите, чтобы раскрыть...

скриншот не грузит.

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