• Kujivunia

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

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

    Сообщения: 1798

    Рейтинг: -56

    Kujivunia

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

    Сообщения: 1798

    Рейтинг: -56

    img

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

     

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

     

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

    unknown.png

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

    unknown.png

     

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

     

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

  • DarthGandalf

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

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

    Сообщения: 374

    Рейтинг: 124

    DarthGandalf

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

    Сообщения: 374

    Рейтинг: 124

    img

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

  • Kujivunia

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

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

    Сообщения: 1798

    Рейтинг: -56

    Kujivunia

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

    Сообщения: 1798

    Рейтинг: -56

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

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

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

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

  • pralivalka

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

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

    Сообщения: 13301

    Рейтинг: 5898

    pralivalka

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

    Сообщения: 13301

    Рейтинг: 5898

    img

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

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

  • Caribu

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

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

    Сообщения: 1394

    Рейтинг: 344

    Caribu

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

    Сообщения: 1394

    Рейтинг: 344

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

  • Kujivunia

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

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

    Сообщения: 1798

    Рейтинг: -56

    Kujivunia

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

    Сообщения: 1798

    Рейтинг: -56

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

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

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

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

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

  • raptor86

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

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

    Сообщения: 1745

    Рейтинг: 404

    raptor86

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

    Сообщения: 1745

    Рейтинг: 404

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

  • Caribu

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

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

    Сообщения: 1394

    Рейтинг: 344

    Caribu

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

    Сообщения: 1394

    Рейтинг: 344

    Kujivunia сказал(а):

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

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

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

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

  • Kujivunia

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

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

    Сообщения: 1798

    Рейтинг: -56

    Kujivunia

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

    Сообщения: 1798

    Рейтинг: -56

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

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

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

    Да Yes.png?1619501018

     

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

  • Caribu

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

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

    Сообщения: 1394

    Рейтинг: 344

    Caribu

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

    Сообщения: 1394

    Рейтинг: 344

    Kujivunia сказал(а):

    Да Yes.png?1619501018

     

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

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

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

  • Kujivunia

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

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

    Сообщения: 1798

    Рейтинг: -56

    Kujivunia

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

    Сообщения: 1798

    Рейтинг: -56

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

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

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

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

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

  • AMDkrolyan

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

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

    Сообщения: 3496

    Рейтинг: 1500

    AMDkrolyan

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

    Сообщения: 3496

    Рейтинг: 1500

    DarthGandalf сказал(а):

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

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

     

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

  • DarthGandalf

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

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

    Сообщения: 374

    Рейтинг: 124

    DarthGandalf

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

    Сообщения: 374

    Рейтинг: 124

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

     

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

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

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

    Kujivunia сказал(а):

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

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

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

  • pochemyzamenya

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

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

    Сообщения: 3293

    Рейтинг: 2095

    pochemyzamenya

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

    Сообщения: 3293

    Рейтинг: 2095

    Kujivunia сказал(а):

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

     

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

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

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

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

  • Почему21

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

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

    Сообщения: 214

    Рейтинг: 77

    Почему21

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

    Сообщения: 214

    Рейтинг: 77

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

     

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

  • Kujivunia

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

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

    Сообщения: 1798

    Рейтинг: -56

    Kujivunia

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

    Сообщения: 1798

    Рейтинг: -56

    img
    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[i].ToString() + dt.normalized[i + 1].ToString());
                }
                Console.Write("Tokens: ");
                foreach (var item in dt.tokens)
                {
                    Console.Write(item+" ");
                }
                Console.WriteLine();
            }
    Нажмите, чтобы раскрыть...
  • 7even7een

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

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

    Сообщения: 236

    Рейтинг: -54

    7even7een

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

    Сообщения: 236

    Рейтинг: -54

    DarthGandalf сказал(а):

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

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

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

  • DarthGandalf

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

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

    Сообщения: 374

    Рейтинг: 124

    DarthGandalf

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

    Сообщения: 374

    Рейтинг: 124

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

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

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

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


    Kujivunia сказал(а):

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

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

     

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

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

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

     

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

     

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

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

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

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

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

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

  • Dermand

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

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

    Сообщения: 450

    Рейтинг: 133

    Dermand

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

    Сообщения: 450

    Рейтинг: 133

    DarthGandalf сказал(а):

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

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

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

  • maxutor2

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

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

    Сообщения: 1643

    Рейтинг: 383

    maxutor2

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

    Сообщения: 1643

    Рейтинг: 383

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


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

  • Kujivunia

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

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

    Сообщения: 1798

    Рейтинг: -56

    Kujivunia

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

    Сообщения: 1798

    Рейтинг: -56

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

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


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

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

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

     

    DarthGandalf сказал(а):

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

     

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

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

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

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

  • 1ncr3dible

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

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

    Сообщения: 2684

    Рейтинг: 1314

    1ncr3dible

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

    Сообщения: 2684

    Рейтинг: 1314

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

  • DarthGandalf

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

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

    Сообщения: 374

    Рейтинг: 124

    DarthGandalf

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

    Сообщения: 374

    Рейтинг: 124

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

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

     

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

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

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

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

  • Kujivunia

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

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

    Сообщения: 1798

    Рейтинг: -56

    Kujivunia

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

    Сообщения: 1798

    Рейтинг: -56

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

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

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

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

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

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

     

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

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

    Цитата:

    Мне видятся следующие сферы практического применения
    библиотеки авторизации текста, а именно:
    ● Развлекательная — пользователю будет любопытно узнать, к
    тексту какого из известных авторов ближе предложенный им
    текст.
    ● Практическая — использование результатов работы
    авторизатора текста в качестве одного из аргументов в вопросе
    авторизации текста, например, при выяснении авторства
    краткого анонимного сообщения или спорного авторства
    крупного литературного произведения.
    ● По авторскому профилю текста, при наличии
    соответствующей выборки, можно классифицировать текст по
    самым различным критериям, таким как жанр, стиль речи,
    эмоциональная окраска, временная эпоха написания, etc.

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

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

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

    Сообщения: 2684

    Рейтинг: 1314

    1ncr3dible

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

    Сообщения: 2684

    Рейтинг: 1314

    Kujivunia сказал(а):

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

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

     

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

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

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

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

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