• Как составить запрос который выводит именинников?

    @Vitsliputsli
    with birthday as (
        select 'Ivanov' as name, date '1977-11-30' as birthdate
        union all
        select 'Petrov', date '1991-11-18'
        union all
        select 'Test', date '2000-01-01'
    ) 
    select 
        name, birthdate 
    from birthday
    where 
        make_date(extract(year from date '2019-11-01')::integer,
                  extract(month from birthdate)::integer,
                  extract(day from birthdate)::integer) 
            between date '2019-11-01' and date '2019-11-01' + interval '3' month
        or
        make_date(extract(year from date '2019-11-01')::integer + 1,
                  extract(month from birthdate)::integer,
                  extract(day from birthdate)::integer) 
            between date '2019-11-01' and date '2019-11-01' + interval '3' month
    Ответ написан
  • Правильно ли я понимаю суть Tests в Postman?

    @Vitsliputsli
    Без разницы где вы пишите тесты. Тест - это эмулирование некой ситуации и сравнение полученного результата с ожидаемым. Абсолютно не важно 200 или 400. Вы посылаете корректный запрос и ожидаете получить в ответ 200, получили - значит ок. Вы шлете запрос с ошибочными данными и ожидаете в ответ 400, получили что-то иное, значит fail. Т.к. это тоже некорректное поведение.
    Другое дело, что лучше сначала покрыть тестами стандартное поведение, и не только возвращаемые коды, но и данные, а затем уже исключения, ошибки и прочее.
    Ответ написан
    Комментировать
  • Где Вы принимаете и обрабатываете $_POST запросы?

    @Vitsliputsli
    В том контексте, где вы читали, имелась ввиду бизнес-логика. MVC - это по-сути деление кода на логические слои "ввод", "обработка", "вывод". Попробуйте, представить, что у вас взаимодействие пользователя не только через web, но и как-то еще, какое-нибудь api, или даже командная строка. Чтобы не дублировать код, вы выделите какую-то общую часть, это и будут модели, а различия ввода уйдут в контроллеры, и там уже в них будете обрабатывать http-запросы или аргументы командной строки.
    Но не нужно мои слова понимать буквально, как ту статью. К примеру, я не имел ввиду, что api - это только контроллеры, в какой-то момент вы решите что нужны собственные модели для api, да и вообще нужно выделить его в отдельный модуль.
    Схема MVC, как и паттерны проектирования - это способы управления сложностью. В данном случае мы боремся с сильным зацеплением, т.е. зависимостью классов друг от друга во многих частях. Чем меньше таких зависимостей, тем проще будет расширять код. Писать api к правильно разделенному по mvc коду достаточно легко, но если везде будут произвольно натыканы обращения к данным post-запроса, то все эти куски придется переписывать. Продумывайте как будете расширять проект.
    Ответ написан
    Комментировать
  • Есть ли базы данных, хранилища, бэкенды для конфиденциальных данных?

    @Vitsliputsli
    Посмотрите в сторону мандатного контроля, это в первую очередь решения на основе SELinux, и основные СУБД их поддерживают.
    Ответ написан
    3 комментария
  • Почему PostgreSQL не использует индекс?

    @Vitsliputsli
    Постройте составной индекс по обоим полям.
    Ответ написан
  • Как написать функцию?

    @Vitsliputsli
    Переводите второй аргумент в троичную систему, а цифры заменяйте на буквы abc при выводе. Либо в другую, если букв не 3.

    Нет, ошибся, не соответствует системе счисления, проще циклами пробежаться.
    Ответ написан
  • Linux для начинающих?

    @Vitsliputsli
    Ставьте Ubuntu или лучше Debian (в нем меньше косяков, но и ПО более старое), с ними проще на первых порах, т.к. требуется меньше знаний и сообщество большое. Ставьте систему по-умолчанию, стараясь на первых этапах ничего не менять в ней, иначе погрязнете в починке ненужных проблем. Относитесь к этой системе как к тестовой, которую не страшно поломать, поэтому делайте бекапы важных данных. Погружаетесь в работу с консолью и демонами постепенно, только так вам это не опротивит после первых же проблем, которые вы не сможете решить, а они будут блокировать всю работу.
    Не слушайте советов по установке базовой системы без GUI, такое советуют только для самоутверждения, типа "вот, ещё один не осилил, какой значит я молодец". Как и при любом изучении нового, действуйте постепенно. Если будете заниматься разработкой, то никаких vim, ставьте нормальную IDE, если писать скрипты для администрирования, то без разницы по большому счету.
    Осваивайте постепенно, погружаясь в те области, которые вам нужны для работы прямо сейчас, ликвидируя пробелы которые мешают, т.е. как при любом изучении нового. И без попыток понять все и сразу.
    Ответ написан
    Комментировать
  • Почему не работает mkdir на сервере apache?

    @Vitsliputsli
    Что возвращает функция? А вообще, наверное имелось ввиду:
    mkdir('/var/www/html/page', 0777, true);
    Ответ написан
    3 комментария
  • Берут ли на Java стек людей с других языков?

    @Vitsliputsli
    Есть 2 категории программистов. Одни пишут с помощью языков программирования, другие пишут на языке. Для первых - язык лишь средство, для вторых - основополагающая вещь, на которую они готовы молиться, хотя в некоторых случаях знание глубокой специфики даёт преимущество, но и делает заложником языка. Также как вторые рассуждают и те, у кого не вышло стать программистом.
    Но работадатель скорее всего не станет вас брать и надеяться что вы изучите новый язык за его счёт, поэтому изучите самостоятельно. Если у вас хороший опыт на php7, динамическую типизацию используете когда это нужно, и разрабатывали демонов, то у вас не будет проблем. Половина "специфики" вам уже известна, пусть и в другом виде, половину вы изучите быстро. Далее идите смело работать, будет надо, соврите, что уже работали с новым языком (не рекомендую врать на собеседовании, но здесь проблема в стереотипах). А джун и миддл очень абстрактные словечки и в каждой компании будет свое понимание. Равно как и требования у проводящих собеседования.
    Ответ написан
    Комментировать
  • Соединение php сайта с linux сервером?

    @Vitsliputsli
    Также как без PHP, вызывайте нужные системные команды через exec, shell_exec, system по вкусу.
    Ответ написан
  • Почему в контроллерах MVC-фреймворков на PHP несколько действий?

    @Vitsliputsli
    зачем объединять несколько действий в один класс? Почему бы не сделать все действия одиночными? Единственная причина, которую я сейчас вижу (по крайней мере, в Yii, который я использую), — желание разместить сходные по тематике действия в одном контейнере

    Потому что практически все фреймворки используют ООП, а MVC здесь ни при чем. Заменить все методы классами бредовая фантазия, и дело не в более мелком дроблении или сборке схожего вместе, между объектом и методом принципиальная разница. Контроллер такой же объект, его экшены - методы этого объекта. Сколько у объекта методов зависит от его логики, а не от деления данных (может 1, может 10, а может 0).
    Ответ написан
    Комментировать
  • Сколько потоков в php?

    @Vitsliputsli
    Почитайте про pthreads. Что касается "Zend версии", то наверное имеется ввиду, что PHP должен быть скомпилирован с Zend Thread Safety, это обязательно для pthreads.
    Ответ написан
    Комментировать
  • Как сделать так, чтобы изменение содержимого директории, которая была заменена такой же по названию, было замечено гитом?

    @Vitsliputsli
    Либо добавляемая директория идентична предыдущей, либо она в игноре.
    Директории отличаются? Что в .gitignore? Что пишет git status?
    Ответ написан
    Комментировать
  • Sql и субд для начинающего?

    @Vitsliputsli
    На начальном уровне различий практически нет, поэтому можете изучать. Другое дело изучение без практики невозможно, а практика всегда будет на каком-то диалекте.
    Основы будут почти идентичны и на MySQL, и на PostgreSQL, и на Oracle. В самом начале Oracle "радует" отсутствием limit, и старым багом идентичности '' и null. Но чем больше будете погружаться тем больше будете видеть отличий как синтаксических, так и принципиальных.
    Ответ написан
  • Как перейти на разработку в команде?

    @Vitsliputsli
    Лучше, конечно, сразу на будущее поставить gitlab. Но в принципе, можете обойтись git и хорошим клиентом к нему (в первую очередь для diff). PHPStorm вполне достаточно. Для code review не так уж и нужны доп.инструменты. Даже не заморачивайтесь pull request, отдельных веток и мержа их в dev вашими силами вполне достаточно.
    Ответ написан
    Комментировать
  • Как наложить нетривиальное ограничение уникальности на поле?

    @Vitsliputsli
    Создавать связь по city_id плохой вариант. Да, вы решите вопрос с уникальностью, но потеряете принадлежность районов к определенному городу в рамках таблицы ТР.
    Поэтому решайте с помощью внешнего языка программирования или хранимых процедур. Триггеры не очень явная штука, я бы лучше создал отдельную процедуру для заведения новых ТР, если выберите 2 вариант.
    Ответ написан
    Комментировать
  • Как добавить новую задачу в cron?

    @Vitsliputsli
    Редактирование задач:
    crontab -e
    Просмотреть список:
    crontab -l

    Условие правильное, только укажите интерпретатор, что-то вроде:
    0 18 * * * /usr/bin/php /var/www/....
    Ответ написан
    Комментировать
  • Можно ли устриться на работу не имея нормальных проектов?

    @Vitsliputsli
    Все работадатели разные и потребности у них разные. Портфолио не всех интересует, и в вебе в том числе. Все больше зависит от места, где ищете работу. При слабой конкуренции берут даже с слабыми знаниями, какое тут уж портфолио. Но может оказаться, что в вашем городе конкуренция высокая.
    Даже по 300 строкам кода можно сделать определенные выводы.
    И не пишите в резюме, что хорошо знаете C++, C, C#, Python, это слишком разные языки, и когда такое видят в резюме 24-летнего соискателя создаётся впечатление, что он не знает ничего. Понятно, что язык всего лишь инструмент, но лучше определитесь на чем специализируетесь, его и укажите, остальное в дополнение, что писали на них.
    К тому же, любые ответы здесь могут быть противоречивы, откройте свое резюме и многие вещи станут понятны.
    Ответ написан
    Комментировать
  • Как закоммитить в другую ветку?

    @Vitsliputsli
    Если имеете ввиду, что у вас есть коммит в одной ветке, а вы хотите такой же в другой ветке, то cherry pick. Если коммита нет, то stash.
    Ответ написан
    Комментировать