Задать вопрос
  • Какую книгу или видеокурс посмотреть по php oop, pdo, шаблоны проектирования?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    Хочу написать route чтобы распарсить адресную строку, сделать чпу и в случае если такого адреса нет записывалось в логи и выдавало 404 ошибку.


    Вот тут банальный ЧПУ с автоматическим роутером, без ООП и прочих сложностей https://github.com/iCoderXXI/feedback-form-admin-panel
    Ответ написан
    Комментировать
  • Альтернатива Bootstrap (в плане сетки)?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    Мне вот этот вариант понравился https://www.youtube.com/watch?v=KFVoIzaGPYg
    Ответ написан
    Комментировать
  • Скрипт, выполняемый на JavaScript за секунду, на PHP за 30 секунд проходит только 20%. В чём причина?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    Короче говоря херню ты написал, друже. вот оптимизированный код, отрабатывает за пару секунд.

    <?php
      for($a=9; $a>=1; $a--) {
        $a10 = 10*$a;
    
        for($b=9; $b>=1; $b--) {
          if ($a===$b) continue;
          $b100 = 100*$b;
    
          for($c=9; $c>=1; $c--) {
            if ($a===$c || $b===$c) continue;
    
            for($d=9; $d>=1; $d--) {
              if ($a===$d || $b===$d || $c===$d) continue;
              $d100 = 100*$d;
              $v2 = 1000*$d+$d100+$a10+$b;
    
              for($e=9; $e>=1; $e--) {
                if ($a===$e || $b===$e || $c===$e || $d===$e) continue;
    
                for($f=9; $f>=1; $f--) {
                  if (
                    $a===$f || $b===$f || $c===$f ||
                    $d===$f || $e===$f
                  ) continue;
                  $fc=$f*$c;
    
                  for($g=9; $g>=1; $g--) {
                    if (
                      $a===$g || $b===$g || $c===$g ||
                      $d===$g || $e===$g || $f===$g
                    ) continue;
                    $g10 = 10 * $g;
                    $g10a = $g10+$a;
    
                    for($h=9; $h>=1; $h--) {
                      if (
                        $a===$h || $b===$h || $c===$h ||
                        $d===$h || $e===$h || $f===$h || $g===$h
                      ) continue;
                      $v3 = $b100+10*$h+$f;
    
                      for($j=9; $j>=1; $j--) {
                        if (
                          $a===$j || $b===$j || $c===$j || $d===$j ||
                          $e===$j || $f===$j || $g===$j || $h===$j
                        ) continue;
    
                        if(
                          $d100+$g10+$j + 100*$j+$a10+$e + $v3 === $v2
                          && $fc/$j === $g10a
                        ) {
                          echo  "\n a=",$a,
                                " b=",$b,
                                " c=",$c,
                                " d=",$d,
                                " e=",$e,
                                " f=",$f,
                                " g=",$g,
                                " h=",$h,
                                " j=",$j,"\n\n";
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }


    Если вдруг не понял что к чему, объясняю, у тебя вложено друг в друга 9 циклов от 1 до 10, таким образом получается 10^9 итераций, т.е. миллиард. И ты все условия и вычисления упихал в самый внутренний цикл, и производишь их миллиард раз, причем в 95% ситуаций вообще в холостую. Я вынес все проверки и вычисления максимально наружу, насколько это позволяет логика, таким образом 95% итераций, холостых вычислений и пр. мусора просто не выполняется в принципе. Поэтому код теперь отрабатывает быстро, как и должен.
    Ответ написан
    7 комментариев
  • Освоение HTML5, CSS, JS. Как продвигаться?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    Обрати внимание на flexbox, он уже актуален везде, после обрати внимание на css grids
    Так же обрати внимание на ES2015, ES7, ES.NEXT, после чего на React.JS/Angular.2+/Ember.JS/Vue.JS/... на выбор. Ну HTML5 само собой разумеется. Так же неплохо хотя бы по верхам понимать HTTP и AJAX, если еще websockets добавить, то вообще замечательно. Ну там еще всякие линтеры, вебпаки, лесс/сассы и прочие ноды тоже будут весьма полезны.

    В целом в последние годы порог вхождения в годный фронтенд резко подрос, у тяп-ляпщиков все меньше и меньше возможностей пробиться.

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

    Это я еще ни слова не сказал про алгоритмику, которая тоже важна, т.к. без нее будешь страдать, как только придется что-то программировать сложнее, чем пара строк.

    Короче желаю удачи, упорства, усидчивости, концентрации, воли и откорректировать планы в сторону увеличения времени и сил на освоение раз, эдак, в дцать... :)
    Ответ написан
    Комментировать
  • Какую книгу взять для полнейшего понимания ооп в php?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    ООП в любой среде, не только PHP, позволяет смоделировать процессы. Чтобы что-либо моделировать, нужно владеть предметной областью, т.е. иметь немалый опыт за плечами по решению конкретной проблематики каким-либо способом, в данном случае оптимально на голом PHP.

    Опять же, умные люди давно собрали все мыслимые и немыслимые грабли и сформулировали их в виде паттернов, антипаттернов и пр.

    Вообще чтобы начать годно программировать на ООП, лучше всего затесаться в команду, где его практикуют, например джуном или вообще стажером, и прям терпеть, колоться, рыдать, но продолжать есть кактус до полного переформатирования мозгов. И да, назад пути уже не будет...
    Ответ написан
    Комментировать
  • Как сохранить дерево из mysql в массив на php?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    Я бы за первый проход вычислил бы все отношения для каждого элемента, всю глубины вложенности.
    Вторым же проходом сгенерировал собственно дерево, раскладывая элементы в него.
    Ответ написан
    Комментировать
  • Хранение данных о медиафайлах в базе данных. Насколько будет большая нагрузка?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    храним в базе, кешируем в редис и основная нагрузка ложится на редис...
    Ответ написан
    Комментировать
  • Как встроить php переменную в jquery скрипт?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    Переменную ты либо зашиваешь в сам html при выдаче, либо подгружаешь аяксом, вебсокетами и иже. других путей передать данные от пхп в клиента не существует.
    Ответ написан
    Комментировать
  • Как работать с mySQL на node.js?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    Вообще принято в подобных случаях показывать код.

    Если через постман все уходит, а из браузера нет, значит проблема в клиентской части. Например, если адрес (урл) клиентской части хоть как-то отличается от серверной части, например порт другой, то будет срабатывать CORS, и нужно сервером слать соответствующие заголовки, чтобы запросы проходили, либо проксировать запросы вебпаком.
    Ответ написан
    Комментировать
  • Как правильно соединить клиентский JS и серверный JS c базой данных?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    Это смотря на чем сервер. Если на Node.JS, то коннектится он при запуске скрипта, а когда получает запрос, то через уже существующий коннект просто сходит в базу, причем, скорее всего, асинхронно, так-что, тут даже лучше будет если не по аяксу данные запрашивать с сервера, а через вебсокеты. Запросил, через какое-то время сервер сам данные пришлет и отработает событие.
    Ответ написан
    Комментировать
  • С чего начать изучение современных веб-технологий?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    Друже, нынче web = JS, а JS = web. Есть сферы, безусловно, где WEB как-то обходится без JS. Есть сферы, где JS применяется не для WEB. Но, в общем и целом, WEB = JS. Безусловно это мой опыт, мои наблюдения, моё мнение.

    Так вот, через пару лет при упоминании ES5 народ будет крутить пальцем у виска, поэтому, я считаю, нужно всесторонне полноценно освоить ES6+, т.е. так называемый ES.NEXT

    Для этого, в частности, необходимо зарешать алгоритмических задачек часов эдак на тысчёнку-другую, для выработки программистских рефлексов, дабы кодить на автомате, не парясь по мелочам, концентрироваться на главном, не терять времени на элементарщине.

    Проскакивать этот этап нереально и бессмысленно.

    Велкам в кодеварс или любой другой аналогичный ресурс и фигак-фигак-фигак.

    Повторюсь, рефлекс образуется после 1000+ часов однообразной деятельности.

    Регнуться можно по ссылке www.codewars.com/r/pj8ELg
    Ответ написан
    2 комментария
  • Паттерны проектирования?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    Паттерны - это опыт боли, страданий и пота огромного количества лучших разработчиков, и программистов. Можно сказать, что паттерны, как и правила дорожного движения - в некотором роде написаны кровью.

    На малых и даже средних по сложности и объёму кода проектах, тем более если пилишь в одного, большинство паттернов будут неочевидны, где-то даже неполезны. Другое дело большой, живущий десятилетиями, энтерпрайз проект, на котором неслабая текучка кадров. Такие монструозные штуки просто невозможно строить без паттернов. Собственно оттуда и повыходили в большинстве своём паттерны.

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

    А так, сам на сам, да на мелочи, это баловство и несерьезно.
    Ответ написан
    Комментировать
  • Принцип взаимоотношений front & backend?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    Если коротко, то в наши дни, по сути, бэк нужен для двух вещей - отдать статику для SEO, и отдавать данные по API (REST, GraphQL, и иже). Отдавать может как по AJAX (fetch, xhr, axios, ...) так и по вебсокетам.

    Фронт, в свою очередь, если SEO нужно, изоморфно рендерится беком (вебпак?), потом отдается и связывается на клиенте. Если SEO не нужно (закрытое SPA) то отдается минимальный бойлерплейт и весь UI генерится динамически, например React.

    Разработка вся удобная, модульная, собирается вебпаком в бандл.
    Ответ написан
    Комментировать
  • Как повысить уровень программирования?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    От 10 до 20 тысяч часов практики с постоянным самосовершенствованием, обязательно стараясь не наступать на одни и те же грабли в перспективе, с достаточным количеством здоровой лени, регулярно возвращаясь к своему коду былых лет.

    Код надо стараться писать так, словно после тебя с ним будет работать психопат, который знает где ты живешь. :)
    Ответ написан
    Комментировать
  • Как правильно добавить данные в сессию после возврата ответа клиенту в node+express?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    в первом варианте ставь в settimeout задержку равную нулю, т.к. он все равно сработает только после опустошения стека вызовов.
    Ответ написан
  • Как организовать ограничение доступа для части кода в репозитории для работы с удаленкой?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    покопай в сторону gitolite
    Ответ написан
    Комментировать
  • Как вы начинаете свой проект?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    мне пока хватает create-react-app
    Ответ написан
    Комментировать
  • Переход из С++ в PHP?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    Я с PHP мигрирую потихоньку на JavaScript, оно мне, оказывается, ближе. Недавно вот потребовалось некоторый код перевести обратно с JavaScript на PHP, и я испытал массу непередаваемых ощущений, настолько уже привык к JS-style coding. Кода получилось раза в 2 больше, и гораздо менее удобочитаемого.
    Ответ написан
    Комментировать
  • Удобный софт для запоминания и перевода английских слов?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    Каждое слово имеет несколько смыслов, иногда несколько десятков смыслов. Можно, конечно, учить самые ходовые 2-3, но всегда есть риск упустить тонкие оттенки и нюансы. Я бы рекомендовал учить слова обязательно в контексте.
    Ответ написан
    Комментировать
  • Что такое замыкание?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    В целом ты все верно понял. Почитал я тут ответы, термины, термины, термины...

    Я люблю простые объяснения, буквально на пальцах.

    Вот ты вызвал функцию, в ней создаются переменные локальной области видимости, т.е. доступные только самой функции. Под эти переменные движок JavaScript выделяет память.

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

    В случае с замыканием, ты возвращаешь функцию обратно, т.е. ссылки остаются, поэтому движок не может освободить память, и переменные остаются доступными функции, и более никому. Поэтому эта штука и называется замыкание, т.к. переменные замкнуты на саму функцию.

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

    Один из основных паттернов, для которых применяются замыкания - ограничение доступа к данным, их изоляция (ограничение их области видимости).

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

    В ответах есть пример со счетчиком, который наглядно демонстрирует этот принцип.
    Ответ написан
    2 комментария