Задать вопрос
  • Не хожу на работу, но меня не увольняют и не платят зарплату, как быть?

    @Vitsliputsli
    Николай Савельев, тогда не факт, что он работает. Если он не подписан работодателем, то он не заключен. Также есть еще понятие "допуск к работе", могут и на него сослаться.
    Но, если в электронной трудовой уже есть запись, то очень странно.
    Про резидентство я упомянул, как стимул разорвать договор, если это интересно. Там не обязательно полгода, резидентство можно и раньше поменять.
  • Изучение PHP: можно ли пропустить изучение процедурного стиля и изучать ООП?

    @Vitsliputsli
    gd1xza, автор хочет изучать ООП, поэтому неполноценный в этом плане python - плохой кандидат.
  • Как работать с двумя и более базами данных одновременно?

    @Vitsliputsli
    Little_Junior, в первую очередь нужно задать себе вопрос, а зачем вы вообще делили на 2 базы данных? Если они неразрывно связаны и просто для логического деления, то ответ очевиден. Если эти базы независимы и в перспективы могут быть разнесены на разные серверы, то тоже понятно. Во втором случае, если вы боретесь за каждую мс, то можно сделать подключения в разных объектах, но которые будут использовать одно физическое подключение, подставляя нужное название базы при каждом обращении к таблице. В таком случае, будет легко переключиться на работу на двух физически разных СУБД.
  • Что лучше, генерировать каждый раз или один раз?

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

    Собственно сами все понимаете, но если это не позволяет вам выбрать решение, то выбирайте то, которое проще. Т.е. генерите на лету, а когда базе реально станет тяжело, тогда и сделаете кеширование.
  • Как разбить строки на подстроку с разделителем в виде строки?

    @Vitsliputsli
    Автор хочет 2 отдельные строки, чтобы можно было с ними отдельно работать.
    Тут sed излишен, можно обойтись и встроенным оператором баш. Но если очень хочется на sed, то нужно изменять обработку отдельных строк на весь текст, либо мудрить с буффером, либо просто использовать другой разделитель для перевода строк.
  • Какую область программирования выбрать PHP или Java?

    @Vitsliputsli
    Писать плохой код очень легко на любом языке. Вера в то, что язык тебя от этого убережет как раз и приводит к написанию плохого кода в больших количествах, что мы и видим на примере Java.
    В PHP есть все инструменты для написания хорошего кода, но есть и огромный пласт обеспечивающий обратную совместимость версий, позволяющий писать плохой код. И есть огромное кол-во кода демонстрирующее самые ужасные подходы. И что ты выберешь, зависит не от языка.
    Еще хуже дела с JavaScript, так как авторы посчитали, что у них свой "особый" путь. Но он как раз уже практически не используется, во всяком случае там, где заботятся о качестве кода. Т.к. несмотря на монополизированность, есть хорошая замена в виде TypeScript.
  • Какую область программирования выбрать PHP или Java?

    @Vitsliputsli
    Just Me,

    PHP и Java давно идут на убыль

    Как и C#, C++, C, и все остальные языки. Такие заявления мы видим из года в год. И пока, одни используют их как повод чтобы не учить языки, другие учат, и успешно зарабатывают деньги.
  • Как подключить нового пользователя к одному сокету?

    @Vitsliputsli
    Порт он слушает, но читает данные по конкретному установленному соединению. А надо еще и новые соединения принимать, а потом и по ним данные читать. А значит нужна асинхронность. И тут проще взять готовое решение для WebSocket, чем писать все с нуля.
  • Как оптимизировать запрос с большим количеством данных в таблице?

    @Vitsliputsli
    не знаю как оптимизировать

    А зачем его оптимизировать? Оптимизация это жертва чем-то, ради чего-то.
    Например, ради скорости ответа жервуем постоянной памятью и возможно оперативной.

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

    сперва постройте индексы и посмотрите, что получится. И по резултату будете переживать о лишнем гигабайте на hdd. Текущее описание, не позволяет говорить о чем-либо ином. Шардирование не такая уж простая штука, поэтому совет "разбейте на таблицы", и уж тем более "по годам", скорее принесет только проблемы, чем существенный выигрыш.

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

    СУБД, как правило, работают именно с кешем, специальным buffer pool, дисковым кешем, но с кешем. Если СУБД постоянно лазает на диск за данными, ни о какой высокой скорости там речи вообще не будет. Т.е. будут отдельные небыстрые запросы при "холодной" загрузке страниц, но общий поток будет быстрым. И вряд ли, у автора как-то иначе, вряд ли у него жесткое правило, что любой запрос должен отрабатывать менее X мс. Понятно, что бывают разные задачи, но в большинстве случаев именно так, и именно для такого использования СУБД и проектируются.
  • Что не так в коде (можете сделать краткое код ревью)?

    @Vitsliputsli
    Евгений Иванов,
    Но ООП в скриптовых языках, как я понимаю, и есть использование статики. Во всех фреймворках очень много обращений к статическим методам. Да, иногда создают экземпляр класса.

    Мне сложно создавать объекты в языке, где срок жизни скрипта ограничен.

    Нет, ООП - это оперирование объектами, статика - это не объекты. Без разницы скриптовой язык или нет. Без разницы какой срок жизни скрипта. Что значит "сложно писать"?

    Я не могу создать подключение к бд 1 раз и хранить ссылку на него. Скрипт завершился - память отчищена. Это не десктопное ПО, где программа работает, пока её не закрыл пользователь.

    Да, но не для каждого же запроса создавать новый коннект.

    Знаю. Так и написал TODO фильтрация данных. Ну и нужны подготавливаемые запросы.

    Видел, но для борьбы с SQL-инъекциями надо использовать подготовленные выражения. А фильтрация SQL с подставленными данными бесполезна.

    Я прочитал несколько статей по MVC и посмотрел много видео. И так до конца и не понял, что есть MVC.
    У каждого MVC - свое. У каждого модель и контроллер что то свое.
    У одних больше логики в модели, у других в контроллере. Одни не любят толстые контроллеры, другие наоборот. Реализация данного паттерна мне не до конца понятна.
    Я считаю, что Модель - это БД, вид - это шаблон, контроллер - это файл/группа файлов которые отображают данные из модели в шаблоне и изменяют состояние переданное из шаблона (пользователь кликнул по кнопке) в модели (БД).

    Есть различные модификации, конечно. Но, модель - это не БД, это вообще вся логика приложения. Толстые контроллеры, сами по себе это не плохо и не хорошо, это показатель того, что скорее всего есть ошибка. Толстые контроллеры появляются чаще всего там, где в них запихнули логику, а это чревато проблемами, поэтому они еще и "уродливые". Когда будете писать разное взаимодействие с пользователями, например добавите еще и API, сразу будет понятно почему не нужно в контроллерах держать логику.
  • Как привести объект родителя к объекту потомка?

    @Vitsliputsli
    Не сильно понятно, что именно нужно. Но скорее всего подойдет шаблон wrapper.
  • Как сделать переход с витой пары на оптоволкно?

    @Vitsliputsli
    Griboks,

    Это всё далеко от уровня воткнуть железный прут в землю или протянуть трос между столбами.

    Ну так, а я о чем пишу?!

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

    @Vitsliputsli
    Griboks, да не жаль вам, раз такой бесполезный комментарий.
    Хочется по делу, напишите, какую защиту использовали. Какого типа? Если нескольких, то как стыковали.
    Как уже написали, у кого-то и без защиты все работает. Поэтому, если все норм, то не факт, что именно защита работает.
    И, к слову про грозозащитный трос, оборудование горит не потому что молния бьет прямо в провода.
  • Как сделать переход с витой пары на оптоволкно?

    @Vitsliputsli
    lolrofl01, очень рад за вашу баню, к сожалению, не у всех так радужно.
  • Как сделать переход с витой пары на оптоволкно?

    @Vitsliputsli
    Drno, хм, интересно. А грозозащита стоит? У нас при весенних грозах, грозозащита выгорала, без нее выгорали порты.
  • Вопрос по развитию IT?

    @Vitsliputsli
    Я бы "Чистый код" Мартина вообще бы не трогал. Слишком он бросается в крайности, а в реальной жизни нужен баланс. Лучше начать с "Совершенного кода" Макконелла, он более жизненный, и будет с чем сравнить.
  • Как сделать переход с витой пары на оптоволкно?

    @Vitsliputsli
    Drno, выше зданий обычно и не бывает никогда, а в весенние грозы металл горит обязательно.
  • Как сделать переход с витой пары на оптоволкно?

    @Vitsliputsli
    Griboks, которая, как правило, выгорает сама, что опять же приводит к неработоспособности. Быть может есть нормальные, но я таких не видел.
  • Как сделать переход с витой пары на оптоволкно?

    @Vitsliputsli
    Проблема в том, что как написал @rPman
    по воздуху ethernet сгорит при первой же грозе
  • Как взять все из таблицы, но с уникальным условием?

    @Vitsliputsli
    Зачем "потом"? Сразу в sql и группировать по title с max или min по id. Другое дело так ли надо, да и выглядит очень подозрительно, вполне возможно ошибка в структуре, как уже написали.