• Как избежать пропусков а autoincrement при добавлении записи в MySQL?

    Tyranron
    @Tyranron
    @VitaZheltyakov и @Playmore все правильно Вам сказали.
    Вы, похоже, реально недооцениваете рост экспоненты.
    Допустим у Вас 1 000 000 INSERT'ов в таблицу за секунду. Тогда за 30 лет непрерывной работы в таком режиме, значение вашего инкремента поднимется примерно до 1 000 000 * 86400 * 365 * 30 = 946080000000000 что на 5 десятичных разрядов меньше максимального числа unsigned bigint, а именно 18446744073709551615.
    Так что я боюсь, что до Вашего "оттянутого" дня Х не доживете ни Вы, ни Ваши внуки, ни железо на Ваших серверах.
    Потому не заморачивайтесь и оставьте в покое autoincrement как есть. В противном случае Вы создаете только лишнюю, но совершенно бесполезную, нагрузку на базу и приложение.
    Ответ написан
    2 комментария
  • Как убрать коммит из пуша?

    lunaticman
    @lunaticman
    Дерзкий айтишник
    Никогда не разрабатывайте в master бранче! Всегда делайте отдельную ветку git checkout -b new_branch_baby

    Чтобы сейчас выйти из этой неловкой ситуации вам нужно:
    - Скопировать все изменения в отдельный бранч ( git checkout -b my_changes )
    - Почистить мастер от своих изменений ( git checkout master ; git rebase -i HEAD~6 )
    - обновить мастер бранч ( git pull origin master )
    - обновить свой бранч (git checkout my_changes ; git rebase master )

    удачи
    Ответ написан
    1 комментарий
  • Как устранить ошибку "Call to a member function on null"?

    andre-92
    @andre-92
    PHP / yii2
    Blog::find($id) возвращает null, поставь проверку на существование блога
    $blog = Blog::find($id);
    if (isset($blog)) $blog->update($request->all());
    Ответ написан
    1 комментарий
  • Почему существует 2 версии PHP (Non Thread Safe и Thread Safe)?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    Здесь ответ на ваш вопрос.

    Для тех, кто не знает английский.

    Версию сервера нужно выбирать в зависимости от того, как вы интегрируете PHP c веб-сервером.
    Например, когда вы используете mod_php, у вас модуль и PHP всегда загружены в память и каждый запрос обрабатывается в отдельном потоке. Из-за этого mod_php работает быстрее, чем CGI. В данном случае нужно использовать потоко-безопасную реализацию (thread-safe) поскольку каждый поток имеет доступ к памяти другого потока.

    Когда вы работаете с IIS, у вас PHP запускается ввиде отдельного процесса через CGI и в таком случае потоко-безопасность не имеет смысла, поскольку у вас 1 процесс и фактически 1 поток созданный этим же процессом. Операционная система изолирует память процессов по умолчанию.

    В случае модели с FastCGI, потокобезопасность также не имеет смысла, поскольку тотже PHP-FPM держит несколько отдельных процессов PHP в памяти, но не потоков.
    Ответ написан
    Комментировать
  • Как привести Битрикс до нормального состояния?

    gromdron
    @gromdron
    Работаю с Bitrix24
    Эм... давайте я отвечу (если не от всех, то хотя бы от лица себя и своих коллег) "битриксойдов" - никак.

    Поясню свой ответ: дело не в битриксе, а в подходе. Именно этого и не понимают многие разработчики, которые после Yii, Zend, Symfony и т.д. видят Bitrix.

    Во-первых, у продукта (я имею ввиду Битрикс24, и именно продукт, а не CMF/CMS) есть определенная парадигма: User First & Business insight.

    User First - это означает, что для реализации базовых вещей, например бизнес-процессы, пользователь с правами администратора должен иметь возможность сделать 80% работы без привлечения разработчика (читать - без привлечения, а я не без опыта/знаний/навыков/образования). Реальность такова, что Вы не сможете за столь короткий срок, сделать ВСЕ ТО ЖЕ САМОЕ, НО ЛУЧШЕ (я не сомневаюсь в Ваших способностях, но одному человеку за измеримые 1-5 лет это практически нереально).

    Business Insight - это означает, что в продукте уже заложена логика, а "кривизна результата" зачастую складывается из того, что Бизнес диктует свои условия (Продукт не для всех, но каждый пытается его использовать как хочет и как умеет). Как пример: купив зубную щетку Вы можете чистить ей зубы И/ИЛИ мыть машину, но согласитесь машину мыть неудобнее, но "бизнес решает не тратиться и на имеющуюся щетку нацепить тряпку побольше и ручку подлиннее".

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

    В-третьих, а давно ли Вы видели битрикс? Сейчас он движется в нужную сторону и, я Вас уверяю, если вы подключите к нему Yii/Silex и т.п., ничего кроме бОльшего "говнокода" Вы не получите. Я не говорю о том, что Вы плохой программист, но что будет после Вас? Вот уволитесь Вы, а это все достанется очередному бедолаге и ему с этим жить.
    Ответ написан
    4 комментария