• Как правильно сделать выборку один-ко-многим?

    Uwe_Boll
    @Uwe_Boll
    Я Злой и Страшный Уве Болл в Разработке знаю Толк
    leftjoin или rightjoin должен ты использовать
    Ответ написан
    1 комментарий
  • Где закупить много дискового пространства?

    Jump
    @Jump
    Системный администратор со стажем.
    Если потребители данных находятся по всей планете - Amazon S3
    Если потребители данных сосредоточены в одном регионе - аренда серверов в ДЦ этого региона.
    Если потребители данных вы сами - размещение на своих серверах или аренда серверов в ближайшем ДЦ.

    Для точного ответа мало данных.
    Неизвестно насколько критична для вас скорость загрузки и выгрузки данных в хранилище и какая скорость нужна.
    Неизвестно где находятся потребители данных.
    Неизвестно холодные данные или горячие.
    Неизвестно какую нагрузку по чтению и записи должно выдерживать хранилище.
    Неизвестно какая цена является для вас приемлемой за объем и за трафик.
    Ответ написан
    Комментировать
  • Почему не работает авторизация php +pdo?

    Exomode
    @Exomode
    Архитектор ПО
    Потому что нельзя просто так взять и выдернуть кусок кода из того места где оно УЖЕ работает и вставить его туда, где НУЖНО чтобы оно работало, нарушая при этом весь контекст выполнения. Либо подключайте класс работы с PDO в ваш скрипт и работайте через него, либо вытаскивайте тогда из класса и остальное чего не хватает по контексту (коннект, например), а больше не нужные $this замените ссылкой на объект PDO
    Ответ написан
    Комментировать
  • Почему Vue долго рендерит после загрузки данных?

    @McBernar
    Откройте консоль и посмотрите network.

    Если дело реально в рендере - повесьте таймеры на методы, которые обрабатывают данные.

    Мы не сможем здесь вам помочь без вашего кода.
    Ответ написан
  • Как верстать прогрессбар?

    @justabit
    Основной контейнер серой полосы делается в relative, внутренние элементы-ползунки через absolute с процентуальным смещением и шириной.
    Ответ написан
    Комментировать
  • Есть ли сайт, где собраны общепринятые практики программирования?

    Moskus
    @Moskus
    Естественно, нет, потому что всё, что вы описали - это не какое-то тайное знание, которое можно только запомнить, а логичные приёмы, которые следуют из знания фундаментальных принципов и анализа требований к продукту. Если попытаться заменить фундаментальные знания таким сборником прецедентов, он получится гигантским и совершенно непригодным для освоения - столько всего просто нельзя запомнить. Объем фундаментальных знаний - на порядки меньше объёма частностей, которые из них выводятся, но сложность этих знаний, при этом, выше. Кто фундаментальные знания не осилил, остаётся говнокодером, пока не осилит.
    Ответ написан
    Комментировать
  • Объясните что происходит в этом участке JS кода?

    profesor08
    @profesor08
    Это сделано скорее всего для достижения асинхронности работы, просто в демонстрационных целях. Вместо того, чтоб делать ajax запрос на сервер, а до этого поднимать сервер, там используется таймаут, который работает с данными о продуктах. Лишь в целях демонстрации.
    Ответ написан
    1 комментарий
  • Стоит ли идти в программисты в 30 лет, но не простым, а..?

    @asd111
    SQL это самый понятный и приятный из всех языков программирования.
    Не советую идти в программирование если не нравится. Работы много разной.
    Ответ написан
  • Почему чистый SQL и PHP выдает разные ответы?

    DevMan
    @DevMan
    execute выполняет запрос, но не возвращает данные.
    данные нужно получать через fetch / fetchAll / etc
    Ответ написан
    Комментировать
  • Как правильно оформлять множественные запросы в axios?

    Negezor
    @Negezor
    Senior Shaurma Developer
    const urls = ["https://www.google.ru", "https://toster.ru"];
    
    Promise.all(urls.map(url => axios.get(url)))
      .then(responses => console.log('Complete', responses));
    Ответ написан
    Комментировать
  • Как реализовать некоторый аналог сессий на JS?

    Vlad_IT
    @Vlad_IT Куратор тега JavaScript
    Front-end разработчик
    localStorage
    Само не удаляется, но вы можете сделать в сохраняемом объекте поле "время", и при получении значения, смотрите, если срок годности истек, не используете и удаляете.
    Ну, или кукисы.
    Ответ написан
    Комментировать
  • Как избежать повторного вызова foreach (ob)?

    Sanasol
    @Sanasol Куратор тега PHP
    нельзя просто так взять и загуглить ошибку
    Зачем вся это порнография вообще?

    $codes = array('F_NAME' => 1, 'F_PHONE' => 2, 'F_EMAIL' => 3, 'F_ADDRESS' => 4);
    
    $props = '#F_NAME# #F_PHONE# #F_EMAIL# #F_ADDRESS#';
    
    $codes_keys = array_map(function($item){ return "#{$item}#"; }, array_keys($codes));
    $props = str_replace(
            $codes_keys,
            array_values($codes),
            $props);
    
    echo $props."\n";
    Ответ написан
    3 комментария
  • PHP. Выполнение скрипта на фоне или аналоги

    @werdender
    А в каком месте у вас тут «связь с браузером разрывается»?
    Пишите в сокет, запуская другой скрипт, и будет вам счастье.
    Ответ написан
    7 комментариев
  • Что написано в коде на JS?

    SerafimArts
    @SerafimArts
    Senior Notepad Reader
    Я просто дополню уже существующие ответы, заметив, что данный код полностью эквивалентен вот этому варианту:
    function sumTo(n) {
        return (n * (n + 1)) / 2;
    }
    Ответ написан
    Комментировать
  • Что написано в коде на JS?

    dimovich85
    @dimovich85 Куратор тега JavaScript
    https://u-academy.net/
    А где тут рекурсия? Здесь функция вызывает функцию и не более. Здесь есть цикл.
    Сначала объявляется функция с параметром n. Далее создается переменная sum, она локальная внутри функции. Сначала равна 0.
    Далее запускаем цикл, и задаем условия цикла, что пока переменная i, которая сначала равна 0, не станет меньше чем, или равен параметру n, надо выполнять действия, которые в фигурных скобках, а в конце каждого цикла переменную i увеличиваем на 1. В цикле берем переменную sum и к её текущему значению прибавляем значение i. После того, как цикл завершится функция возвращает sum. В итоге получаем в алерте сумму всех последовательных чисел от одного до 2, в данном примере, то есть 3.
    Ответ написан
    Комментировать
  • Как проверить в if каждую 1000, 2000 и тд?

    GTRxShock
    @GTRxShock
    SA
    if ($get_page['views'] % 1000 == 0) {
        echo "Любое действие";
    }
    Ответ написан
    6 комментариев
  • Как (и возможно ли) дотянуться до Junior JavaScript Developer в кратчайшие сроки?

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

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

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

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

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

    Меня на программирование пропёрло весьма рано, лет в 14-15. Я ощущал собственное безграничное могущество, послушная железяка выполняла любое моё повеление, любой мой каприз, при условии, что он правильно сформулирован. Если железка не делала что нужно, или делала что не нужно, то это всегда была моя вина, это значило что я прокосячился. Подобное осознание настигло меня весьма скоропалительно, после чего мозг начал усиленно дисциплинироваться, и количество лютых фейлов пошло на убыль.

    Коммерческая разработка - это, примерно, от 70% времени/сил на дебаг и фиксы, потому что мало где процессы поставлены грамотно. По хорошему до сего дня (а мне под 40) я только одну команду видел, где процессы прям вообще очень хорошо поставлены и мне посчастливилось какое-то время с ними поработать. За эти несколько месяцев я подрос на целую голову. Самостоятельно достичь сходных результатов было бы весьма затруднительно.

    Сам я сменил стек совсем недавно, начал в конце 15 года, и процесс продолжается до сих пор. Сменил я по одной простой причине - во всех моих прежних проектах большая часть логики с бэка уехала на фронт, и прекраснейший jQuery перестал справляться чуть более чем полностью. Он, по прежнему, хорош, но задачи, которые приходится решать, требуют совершенно других подходов. Для себя я выбрал React, но в целом на рынке имеются альтернативы. По моим данным очень большим спросом пользуется Angular 2+.

    Когда говорят о фронтенд разработке, постоянно говорят о технологиях, стеке, но почти никто не упоминает, что не стеком единым... Существенная часть разработки - это, для начала, понять задачу и построить у себя в голове модель. Заказчики бывают разные, от очень толковых, до очень безтолковых. Соотношение первых ко вторым примерно 1% и всё остальное... Т.е. в большинстве случаев тебе скажут минимум, своеобразно, плюс ты это поймёшь по своему. Потом, по ходу пьесы, в самые неподходящие моменты, начнут всплывать подробности, которые: забыли упомянуть; ну это же очевидно, ты же профи; мы сами не знали, это только выяснилось; ну это же мелочи, мы думаем тебе это будет не сложно; а ты не спрашивал; и т.п....

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

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

    Если ты попадешь в команду, где люди будут понимающие, квалифицированные, процессы выстроены, а джуну задачи будут сгружать джунские, то, считай, тебе крупно повезло. Шансов на это примерно 1%. Особенно учитывая, что джуны это обычно студенты лет в районе 20...

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

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

    Даже если тебе попадается практически идеальный проект, внезапно оказывается, что твоя оперативная память это 5-7+-2 объекта, а удерживать в голове одновременно нужно сотни...

    Зачем я все это рассказываю? Затем, что это реальность, которая для джунов не делает исключений.

    Термин "фигак-фигак и в продакшен" встречается повсеместно, т.к. ресурсы (деньги, время, кадры) практически всегда весьма жестко ограничены и ничего ты с этим не поделаешь.

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

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

    Теперь относительно того что делать - если в бэкграунде нет сильных скиллов по алгоритмике и структурам данных (олимпиады по программированию, универский курс информатики), то прям очень сильно рекомендую прокачать. Будучи наставником на нескольких курсах фронтенда я постоянно встречают студентов, которые "вроде бы" знают язык, но затрудняются скомпоновать пару циклов с условиями, вот буквально просто виснут на неопределенное время, причем без результата. Лично я рекомендую кодварс. Своих студентов я прокачиваю именно там. Достаточно прорешать 30-40 задачек, чтобы базовые скиллы ушли на уровень рефлексов и перестали парить мозг. Правда желательно решать это все с наставником.

    Косвенный бонус тут будет в том, что ты привыкнешь решать задачи на JavaScript. Я когда менял стек, поначалу мыслил на PHP, и подобный финт на кодварс позволил мне переформатировать мышление на JS. Вот мой профиль на кодварс как пруф: https://www.codewars.com/users/iCoderXXI

    Далее, когда ты освоишься в JS практически, очень неплохо будет досконально разобраться в том как работают замыкания и прототипное наследование. Это прям основа основ, и это спрашивают на каждом первом собесе.

    Понять надо настолько глубоко, чтобы легко и просто, с юморком, рассказывать это любой первой встречной бабушке, да так, чтобы та всё поняла... Это вот прям залог успеха в JS, потому что все остальное держится на этих двух китах. В ютубе имеется курс Зоракса (Zorax) и JavaScript Weird Parts, оба про то же самое, первый на русском, второй на инглише. Кантор, безусловно, крут, но эти двое объясняют попроще и понятнее (имхо).

    После этого прокачиваемся в использовании встроенных методов JS, таких как map, reduce, includes, replace и пр. (на том же кодварс)

    После этого нужно прокачаться в ES6+, стрелочные функции, let/const, деструктурирование, рест оператор, классы, промисы, генераторы, async/await, декораторы - без этих продвинутых штук в современных фреймворках ловить нечего.

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

    Потом уже заостряемся на API форм, DOM, AJAX (fetch/axios), вебсокетах, Localstorage и пр.

    И вот только теперь можно переключаться на фреймворки. Проще всего освоить Vue (по слухам), наибольшим спросом пользуются React и Angular, для общего развития так же неплохо бы немного послушать про Ember.JS.

    React только на первый взгляд выглядит простым, на самом деле это только view-библиотека, а в любом нормальном SPA есть много чего еще кроме view, поэтому React всегда идет в компании Redux, Router, и еще целой толпы всего, что тоже придется осваивать, не только с точки зрения API, но и с точки зрения философии (а нахрена оно вообще сдалось?)

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

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

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

    Еще вроде большие компании вроде Яндекса устраивают летнее обучение, с последующим трудоустройством лучших кандидатов, но это не точно.

    Оптимистичный прогноз - 6-12 месяцев плотного фигачинга и ты в тренде.
    Ответ написан
    7 комментариев
  • А как вы проектируете новый сайт\сервис визуально?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Блок схемы тут не подойдут, т.к. слишком массивный проект.
    Говорю Вам, как архитектор: Вы - точно ошибаетесь! Блок-схемы - здесь лучший инструмент. Не забывайте про уровни абстракций и drill-down внутрь блока на более низкий уровень абстракции.
    Сначала - определяете все взаимодействия топового уровня абстракции, из них - выделяете основные роли. Затем, ставите на схему блоки: каждый блок - это отдельная роль и формируете связи (соединяете стрелками), согласно их взаимодействию и направлениям каждого из взаимодействий.
    По клику на каждый блок (drill-down) - "проваливайтесь" на более детальный уровень абстракции (в текущей или новой схеме) и т.д.
    Я использую Edraw Free Mind Map
    Шаги по проектированию: здесь.
    b2cae22bff.jpg
    Ответ написан
    8 комментариев
  • Сколько нужно изучать Битрикс?

    @karminski
    Senior React.JS Developer
    Вы решили потроллить? Как можно изучать что-то без практики? Уж извините, хреновый из вас тогда Programmir. Наверное, если бы сразу практиковали, вы бы остановились на laravel, и никогда в жизни бы не стали изучать Битрикс.
    Ответ написан
    3 комментария
  • Как развиваться в программировании не привязываясь к языку?

    myjcom
    @myjcom
    Clean Code: A handbook of software craftsmanship / Чистый код: Создание, анализ и рефакторинг
    Год издания: 2013
    Автор: Robert Martin / Роберт Мартин
    ISBN: 978-5-496-00487-9

    The Clean Coder: A Code of Conduct for Professional Programmers / Идеальный программист. Как стать профессионалом разработки ПО
    Год издания: 2012
    Автор: Robert C. Martin / Роберт Мартин
    ISBN: 978-5-459-01044-2

    Алгоритмы. Справочник с примерами на C, C++, Java и Python
    Год издания: 2017
    Автор: Хайнеман Д., Поллис Г., Селков С.
    ISBN: 978-5-9908910-7-4

    Design Patterns. Elements of Reusable Object-Oriented Software/Приемы объектно-ориентированного проектирования. Паттерны проектирования
    Год издания: 2015
    Автор: Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides/Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж
    ISBN: 978-5-496-00389-6

    Test-driven development by example / Экстремальное программирование. Разработка через тестирование
    Год издания: 2017
    Автор: Kent Beck / Кент Бек
    ISBN: 978-5-496-02570-6

    Грокаем Алгоритмы. Иллюстрированное пособие для программистов и любопытствущих
    Год издания: 2017
    Автор: Бхаргава А
    ISBN: 978-5-496-02541-6

    Алгоритмы. Теория и практическое применение
    Год издания: 2016
    Автор: Стивенс Род
    ISBN: 978-5-699-81729-0

    прочитать нужно все

    ну и на закуску
    C Unleashed / Искусство программирования на C. Фундаментальные алгоритмы, структуры данных и примеры приложений. Энциклопедия программиста
    Год: 2001
    Автор: Heathfield R., Kirby L. / Хэзфилд Р., Кирби Л.
    ISBN: 0-672-31896-2 / 966-7393-82-8
    Ответ написан
    9 комментариев