Задать вопрос
  • Go - замена PHP в плане многопоточности и производительности?

    bingo347
    @bingo347
    Crazy on performance...
    Как и руби, go - это write only language...
    Легко и быстро прототипировать. Когда нужно опробовать бизнес идею и выбросить на рынок MVP еще вчера - лучше языка и придумать сложно. Но вот поддерживать потом это больно и дорого...
    Очередной раз скопипастив проверку на ошибку или проброс ее дальше, начинаешь молиться на тех людей, кто придумал DRY и проклинать авторов go, за дизайн этого языка.
    И вот вроде лучик хорошего, вместо наследования нам пытаются продать композицию, только сделана она через одно место и Вы легко потеряете за ней контроль.
    Полиморфизм? Я их знаю 3 вида. И я считаю, что полиморфизм - это как раз тот инструмент, который позволяет делать нам по с учетом DRY, SOLID и прочих красивых аббревиатур... Вот только в go нет ни одного из них... Вместо него Вам дают ужасную утиную типизацию. Серьезно... Когда мне говорят, что в JS утиная типизация, я смеюсь и говорю, что в JS прекрасная система типов и предлагаю посмотреть на go, так как если Вы хотя бы 10 минут изучаете чужой код, то Вы уже как минимум 3 раза спросили себя, какой калека написал здесь interface{} вместо типа...
    PHP хороший язык. Он позволяет писать как говнокод, так и весьма красивое и правильное ООП. Мне лично не хватает в нем ФП, но жить без него там можно. PHP7+ весьма быстр, а с некоторыми аддонами может в многопоток... Не так просто как в go, но может...
    Стоит ли та простота прототипирования и верчения горутинами нескольких человекожизней поддержки кодовой базы чуть сложнее хелловорлда? Решать Вам...

    P.S. Если Вы действительно уперлись по производительности не в IO (БД, диск, сеть и т.д.), а в Ваш любимый php/js/python/java/C# - go Вам не поможет, Вы словите абсолютно те же stop-the-world от gc, в добавок Вы словите издержки на работу шедулера, рулящего Вашими 5 тысячами горутин на 4 потоках cpu... (вы еще не знали, что гипертрединг зло? посчитайте ченить cpu-зависимое на go в нескольких потоках...). Если Вы действительно уперлись в производительность своего ЯП - посмотрите в сторону C++ или Rust. Если не уперлись - переписывать все на хайповый go точно не стоит.
    Ответ написан
    1 комментарий
  • Какие базы данных использовать в php сайтах?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Вот уже лет как 10 я просто развлекаюсь с сайтами и различными языками. Долго посматривал в сторону освоения баз, но никак не решался.
    Ээээ, 10 лет разработки без баз? Это вин, ясчитаю...

    Понравился MariaDB.
    Это форк Mysql если что...

    Какая база данных больше всего подойдет?
    Любая. Основной выбор новичков - MySQL(MariaDB), считается стандартом де факто, есть почти на всех хостингах, много информации по теме, широкое комюнити.
    Ответ написан
    9 комментариев
  • Как вести два одинаковых проекта, имя возможность дорабатывать их вместе и по отдельности?

    Alex_Wells
    @Alex_Wells
    PHP/Kotlin
    Два репозитория. В обоих добавляете еще один origin - на другой проект.

    Если нужно внести изменения в оба проекта, то сначала делаете это в одном, потом в другом проекте мерджите изменения с другого origin'а.

    Писать код нужно максимально независимым. Используйте модульность, для модулей внешнее API и event/listeners для общения наружу. В местах где логика различается - по максимуму полиморфизм, и.е. избегайте мерджов всеми силами.

    Второй вариант говно. Третий вариант слишком сложный.
    Ответ написан
    Комментировать
  • Какие вопросы задают на собеседовании на позицию продакта?

    Zoominger
    @Zoominger
    System Integrator
    Ответ: а хрен его знает. Вопросы на собеседованиях обычно разные, а даже если есть где-то внутри готовый список, то никто вам его не покажет.
    Ответ написан
    2 комментария
  • Когда учить паттерны проектирования?

    Zoominger
    @Zoominger
    System Integrator
    Когда станете middle, а может, и позже. Паттерны не для джунов.
    Паттерны, в основном, используются в ООП, если вы его не используете, то стоит понять, почему. Если не знаете - изучайте, а там и паттерны уже. Если просто негде, то забейте пока.
    Ответ написан
    4 комментария
  • Как эффективнее перемешать массив?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Тут код и рандомим один за другим символы в REGEX-маске. До тех пор, пока не будет пустой возврат.
    Из предыдущей выборки - берём случайный вариант.

    НО! Лучше - это делать через файл-список (который содержит уже весь dirlist).
    Это сэкономит операции на чтение с диска и продлит срок его службы.
    PS: Подсказка!: файл dirlist можно читать сразу со случайного места! и смещаться на начало строки!
    Ответ написан
    Комментировать
  • Как решить задачу с минимальным использованием памяти?

    bingo347
    @bingo347 Куратор тега Node.js
    Crazy on performance...
    Готовлюсь к собесу в яндекс
    Рано Вам в Яндекс... задачка то уровня школьных олимпиад...
    Постарайтесь, чтобы решение работало за время k ⋅ log(k) ⋅ n
    А это точно задачка для Яндекса? Она решается за линейное время O(k ⋅ n) если чуть-чуть вникнуть в условия, а логарифмическое решение годно лишь для людей с ЕГЭ головного мозга, там как раз любят решения в стиле "слить все в 1 массив и отсортировать", при использовании qsort/merge-sort как раз будет O(k ⋅ log(k) ⋅ n)

    Если читать из файла по 2 байта, то можно значительно сэкономить память, для формата 1- и 2-значные числа разделенные пробелом этого более чем достаточно.
    Так же выходной массив можно не формировать, а сразу отдавать его на выход.
    P.S. гуглите сортировку подсчетом, а решать задачу за Вас на тостере никто не будет
    Ответ написан
    5 комментариев
  • Как стать Python Middle Developer?

    @MAGistr_MTM
    Учусь программировать
    Пойти работать(не фриланс)
    Ответ написан
    Комментировать
  • Как стать Python Middle Developer?

    @deliro
    1. Нужно стать middle developer. Для этого нужно уметь программировать, а не уметь программировать на python. Это сложно и даётся не всем. Нужно понимать с самых низов - что такое память, как данные в ней хранятся и почему 1, "1" и 1.0 в памяти лежат совсем по-разному. И до верхов: как спроектировать легко расширяемую систему, не падать в обморок при слове solid, понимать паттерны и как их можно применить в реальном коде и на вопрос "какие паттерны ты знаешь?" не отвечать "синглтон"

    2. Знать особенности питона

    Из книг 100% прочитать и понять: Роберта Мартина, Макконнелла, Fluent Python и, конечно же, паттерны банды четырёх.
    Ответ написан
    6 комментариев
  • Что мотивирует IT специалистов кроме ЗП?

    @Lord_Dantes
    Как говориться, за 10 000$ можно и в чужом коде разбираться!
    Ответ написан
    2 комментария
  • Курсы от Иннополиса и Synergy IT Academy?

    Zoominger
    @Zoominger Куратор тега IT-образование
    System Integrator
    Синергия? Лол, это фабрика дипломов - платите денежку и вам дадут бумажку.
    Абсолютно не стоит потраченных денег, «знания» - это не туда.
    Ответ написан
    5 комментариев
  • Как сделать нагрузочное тестирование веб-сервера для сравнения PHP+Nginx vs Node.js?

    bingo347
    @bingo347 Куратор тега Node.js
    Crazy on performance...
    В плане отдачи статики - врядли Ваш код хоть на php хоть на node сможет тягаться по скорости с Nginx, иначе Вы не задавали бы подобные вопросы. В любом случае стоит ставить nginx перед любым бэкендом, хоть php хоть node. Помимо раздачи статики еще получите и нормальную работу с tls и балансировку.
    По динамике:
    php - работает только в режиме 1 запрос = 1 процесс, соответственно процессов в памяти будет больше, а значит и больше памяти потребуется и больше процессорного времени будет уходить на switch-context. Так же и очередь ожидающих запросов будет больше ибо php работает синхронно, а это значит что при ожидании io (файлы/бд) Ваш процесс в idle. Самый быстрый вариант сейчас с php-fpm, который работает по протоколу fastcgi и держит пул предзапущенных потоков php. Так же возможна работа по http с apache, но этот вариант явно медленнее и тяжелее чем php-fpm.
    node - может обрабатывать много запросов в 1 процессе засчет асинхронной модели выполнения, соответственно Вам может хватить небольшого количества процессов для очень большой нагрузки. Можно работать с nginx как по протоколу http (есть из коробки) так и fastcgi (при этом по прежнему имея 1 процесс)

    Теперь по нагрузочному тестированию, нужно хорошо разбираться в обоих тестируемых технологиях, знать о возможных оптимизациях и как их обойти. И даже при всем этом Вы не получите адекватных результатов на синтетических примерах... Можно сравнить решение конкретной задачи, но для этого придется разработать решение на обоих технологиях, а оно Вам надо? БольшАя часть задержек в большинстве веб-сервисов падает на базу данных, которая особо не зависит от выбранного ЯП, хотя асинхронная модель тут предпочтительнее...
    Так что пишите на чем умеете
    Ответ написан
    1 комментарий
  • Как сделать нагрузочное тестирование веб-сервера для сравнения PHP+Nginx vs Node.js?

    @Araya
    Качай https://jmeter.apache.org/ и балуйтесь на здоровье
    Ответ написан
    Комментировать
  • PHP. Возможно ли добавление контента без Базы Данных?

    Zoominger
    @Zoominger Куратор тега Веб-разработка
    System Integrator
    В теории - да, будете костылить свою простенькую реализацию базы данных, но это же геморрой.
    Ответ написан
    Комментировать
  • Как деплоить сайт на laravel? Для каких целей существует Maintenance Mode?

    Alex_Wells
    @Alex_Wells
    PHP/Kotlin
    Какой смысл от продумывания деплоя на шеред хостинг? Как бы вы это не реализовывали, у вас в любом случае с шередом будет большой простой при каждом "деплое" и в один прекрасный момент вы успешно все сломаете на несколько часов

    Мейтененс нужен для того, что бы юзеры во время деплоя видели какое-то информационное окно. Впрочем, с таким "деплоем" как у вас, это не вариант.
    Ответ написан
    4 комментария
  • Поступить в университет или пойти на работу после школы?

    saboteur_kiev
    @saboteur_kiev Куратор тега Карьера в IT
    software engineer
    "Цель: стать UI/UX дизайнером."

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

    То есть вы не способны даже осилить вступительные, но считаете что вы будете кому-то нужны в ИТ сфере с такими данными?

    "и к тому моменту, когда мои сверстники окончат вуз, у меня будет портфолио + опыт работы. "
    Либо у вас будет портфолио работы в виде рисования 1000 иконок для говнофлешигрушки по 2 рубля за иконку, а у сверстников высшее образование и портфолио на хобби-проектах, с которым они сразу устроятся на ЗП втрое выше вашей, и продолжат развиваться.

    Если вы где-то наслышались, как люди без образования устраиваются в ИТ и делают карьеру, то нужно понимать, что в основном это люди, которые во время школы мало того, что УЖЕ умели работать, так к концу школы уже практически создавали свою собственную компанию, для поддержки своего собственного продукта.

    Уйти из института можно в любой момент.
    Ответ написан
    Комментировать
  • Поступить в университет или пойти на работу после школы?

    Zoominger
    @Zoominger
    System Integrator
    В университет, без вариантов.
    Всё равно потом придётся идти, так что бросайте свои инфантильные отмазки в духе "ой, мне надо это, ой, да я зняю лючше" и вперёд, грызть гранит науки.

    Лично я за работу после школы, так как быстрее вольюсь в IT-сферу,

    Угу, а мы тут с распростёртыми объятиями ждём недоучек, которые даже в шараге не смогли выучиться и на честном слове говорят о своей компетенции.

    Дальше не читал, советую прислушаться.
    Ответ написан
    2 комментария
  • Как переписать сокращенный if в не сокращенный на конкретном примере?

    Immortal_pony
    @Immortal_pony Куратор тега PHP
    if ($result) {
        if ($result == "right") {
            $color = "green";
        } else {
            $color = "red";
        }
        $probablyColorize = " style='color:{$color}'";
    } else {
        $probablyColorize = null;
    }
    
    echo "<b{$probablyColorize}>";


    Или так:
    $colorAttr = null;
    if ($result == "right") {
        $colorAttr = " style='color:green'";
    } elseif ($result) {
        $colorAttr = " style='color:red'";
    }
    
    echo "<b{$colorAttr}>";
    Ответ написан
    Комментировать
  • Как сделать выборку из базы MySQL значений в которых отсутсвуют цифры?

    coderisimo
    @coderisimo
    SELECT * FROM table WHERE  name NOT REGEXP '[[:digit:]]'
    Ответ написан
    Комментировать
  • Как сделать выборку из базы MySQL значений в которых отсутсвуют цифры?

    @shevchenko__k
    Помогаю новорожденным web программистам
    Тебе помогут регулярные выражения
    https://sitear.ru/material/mysql-regexp
    Ответ написан
    Комментировать