Задать вопрос
  • Где найти курсы обучения JS для детей?

    index0h
    @index0h
    не стоит забирать у детей детство.
  • Какую cms/framework для сервиса выбрать?

    index0h
    @index0h
    Я обоими руками щза symfony. Но топикстартеру вроде как нужно чтото максимально простое
  • Как можно вывести меню?

    index0h
    @index0h
    Ок, сделайте компонент Меню, который будет уметь в вывод ваших элементов меню.

    Можете этот посмотреть: https://github.com/yiisoft/yii2/blob/master/framew...
  • Попросили проверить код, на что смотреть нужно?

    index0h
    @index0h
    Это неявная выборка. В случае изменеия структуры бд, например удаления колонки, вы узнаете об этом только в момент обработки, а не ранее на этапе запроса. Т.е. система уже не отвечает требованиям, заложенным ранее, а ошибка будет постфактум гдето дальше в коде.

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

    Рекомендую придерживаться принципа: явное лучше, чем не явное
  • На чем писать клиент-сервер с 10 000+ онлайном и 36 000 000 запросов в час?

    index0h
    @index0h
    RU
    У вк 7 лет назад было свыше 15000 серверов, я понимаю, это мелочь. Топикстартер судя по вопросу надеется на что-то на порядки дешевле.

    Как показывает практика - излишний оптимизм хуже преувеличения проблем)))
  • На чем писать клиент-сервер с 10 000+ онлайном и 36 000 000 запросов в час?

    index0h
    @index0h
    Я не о том)) пусть ждут не проблема, бд должна справляться с ними.
  • На чем писать клиент-сервер с 10 000+ онлайном и 36 000 000 запросов в час?

    index0h
    @index0h
    ruboss
    Вашим самым нагруженным сервисом будет бд. 1к rps запросов разделить это задача. Что бы это сделать нужно точно знать что за задачи будут выполнятся.
    На LAMP стеке даже не думайте про то, что сервер будет один.
    Ваша ошибка в том, что вы ожидаете конкретный ответ здесь, не давая полный список требований.(40 страниц это вполне ок). Очень рекомегдую нанять программиста (синьйора), для составления тз.

    romy4
    Пробовал. Собственно и в чем проблема?)) Нагруженный сервис как правило бд, а не система бизнес логики. 10к процессов спокойно могут сожрать цпу, но это не сравнимо с нагрузками на io жесткого диска, даже ssd.
  • Попросили проверить код, на что смотреть нужно?

    index0h
    @index0h
    oculos
    Это дико медленная операция. Не дай вам бог в нагруженной крупной бд в 2 утра обнаружить тысячи 20 секундных запросов с этим. Для рэндома: выбираем список id их рэндомим на пхп и уже по полученному результату делаем полную выборку. Не стоит ушатывать бд потому что это просто.

    dimon119
    Switch это нетипизированное сравнение. За свою практику много раз сталкивался с неуместным использованием этой конструкции. Ее можно юзать, но очень осторожно.

    regretful
    Ужасная с точки зрения безопасности и тестирования orm. Магия на магии и магией поганяет. Для крупных проектов это может стать самоубийственной практикой.
    Пропаганда статики на статике, это приводит к бесконтрольной связности проекта, с его развитием получается сттуация: для мелких правок необходимо сделать изменения в половине проекта.
    Дока... б***ь обработка пользвательского ввод в моделях. Это путь в никуда. Я не спорю для мелких говнопроэктиков покатит, но не для чегото серьезного.
    Посмотрите доктрину. Посмотрите symfony, silex.

    Денис
    Скажу честно, в моей практике do-while потребовался 1 или 2 раза. На счет создания переменных согласен, но фреймворк решает задачи инфраструктуры, а ваш проэкт - задачи вашего бизнеса. И для бизнеса обычно дешевле обходится быстро развиваемый и легко поддерживаемый код, чем сверх производительный, но при этом не саппортабельный.
    У меня есть проектик ko-ko-ko/assert цель которого валидация входных аргументов простых типов в каждом методе внутри. он ужасен, dry вы***н во все щели, но эта штука очень производительная. Дык вот я молчу про создание переменной, даже присвоение недопустимо долго! Веду к тому, что это вспомпгательный проект ни как не решающий задачи бизнеса, но у него и нет бизнест тробований, только технические. Так же и фреймворк, он решает другие задачи.
  • Попросили проверить код, на что смотреть нужно?

    index0h
    @index0h
    Хотя, я так подумал, если $position таки будет false, то будет неявное преобразование, посему лучше все таки писать так:

    do {
    // ...
    $position = strpos($path, $baseUrl);
    } while (($last > $index) && is_int($position) && ($position > 0));
  • Попросили проверить код, на что смотреть нужно?

    index0h
    @index0h
    Кодстайл и основные требований к коду - это не то место, где возможна демократия. PSR-5, который обсуждается публично не утвержден и тянется с августа 2013.
    Было довольно забавное обсуждение: как трактовать var int?
    https://github.com/phpDocumentor/fig-standards/iss...

    Мнения разделились на 2 лагеря, обсуждалось это дело с февраля по сентябрь. ~9 месяцев, Карл! В итоге PSR-5 не ставит требований по жесткому, или мягкому соответствию типов, указанных в докблоке.

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

    index0h
    @index0h
    65536 Собственно и что?))
    Я не являюсь core-dev-ом из Symfony Request. У них свои правила, более мягкие. У меня - более жесткие.

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

    Например первая строка в случае жестких требований:
    do {
    // ...
    $position = strpos($path, $baseUrl);
    } while (($last > $index) && ($position > 0));

    Зачем в оригинале идет сравнение и с false и с 0, я так и не вкурил.
  • Попросили проверить код, на что смотреть нужно?

    index0h
    @index0h
    65536 та же хрень))
    к выражению с НЕ булевым результатом, который будет неявно преобразован вы добавили еще одно.

    Тут не нужно искать обходных путей. Присваивания и операции с не булевым результатом в условиях запрещены. Просто примите это.
  • Попросили проверить код, на что смотреть нужно?

    index0h
    @index0h
    65536
    while (expr) предполагает выражение с булевым результатом. Если делать с ($row = ...) получаем неявное преобразование типов. Неявное преобразование лучше исключать от слова "совсем".
  • Попросили проверить код, на что смотреть нужно?

    index0h
    @index0h
    Arris > _опечатки_ вида (0 = $value).
    любой, уважающий себя ide должен подсвечивать это как ошибку. А автор закоммитивший сие - в угол на гречку.
    Но, так как == и != и присвоения в условиях запрещены - жесткой необходимости предохраняться от подобных ошибок кодстайлом не вижу.
  • Каково состояние дел у PHP на фронте?

    index0h
    @index0h
    Иван Тимофеевич
    php-fpm - это реализация fast cgi интерфейса для интерпретатора.
    mod_php - это модуль для apache, со встроенным интерпретатором.
    Вещи это принципиально разные, но интерпретатор как правило используется один и тот же, подтягивается как динамическая библиотека.
  • Каково состояние дел у PHP на фронте?

    index0h
    @index0h
    какой вопрос - такой ответ))

    Есть 3 устоявшиеся схемы работы с php под web:
    Apache+mod_php+php
    Nginx+php-fpm
    Ngins+Apache+mod_php+php

    Выбор тут зависит от проекта и требований к нему.

    5.6 и 7 - это версии интерпретаторов.

    > Как на яве OpenJDK, HotSpot, JamVM.
    В чужой монастырь со своим уставом не ходят
  • Попросили проверить код, на что смотреть нужно?

    index0h
    @index0h
    Вячеслав Юрьевич я чп-шник, предоставляю услуги (поэтому самый точный ответ на вопрос где - в Украине), работаю с php 8-ой год.
    Это не юношеский максимализм)) Это правила, написанные кровью и потом.
    Так уж получается, что php - это язык быстрых решений, но что бы писать безопасный, тестируемый, расширяемый и производительный код приходится принимать жесткие меры.
  • Попросили проверить код, на что смотреть нужно?

    index0h
    @index0h
    Arris > строгому сравнению добавлю крайне полезный стиль сравнения...

    Тут бабка на двое гадала))
    1) ($value === 0) читается как: проверяемая переменная $value должна соответствовать 0.
    2) (0 === $value) читается как: 0 должен соответствовать проверяемой переменной $value.

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