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

    Цитата Pavia @
    Но это противоречит безопасности if без else.
    Как же делать if, в котором не нужен else? Прописывать else; тоже не фонтан...
      Цитата Jin X @
      Цитата Serafim @
      Очевидно, что второй вариант на порядок лучше
      Он лучше, когда основной код занимает больше 1 строки, а здесь какой смысл в этом нагромождении?

      Сейчас там 1 строка, завтра может быть 10. Без "нагромождения" нужно будет переписывать.
      pull-request'ы будут больше и дольше будешь апрувов ждать :D
      Сообщение отредактировано: D_KEY -
        Цитата Jin X @
        Он лучше, когда основной код занимает больше 1 строки, а здесь какой смысл в этом нагромождении?

        Ранний выход из функции проще читается. Я хз как сформулировать своими словами почему именно проще, ты меня в тупик поставил :-?
          D_KEY, намекаешь на то, что все будут пытаться исправить?

          Serafim, я понимаю, когда там хотя бы 2-3 строки основного кода. Или если есть большая вероятность, что код будет дописан. Но если предпосылок к расширению кода пока особых нет, чем это лучше?
          ExpandedWrap disabled
            const fetchData = (id) => {
              if (!id) return;
              fetch('/data/' + id)
            }
          против
          ExpandedWrap disabled
            const fetchData = (id) => {
              if (id) fetch('/data/' + id)
            }

          Хоть со {скобками}, хоть без... :)
            Цитата Jin X @
            Цитата villain @
            как это не углубляйтесь? возможно там вообще деление не нужно
            Суть вообще не в этом. Будем считать, что алгоритм достаточно оптимален (это часть кода разложения на простые множители и манипуляции с ними), но есть 2 вот таких варианта реализации :)
            Там вообще умножение должно быть, я заменил его на деление для пущего эффекта :D

            :facepalm:
            это не 2 варианта реализации, это 2 разных алгоритма
            первый лучше - нет внезапного выхода из цикла, 2 условия vs 4
            а за
            ExpandedWrap disabled
              while 1:
                 ...
                 if n % i: break

            отдельный котёл положен >:(
              Цитата villain @
              это не 2 варианта реализации, это 2 разных алгоритма
              По большому счёту, это один алгоритм всё же. Вот, к примеру здесь тоже 3 разных алгоритма?

              Цитата villain @
              а за
              ...
              отдельный котёл положен
              Это отсутствие do-while в Python. Можно поменять 2 последние строки местами, как вариант, а перед циклом написать k=1 :)
                Цитата Jin X @
                По большому счёту, это один алгоритм всё же. Вот, к примеру здесь тоже 3 разных алгоритма?

                порядок действий разный? значит разные.

                Цитата Jin X @
                Это отсутствие do-while в Python. Можно поменять 2 последние строки местами, как вариант, а перед циклом написать k=1 :)

                зачем, если есть вариант без этих костылей?
                  Цитата Jin X @
                  Serafim, я понимаю, когда там хотя бы 2-3 строки основного кода. Или если есть большая вероятность, что код будет дописан. Но если предпосылок к расширению кода пока особых нет, чем это лучше?

                  Как минимум тем, что в первом варианте явно видна сигнатура Promise|null, а во втором - нет.

                  Да и, повторюсь, за опускание фигурных скобок хочется убивать :D В культурном мире - это как код без отступов - признак плохих манер или неуча за клавиатурой. По крайней мере в JS и некоторых других языках, где уже давно есть codestyle стандарты.
                    Цитата Serafim @
                    Да и, повторюсь, за опускание фигурных скобок хочется убивать :D В культурном мире - это как код без отступов - признак плохих манер или неуча за клавиатурой.

                    Ох уж мне эти "культурные люди", все-то они возводят в абсолют :)
                    ExpandedWrap disabled
                      void doSmthng(){
                      if(smthngBad1)throw new Exception("Something bad 1");
                      if(smthngBad2)throw new Exception("Something bad 2");
                      if(smthngBad3)throw new Exception("Something bad 3");
                       
                      do();
                      }

                    Появление фигурных скобок читаемость ухудшит в разы.
                    Сообщение отредактировано: Астарот -
                      Цитата Астарот @
                      Появление фигурных скобок читаемость ухудшит в разы.

                      Ага, конечно
                      ExpandedWrap disabled
                        function doSmthng() {
                            switch (true) {
                                case smthngBad1:
                                    throw new Exception("Something bad 1");
                                case smthngBad2:
                                    throw new Exception("Something bad 1");
                                case smthngBad3:
                                    throw new Exception("Something bad 1");
                            }
                         
                            do();
                        }


                      Добавлено
                      И то, это потому, что в JS нет нормального паттерн матчинга
                        Цитата Serafim @

                        Ага, конечно

                        И зачем ты три легко читаемые строчки превратил в... это? :D Да и речь шла про
                        Цитата Serafim @
                        за опускание фигурных скобок хочется убивать

                        Ну, вот случай, когда опускать их прямо показано :thanks:
                          Цитата Serafim @
                          Ага, конечно
                          ExpandedWrap disabled
                            function doSmthng() {
                                switch (true) {
                                    case smthngBad1:
                                        throw new Exception("Something bad 1");
                                    case smthngBad2:
                                        throw new Exception("Something bad 1");
                                    case smthngBad3:
                                        throw new Exception("Something bad 1");
                                }
                             
                                do();
                            }

                          Вот за такое и правда, хочется взять и у@#$ть. Мне понадобилось несколько секунд, чтобы понять что за муйня такая этот ваш switch(true).
                          Сообщение отредактировано: applegame -
                            Цитата applegame @
                            Вот за такое и правда, хочется взять и у@#$ть.

                            Редкий случай, но я вот тут соглашусь :yes:
                              Цитата Serafim @
                              И то, это потому, что в JS нет нормального паттерн матчинга
                              И чем тебе в этом случае поможет "нормальный" паттерн-матчинг?
                              Сообщение отредактировано: applegame -
                                Цитата applegame @
                                И чем тебе в этом случае поможет "нормальный" паттерн-матчинг?

                                Думаю речь тут идет в том числе о том, что в js в case можно методы вызывать, то есть за исключением многословности тот же if получается.
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (7) 1 [2] 3 4 ...  6 7 все


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0437 ]   [ 16 queries used ]   [ Generated: 19.04.24, 20:48 GMT ]