• Что отвечать на вопрос, зачем\почему обновил резюме?

    @Vitsliputsli
    Не хотите, чтобы работодатель увидел резюме - создавайте его без указания имени и точного названия компании.
    Хоть работодатель и пытается читать мысли, но не всегда успешно, поэтому вполне ожидает, что работник сперва обратиться к нему, если чего-то не хватает. Если работодатель "обиделся", что вы обновили резюме, то не стоит переживать о таком работодателе. Хоть это и не идеальное поведение со стороны работника, но я практически не видел случаев, когда прежде чем уволить кому-то давали четкие условия, что нужно что-то улучшить и т.п.
    В плане, что сказать сейчас - есть такая замечательная вещь, как мониторинг рынка. Специалист должен понимать, что потребно на рынке труда именно сейчас, а что нет. Ну и разумеется, что и сколько стоит. Это нормально, ведь если годами "вариться" в одной компании, то выйдя на рынок можно обнаружить, что твои навыки никому не нужны вовсе.
    Ответ написан
    Комментировать
  • Нужно ли иметь вышку в it для руководящих должностях?

    @Vitsliputsli
    Все зависит от компании.
    Знаю нескольких с общим средним образованием, работавших тимлидами на крупную компанию, предоставляющую аутсорсинговые услуги крупнейшим банкам, страховым компаниям, почтовым службам и т. п. Компания экономила на сотрудниках, поэтому разработчиков набирали в бедных, среднего размера городах, и их профессиональный уровень был невысок.
    В крупных городах не встречал, хотя и разговор об образовании заходит редко.
    Ответ написан
    Комментировать
  • Почему не работает curl в цикле?

    @Vitsliputsli
    У вас и во внешнем и во внутреннем цикле используется одна и та же переменная.
    Ответ написан
    Комментировать
  • Вопросы по архитектуре проекта: service layer и action domain responder?

    @Vitsliputsli
    Но если поместить это в сервис, то открыв класс сервиса, мы увидим вообще все кейсы работы с сущностью "пост", а если писать это в контроллере, то логика уже чуть размазывается по приложению.

    Сервисный слой или модели в MVC - это не класс, не объект. Это код отвечающий за доменную логику, там никто Single Responsibility не отменял, делите сущности по их ответственности, и создавайте столько классов, сколько необходимо.

    И вопрос, а чем же всё таки являются actions? Это больше контроллеры одного действия, или больше сервисы одного действия? Поскольку в сети мнения на этот счёт расходятся.

    Очевидно, что actions - это обычные контроллеры. Вообще, ADR - это тот же MVC, с абсолютно таким же делением на controller-action, model-domain, view-responder. Автор ADR утверждает, что там связи более правильные. Но в отличиях ADR от MVC, автор приписывает MVC какие-то ужасы, типа вьюха при желании лезет в модели что-то там запрашивает и т.п., чего в MVC нет и никогда не было. Такое ощущение, что автор ADR просто открыл для себя как правильно пользоваться MVC.
    Ответ написан
    Комментировать
  • Непонятное поведение chdir в php. Что не так?

    @Vitsliputsli
    Chdir возвращает ответ, по которому можно определить отработало это или нет. Когда не срабатывает, то в лог кидается ошибка с описанием причины.
    Соответственно, вопрос, на фига гадать, если нужно читать лог.
    Ответ написан
    Комментировать
  • Выбор базы данных для быстрой записи меняющихся данных?

    @Vitsliputsli
    Это не должно быть проблемой для Mysql, это очень быстрая СУБД. С учётом, что это временные значения, которые не нужно хранить постоянно, то и классическая СУБД не нужна. Поэтому берите Redis. А Clickhouse это аналитическая СУБД, это здесь вообще не причём.
    Ответ написан
    Комментировать
  • Почему... xdebug встает не на те линии?

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

    @Vitsliputsli
    Что значить "Надо их где-то хранить"? Эти данные будут использоваться далее, отдельно от описанного?
    Если не будут, просто сразу пересылайте из сервера Go в сервер nodejs. Если, чтото и потеряется, то оно все равно утратит свою актуальность и придут новые данные.
    Если будут использоваться, то зависит от того, как будет использоваться, вполне может и вообще классическая СУБД нужна.
    Ответ написан
    6 комментариев
  • Как посчитать разницу между датами без года в PHP?

    @Vitsliputsli
    А как вы собираетесь считать дни между датами, без указания года? Или вы забыли, что есть високосные года?
    Укажите текущий год для дня рождения, и сравните с текущей датой. Если результат отрицательный, то берите следующий год для дня рождения.
    Ответ написан
    Комментировать
  • В каких случаях стоит использовать ORM в go?

    @Vitsliputsli
    В каких случаях стоит использовать ORM в go?

    Как и в любом другом языке, если вам не критична скорость работы с БД и вы понимаете как работает конкретная ORM. Или вам вообще плевать на скорость работы с БД, тогда можно и не понимать ORM.
    Ответ написан
    Комментировать
  • Как правильно организовать структуру?

    @Vitsliputsli
    Про ветки написали, но мне кажется, что вопрос про другое. Очень похоже, что имеется ядро системы, и на его основе развернут проект Б и С. Тогда делаем отдельные репы для А, Б, С. В проектах Б и С подключаем как зависимость реп А (средствами принятыми в используемом языке).
    Касательно гита, есть еще submodules, но я бы не стал их использовать, не очень это удобно.
    Ответ написан
  • Что такое монадическая обработка ошибок?

    @Vitsliputsli
    Что такое монадическая обработка ошибок? И почему это круто?

    Очевидно использование монад для обработки ошибок. "Монада – это просто моноид в категории эндофункторов. Функтор – это гомоморфизм между категориями. А эндофунктор – это просто функтор, отображающий категорию на саму себя. "
    По-моему уже этого достаточно, чтобы ответить на 2ой вопрос.

    Объясните для человека не знакомого с функциональным программированием, в чем плюс отсутствия try-catch-finally.

    Монада - это попытка обойти ограничения функционального программирования, выполнять последовательные операции, т.е. делать то, что делается при императивном подходе из коробки. Т.е. монада специфична для функционального, а try-catch-finally для императивного, и последний в первый никак не запихнуть, поэтому - монада.
    Нет принципиальной разницы в этих методах обработки ошибок, ошибки идут отдельным потоком, разница лишь когда будет вызван обработчик.
    Насколько я знаю, для монад есть еще один аргумент - это убирание обработки ошибок "под капот", т.е. мы видим решение только тест-кейса основной бизнес-логики, а тест-кейсы ошибок скрыты. Если говорить про ООП, там это не проблема, при подобном структурировании обработчик ошибок будет именно там, где и должен быть, к примеру, если мы говорим о "File not found", то в классе отвечающем за инфраструктуру и в бизнес-логике мы его не увидим. Кроме того, мы можем задать общий обработчик, а не писать всюду try catch. Что касается процедурного подхода, то наверное абсолютно все спрятать не получится, но если мы в 22 году пишем процедурно, у нас приоритет не структуризация, а производительность и здесь уже другие критерии.
    Ответ написан
    8 комментариев
  • Как с помощью функции array_slice удалить значение из массива?

    @Vitsliputsli
    array_slice ничего не удаляет, он дает срез массива, поэтому такая формулировка не очень корректна. Исходя из этого, вы не сможете удалить элементы внутри существующего массива, и единственный вариант - это создание нового массива с выбранными значениям.
    $numbers = [
        '123',
        '124',
        '125',
        '111',
        '222',
        '566',
        '777',
    ];
    
    $cleanNumbers = [];
    foreach ($numbers as $key=>$number) {
        // не нужно делать универсальным поиск нужных значений, т.к. он слишком специфичен, поэтому так:
        if ($number[0]===$number[1] && $number[1]===$number[2]) {
            // здесь проще было бы написать $cleanNumbers[] = $number;
            $cleanNumbers[] = array_slice($numbers, $key, 1); 
            // а если нужно все таки удаление, то достаточно unset($numbers[$i]) с противоположным условием
        }
    }
    var_dump($cleanNumbers);

    В итоге, на кой здесь array_slice - мне совершенно не понятно.
    Ответ написан
  • Как запретить запуск скрипта по крону больше 1 раза?

    @Vitsliputsli
    Используйте mutex. Он либо есть в вашем фремворке, либо сделайте сами. Варианты: файловый - реализуется с помощью flock (это такая команда в php, а не внешняя утилита как в другом ответе), в БД - если файловый делать нельзя, например, при нескольких инстансах приложения.
    Ответ написан
    Комментировать
  • Как закрыть задачу в Jira, не решая её?

    @Vitsliputsli
    Подскажите, как можно закрыть задачу не решая её?

    Присвоить ей статус из завершенных. Откройте workflow и увидите, какие у вас есть статусы (завершающие имеют зеленый цвет). Если нет подходящего, отредактируйте workflow и добавьте нужное.
    Ответ написан
    Комментировать
  • Какие советы может дать по тому как стать пентестером?

    @Vitsliputsli
    Начните с изучения уязвимостей (OWASP и т.п.). Если плохо понимаете технологии, которые используются в этих уязвимостях, то надо будет эти знания углубить. Безусловно нужно знание сетей, но я не согласен с утверждениями про "прекрасный программист, сетевой инженер, админ и психолог в одном лице", просто потому что человеку проблематично все это уместить в себе. К тому же, к примеру, вам не нужно уметь писать правильный красивый код, но нужно знать как его отдельные элементы можно использовать "не по назначению". Для начала изучите протокол http, Postman и прокси для браузера отлавливащего и модернизирующего запросы.
    Мне нравятся курсы от Avatao, там хорошие практические задания. Хвалят книгу "web hacking 101", хотя сам я ее так и не прочел.
    Безусловно английский, информации по теме на русском практически нет.
    И изучите вопрос, где собираетесь работать, я не так много видел компаний, которые заинтересованы в таких специалистах.
    Ответ написан
    1 комментарий
  • Почему сокет клиент зависает при разрыве соединения?

    @Vitsliputsli
    Как отлавливать разрывы сети на стороне клиента в PHP и просто пропускать выполнения функции socket_read?

    Никак. Откуда ему знать, есть на другой стороне машина или нет?
    Проверяйте что целевая машина отвечает по типу эхо-запросов и отключайте по таймауту.
    Ответ написан
    Комментировать
  • Существуют ли "приходящие" специалисты по организации работы отдела?

    @Vitsliputsli
    Разумеется такие специалисты есть, не думаю, что сложно будет найти такие предложения. Есть 2 варианта - нанять менеджера (какой-нибудь кризис-менеджер работает около года, выстраивает процессы, затем уходит, т.к. стоимость его очень высока), и есть консультанты с различной стоимостью. 1 вариант лучше, т.к. в отличии от консультанта такой менеджер несет ответственность за то, что делает, т.к. он внутри. Консультант, даже дорогой, может сказать, что команда просто не точно, не полно выполняла его рекомендации (а это всегда можно сказать, к тому же команда может оказаться в ситуации, когда ей придется выбирать между положить силы на сомнительные рекомендации консультанта или выполнить план, при этом за провал плана команда по-прежнему несет ответственность). Я не видел хороших консультантов, даже дорогой консультант может начать все выстраивать по стандартным нормам, которым его обучали, на практике же, как вы правильно указали нужно выявлять слабые места и чинить их, а это сложнее, требует глубокого погружения и потому занимает гораздо больше времени. И, в конце концов, если полное болото, то всегда можно нанять обычного менеджера с опытом выстраивания процессов, но при этом и технический руководитель должен знать и уметь внедрять инновации, без этого в разработке никак.
    Ответ написан
    Комментировать
  • Mysql Хранение в оперативной памяти?

    @Vitsliputsli
    Как настроить базу данных чтобы все данные сначала хранились на Оперативной памяти но при этом сразу записывались на hdd. Естественно если будет перезагрузка все потерятся. И поэтому нужно чтобы на лету записывало на hdd но отдавало при этом с оперативки. Как настроить?

    Зачем? Если вам нужно, чтобы СУБД работала быстро, то для этого их и создают, там и так все есть. Зачем придумывать архитектуру СУБД, если это уже сделано? Тем более, не зная ничего о том, как они работают.
    Не питайте иллюзий, что вы сейчас придумаете лучшую архитектуру, чем та, над которой работают десятилетия профессионалы. К тому же, примерно как вы описали, так и работает MariaDB.
    Не "подкручивайте" настройки, дефолтных настроек вполне достаточно, что-то меняя можно "убить" СУБД. В настройки надо лезть тогда, когда есть конкретная проблема, и понимаешь, не только то, какая настройка может на это повлиять, но и то, какие другие аффекты это вызовет.
    Ответ написан
  • Проектирование БД, какую СУБД выбрать?

    @Vitsliputsli
    Вполне нормальная структура. Нагрузка низкая. СУБД та, которую лучше знаете (это актуально и для высоких нагрузок, тот же MySQL прекрасно себя показывает на высоких нагрузках, если вы его используете как базу данных, и не требуете приготовления кофе). Схемы здесь задействовать ни к чему. ClickHouse - это вообще про другое, забудьте до тех пор, пока не понадобится аналитика по большим объемам данных. Главное, не забудьте построить индексы по тем полям, по которым будете формировать выборки.
    Ответ написан
    Комментировать