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

    Цитата Pavia @
    Но это противоречит безопасности if без else.
    Как же делать if, в котором не нужен else? Прописывать else; тоже не фонтан...
    aeskeygenassist bndstx cmpxchg16b dpps endbr64 f2xm1 gf2p8affineinvqb haddps incsspq jrcxz kxnorw ldmxcsr mpsadbw nop orpd pclmulhqlqdq qword rdpmc sha256rnds2 tzcnt unpcklpd vp4dpwssds wrfsbase xgetbv yword zword
      Цитата Jin X @
      Цитата Serafim @
      Очевидно, что второй вариант на порядок лучше
      Он лучше, когда основной код занимает больше 1 строки, а здесь какой смысл в этом нагромождении?

      Сейчас там 1 строка, завтра может быть 10. Без "нагромождения" нужно будет переписывать.
      pull-request'ы будут больше и дольше будешь апрувов ждать :D
      Сообщение отредактировано: D_KEY -
      "If someone claims to have the perfect programming language, he is either a fool or a salesman or both"(c) Bjarne Stroustrup
        Цитата Jin X @
        Он лучше, когда основной код занимает больше 1 строки, а здесь какой смысл в этом нагромождении?

        Ранний выход из функции проще читается. Я хз как сформулировать своими словами почему именно проще, ты меня в тупик поставил :-?
        user posted image user posted image
          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)
            }

          Хоть со {скобками}, хоть без... :)
          aeskeygenassist bndstx cmpxchg16b dpps endbr64 f2xm1 gf2p8affineinvqb haddps incsspq jrcxz kxnorw ldmxcsr mpsadbw nop orpd pclmulhqlqdq qword rdpmc sha256rnds2 tzcnt unpcklpd vp4dpwssds wrfsbase xgetbv yword zword
            Цитата 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 :)
              aeskeygenassist bndstx cmpxchg16b dpps endbr64 f2xm1 gf2p8affineinvqb haddps incsspq jrcxz kxnorw ldmxcsr mpsadbw nop orpd pclmulhqlqdq qword rdpmc sha256rnds2 tzcnt unpcklpd vp4dpwssds wrfsbase xgetbv yword zword
                Цитата Jin X @
                По большому счёту, это один алгоритм всё же. Вот, к примеру здесь тоже 3 разных алгоритма?

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

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

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

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

                  Да и, повторюсь, за опускание фигурных скобок хочется убивать :D В культурном мире - это как код без отступов - признак плохих манер или неуча за клавиатурой. По крайней мере в JS и некоторых других языках, где уже давно есть codestyle стандарты.
                  user posted image user posted image
                    Цитата 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 нет нормального паттерн матчинга
                      user posted image user posted image
                        Цитата 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 -
                          error: 'long long long' is too long for GCC
                            Цитата applegame @
                            Вот за такое и правда, хочется взять и у@#$ть.

                            Редкий случай, но я вот тут соглашусь :yes:

                            Право — это возведенная в закон справедливость. Закон есть этика, высеченная в логике.
                              Цитата Serafim @
                              И то, это потому, что в JS нет нормального паттерн матчинга
                              И чем тебе в этом случае поможет "нормальный" паттерн-матчинг?
                              Сообщение отредактировано: applegame -
                              error: 'long long long' is too long for GCC
                                Цитата applegame @
                                И чем тебе в этом случае поможет "нормальный" паттерн-матчинг?

                                Думаю речь тут идет в том числе о том, что в js в case можно методы вызывать, то есть за исключением многословности тот же if получается.

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


                                Рейтинг@Mail.ru
                                [ Script Execution time: 0,1475 ]   [ 16 queries used ]   [ Generated: 25.09.20, 17:18 GMT ]