На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела:
1. Название темы - краткое описание кто/что против кого/чего
2. В первом сообщении - список параметров, по которым идет сравнение.
3. Старайтесь аргументировать свои высказывания. Фразы типа "Венда/Слюникс - ацтой" считаются флудом.
4. Давайте жить дружно и не доводить обсуждение до маразма и личных оскорблений.
Модераторы: Модераторы, Комодераторы
Страницы: (32) « Первая ... 30 31 [32]   ( Перейти к последнему сообщению )  
> goto vs break & continue , Кроха-сын пришел к отцу и спросила кроха: "goto - это хорошо?"
    Цитата D_KEY @
    То есть как бы ты ни собирал требования, как бы ни проектировал, все равно будут меняться требования и все равно нужно будет менять софт

    Ну надо же быть реалистом! В каждом конкретном случае. Да - неизменного нет. Начиная проектировать свою обертку, я задаюсь вопросом "какова вероятность, что процесс логина в SFTP сервер в ближайшее время изменится?" Исходные данные: "14 августа 2006 года было принято решение о прекращении работы над развитием протокола в связи с выполнением основной задачи проекта". Вывод: вероятность внесения новых изменений или требований - минимальная, если им только не взбредет в голову возобновить проект. Да, "никогда не говори никогда". Ну тогда мне, а вернее не мне, немножко не повезет. Но при такой практически нулевой вероятности - предусматривать последующий рефакторинг как минимум странно. Лучше уж к врачу паранойю лечить :)

    Wound, Киля, астанавись!!! :lol: Я тебя услышал. Выложу код, форкнешь и покажешь мне свое минималистическое количество строк.
      Цитата JoeUser @
      В каждом конкретном случае.

      Согласен.

      Цитата
      Но при такой практически нулевой вероятности - предусматривать последующий рефакторинг как минимум странно. Лучше уж к врачу паранойю лечить :)

      Так тебе никто не предлагает обмазаться всеми паттернами проектирования и пытаться предусмотреть изменения :)
      Твой способ не быстрее и не проще способа с RAII, скорее наоборот.

      Это как с принципом избегать преждевременной оптимизации. Принцип прекрасен, но он не отменяет того факта, что не стоит и "пессимизировать", т.е. если у тебя есть два одинаковых по сложности способа что-то сделать, то логично выбрать тот, что оптимальнее. Это не будет преждевременной оптимизацией.
        Цитата D_KEY @
        Твой способ не быстрее и не проще способа с RAII, скорее наоборот.

        Это всем апологетам RAII так хочется видеть. Потом начинаются конструкторы, деструкторы, смартпоинтеры ...а у меня всего лишь скромная метка для goto. Ты просто еще не проникся дзеном простоты, не понимаешь всего величия и фундаментальности безусловных переходов! :lol:

        Добавлено
        Цитата D_KEY @
        Это как с принципом избегать преждевременной оптимизации. Принцип прекрасен, но он не отменяет того факта, что не стоит и "пессимизировать", т.е. если у тебя есть два одинаковых по сложности способа что-то сделать, то логично выбрать тот, что оптимальнее. Это не будет преждевременной оптимизацией.

        И я с тобой согласен тут. Но это если действительно одно лучше другого. А если нет? Только Бритва Оккама и спасает.
          Цитата JoeUser @
          Ты просто еще не проникся дзеном простоты, не понимаешь всего величия и фундаментальности безусловных переходов!
          Посмею напомнить, что искусство программирования называется внезапно искусством. Код должен быть не просто правильным, он должен быть ещё и красивым.
          Лично мне вот пофик, кто где как какие паттерны заюзал. Если я смотрю код, и он прекрасен, значит всё было сделано правильно.

          Добавлено
          :jokingly: А если он ещё и работает...
            Цитата Qraizer @
            Если я смотрю код, и он прекрасен, значит всё было сделано правильно.

            Субъективизм.

            Добавлено
            Цитата Qraizer @
            Добавлено
            :jokingly: А если он ещё и работает...

            А вот это правильно :lol:
            Сообщение отредактировано: Gonarh -
              Цитата JoeUser @
              Это всем апологетам RAII так хочется видеть. Потом начинаются конструкторы, деструкторы, смартпоинтеры ...а у меня всего лишь скромная метка для goto. Ты просто еще не проникся дзеном простоты, не понимаешь всего величия и фундаментальности безусловных переходов!

              Это все можно сравнить со стиркой. У тебя подход какой - ты постирал все вещи, что были прям кучей - носки/белое/черное/цветное/джинсы/футболки там всякие - вытащил всю эту кучу из машинки, и бросил на полку. Вот твой подход. Дальше придет время взять шмотку - будешь рыться искать.
              Подход RAII - во первых стирать все по отдельности носки - отдельно, белое отдельно от черного, цветное отдельно, затем после стирки ты все вещи достаешь, выглаживаешь, и раскладываешь по полочкам, футболки к футболкам, брюки к брюкам, аккуратно сортируешь носки, засовываешь носок в носок(чтоб потом парные не искать), после чего раскладываешь на полочку.

              Вот примерно этим отличается твой подход от подхода RAII. Да в случае с RAII - приходится сортировать и выглаживать, чтоб потом пришел - взял что тебе нужно, пошел. А с твоим подходом - оно то с виду может и быстрее взять кучу одежды с машинки и кидануть на полку, только потом ты всеравно потратишь то же самое время, а то и больше - на поиск вещи и на ее глажку. Не понимаю как можно не понимать столь очевидных вещей. :-?
              Написание даже полноценного RAII класса выходит быстрее - чем выделение ресурса руками, потом проверка всех условий, потом переход по метке(это же еще понять нужно где ее правильно воткнуть надо будет, чтоб и лишней не было и мало не было), и освобождение его руками.
              Сообщение отредактировано: Wound -
                Цитата D_KEY @
                Кстати, я иногда поражался способности некоторых людей быстро анализировать сложный запутанный код с большим количеством переходов и пр.

                Это да. Я, например, хочу мозг, способный удерживать в голове вот такой код :D (вот эта игра).

                Добавлено
                И кстати, JoeUser-у на заметку - даже в таком коде нет ни одного goto :D

                Добавлено
                Цитата JoeUser @
                только с одной целью - впилить туда всеми правдами и неправдами RAII

                Это не цель, а средство вообще-то.
                Сообщение отредактировано: OpenGL -
                  Цитата Gonarh @
                  Субъективизм
                  А то. Вот представь, что ты увидел в продакшне вот сие:
                  ExpandedWrap disabled
                      std::wostream(&std::wbuffer_convert<std::codecvt_utf8_utf16<wchar_t>>(std::cout.rdbuf())) <<
                            static_cast<std::wostringstream&&>(
                                    std::wostringstream() << std::wostream(
                                            &std::wbuffer_convert<std::codecvt_utf16<wchar_t, 0x10FFFF, std::little_endian>
                                                                 >(std::ifstream("u16.txt").rdbuf())
                                                                          ).rdbuf()
                                                              ).str()
                                                                                                                << std::endl;
                  :blink:

                  Добавлено
                  Ведь круто в одну строку выдать на консоль файл в UTF-16, кастанув на лету в UTF-8?
                    Цитата OpenGL @
                    Это не цель, а средство вообще-то.

                    Для некоторых личностей - скорее цель ;)
                      Цитата JoeUser @
                      Это всем апологетам RAII так хочется видеть. Потом начинаются конструкторы, деструкторы, смартпоинтеры ...а у меня всего лишь скромная метка для goto.

                      Так с меткой goto код становится сложнее. Хотя бы потому, что у меня в коде ее просто не существует.
                      С конструкторами, деструкторами и смартпоинтерами код становится проще :)

                      Цитата
                      Ты просто еще не проникся дзеном простоты, не понимаешь всего величия и фундаментальности безусловных переходов! :lol:

                      Я когда-то вполне себе писал на чистом си и использовал паттерн с goto для очистки ресурсов. И код такой видел часто. Но в си выбора нет.
                      С RAII же все в разы проще.

                      Добавлено
                      Более того, в питоне я использую with. И в других языках я так же предпочитаю использовать управление ресурсами, максимально приближенное к автоматическому.
                      RAII тут лучше всего. Ну разве что bracket pattern с ним может поспорить.

                      Добавлено
                      Цитата JoeUser @
                      Для некоторых личностей - скорее цель ;)

                      Тебе кажется. Тут конкретная задача - управление ресурсами. RAII как раз для этого.
                      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                      0 пользователей:
                      Страницы: (32) « Первая ... 30 31 [32] 


                      Рейтинг@Mail.ru
                      [ Script execution time: 0,0633 ]   [ 15 queries used ]   [ Generated: 28.03.24, 22:45 GMT ]