• Мешает ли факт того, что я лежал в ПНД от военкомата и получил "легкий" диагноз (тревожное РЛ) трудоустройству в it сфере?

    php666
    @php666
    PHP-макака
    В IT каждый второй шизофреник, за своего сойдешь.
    Ответ написан
    Комментировать
  • Имеет ли смысл смена специальности?

    php666
    @php666
    PHP-макака
    php, MySQL
    пхпшников сейчас как гамна за баней, самое глупое сейчас - это в этот стек лезть.
    Ответ написан
  • Как в условие исключить число?

    php666
    @php666
    PHP-макака
    Советы выше - не универсальны и ведут к дублированию кода.
    Вот более правильный универсальный вариант:

    class Checker
    {
        /**
         * @var mixed
         */
        protected mixed $value;
    
        /**
         * @var int
         */
        protected int $minimalValue = 0;
    
        /**
         * @var array
         */
        protected array $excludeValues = [];
    
        /**
         * Checker constructor.
         * @param mixed $value
         */
        public function __construct(mixed $value)
        {
            return $this->checkValue($value, function() use ($value) {
                $this->value = $value;
    
                return $this;
            });
        }
    
        /**
         * @param mixed $value
         * @return $this
         */
        public function setMinimalValue(mixed $value): self
        {
            return $this->checkValue($value, function() use ($value) {
                $this->minimalValue = $value;
    
                return $this;
            });
        }
    
        /**
         * @param mixed $value
         * @return $this
         */
        public function setExcludeValue(mixed $value): self
        {
            return $this->checkValue($value, function() use ($value) {
                if (!array_search($value, $this->excludeValues)) {
                    array_push($this->excludeValues, $value);
                }
    
                return $this;
            });
        }
    
        /**
         * @return bool
         */
        public function validate(): bool
        {
            return $this->value > $this->minimalValue && !in_array($this->value, $this->excludeValues);
        }
    
        /**
         * @param mixed $value
         * @param callable $callable
         * @return $this
         */
        protected function checkValue(mixed $value, callable $callable): self
        {
            if (!$this->isInteger($value)) {
                throw new \RuntimeException("Value `$value` is not integer");
            }
    
            return $callable($this);
        }
    
        /**
         * @param mixed $val
         * @return bool
         */
        protected function isInteger(mixed $val): bool
        {
            if (!is_scalar($val) || is_bool($val)) {
                return false;
            }
    
            return $this->isFloat($val)
                ? false
                : preg_match('~^((?:\+|-)?[0-9]+)$~', $val) === 1;
        }
    
        /**
         * @param mixed $val
         * @return bool
         */
        protected function isFloat(mixed $val): bool
        {
            if (!is_scalar($val) || is_bool($val)) {
                return false;
            }
    
            $type = gettype($val);
    
            if ($type === "double") {
                return true;
            } else {
                return preg_match("/^([+-]*\\d+)*\\.(\\d+)*$/", $val) === 1;
            }
        }
    }
    
    try {
        echo (int) (new Checker('5'))
            ->setMinimalValue(4)
            ->setExcludeValue(107)
            ->setExcludeValue(107)
            ->setExcludeValue(108)
            ->validate();
    } catch (\Exception $e) {
        echo $e->getMessage();
    }
    Ответ написан
    Комментировать
  • В каком возрасте лучше начинать втягивать своего ребёнка в IT-индустрию/программирование?

    php666
    @php666
    PHP-макака
    Только вчера был крик души: ebanoe-it.ru/2021/03/24/could-not-enter-it/
    Человек пошел учиться (видимо, без особого осознания), понял, что не его и в итоге работает в Евросети.

    тру-программера с хорошими финансовыми перспективами
    шофёры в СССР тоже думали о финансовых перспективах, таксисты в 90х тоже не жаловались, потом были бухгалтера в эпоху перестройки.

    В итоге шофер ценится более-менее только тогда, когда у него права начинаются от категории С-С1.
    Таксист сейчас это раб, работающий за 160 рублей.
    Бухгалтер - вполне заурядная профессия. Как и программист.

    А ещё, жители Донецка до 2014 года даже представить не могли, что скоро будет война.

    Какой смысл думать за другого человека, да ещё и на такое далекое будущее?
    Ответ написан
  • Начало пути. Как пробиться на стажировку?

    php666
    @php666
    PHP-макака
    У меня для тебя плохие новости, но сейчас понабегут обитатели этого ресурса и будут уверять тебя, что у тебя всё будет хорошо.
    Ответ написан
    6 комментариев
  • Что изучать дальше в вебе?

    php666
    @php666
    PHP-макака
    Внесу немного негатива. Почитай это - ebanoe-it.ru/2021/01/12/staff-shortage/
    Теперь, когда ты видел список, я скажу тебе следующее: а вот черт знает, что тебе в вебе изучать.
    Сейчас такая тенденция в сфере, что каждая вакансия - как рисунок калейдоскопа, т.е. абсолютно разные требования. Знания "hmtl, css, jquery, php, mysql" сейчас стоят примерно как зарплата кассира в магазине.

    Проблема в том, что работодатели сегодня хотят то, что ты уже должен был выучить ещё вчера. Веб разросся до уровня раковой опухоли, один зоопарк SPA чего стоит. Изучай-не изучай, но без реальной практики на боевых современных проектах твои мечты относительно "нормально зарабатывать" стремятся к нулю.

    Если тебе меньше 25 лет, то крайне советую броcить нафиг веб и уйти в нормальный ЯП. Хотя бы в туже Java/PLSQL - сможешь потом до пенсии в банке сидеть, Core кодить. А веб в сегодняшнем виде - это абсолютно гиблое вливание времени, через 5-10 лет всё изменится до неузнаваемости, технологии поменяются и будешь опять учиться.
    Ответ написан
    Комментировать
  • Соглашаться ли получать меньше на испытательном сроке?

    php666
    @php666
    PHP-макака
    Судя по вопросам автора, он джун.
    Сл-но зарплату ему предложили не большую.
    -30% и там вообще слёзы будут.

    Тут 2 варианта:
    1. Ты реально еще слаб и не тянешь на заявленные деньги, работодатель это понимает и пытается экономить.
    2. На тебе просто пытаются экономить

    Вангую, что нашел ЗАО "рога и копыта".

    В нормальных условиях это, конечно, не нормально. Давно такая дичь не практикуется в нормальных компаниях.

    Решай сам.
    Ответ написан
    Комментировать
  • Можно ли считать стаж работы при разработке своего проекта?

    php666
    @php666
    PHP-макака
    Хочу уйти и делать свой проект.
    абсолютно идиотская затея.
    Жить на что будешь?
    Или полагаешь, что твой проект выстрелит и станет вторым фейсбуком? Нет, не станет и на 0.0001%

    Будет ли эта информация для работодателя так же привлекательна, как стаж работы в существующей компании?
    Нет. Им, в большинстве, плевать на твои пет-проекты.
    Никто их не смотрит, никто не смотрит в гитхаб.
    Так было всегда.
    А если и смотрят, то отсилы 2-3 файла. Это статистика (моя) с гитхаба.
    Резюме на вакансию приходит по 10 штук, и людям откровенно лень досконально даже читать "от и до" эти резюме.
    От собеседования не убежишь, хоть ты 100 проектов склепай.
    И никакого профита ты не получить от собственных разработок с точки зрения успешного трудоустройства, кроме как личного капитала знаний.
    Ответ написан
  • Сложно ли совершить трансфер между отраслями в IT?

    php666
    @php666
    PHP-макака
    Тяжело совершить трансфер, если ты специалист.
    Совершая трансфер ты девальвируешь свои знания и становишься в один ряд со вчерашними студентами.
    Никто не нанимает программистов Java писать на PHP. Не потому, что они не умеют программировать, а потому, что на освоение инструмента нужно время. Много времени. Хотя тут тебя будут уверять в обратном.

    Учитывая твой стаж и возраст, можно сказать, что для тебя это пройдет безболезненно.
    Ответ написан
  • На чем сделать маркетплейс?

    php666
    @php666
    PHP-макака
    Битрикс супер, пиши на Битриксе.
    Ответ написан
    2 комментария
  • Каким образом поступить?

    php666
    @php666
    PHP-макака
    большинство коллег косо смотреть на меня, якобы я предал их
    ахаха джун предал джунов, какая слезная история =)) они там не плачут случаем?))

    мне надо доработать 19 дней
    кек, такое уже нигде не практикуется, увольняют в первый день. Совок))
    Ответ написан
    Комментировать
  • Почему self так работает?

    php666
    @php666
    PHP-макака
    Автор в какой-то раз задает какие-то сверхсложные вопросы. Как выделяется память, как это работает на уровне интерпретации и тп.
    Может стоит подход к изучению изменить?

    Как константы работают при наследовании?
    Константы импортируются в классы потомки?
    ну типа да, на то оно и наследование.
    Ответ написан
    Комментировать
  • Какая выгода компаниям "растить" джуниоров внутри себя?

    php666
    @php666
    PHP-макака
    Вопрос поставлен некорректно. Слово "растить" нужно заменить на слово "держать".
    Вы никому нафиг не сдались, что бы вас "растить".
    В остальном Максим Федоров все сказал.
    Ответ написан
    Комментировать
  • Почему не сохраняется присвоенное переменной класса значение?

    php666
    @php666
    PHP-макака
    На этот говнокод невозможно смотреть, у меня кровь из глаз пошла.

    Давай ты для начала
    1. Почитаешь об автозагрузке классов
    2. Перестанешь писать require в методах и почитаешь про внедрение зависимостей.
    3. Перестанешь использовать собаку @ там, где это не требуется. А именно в условии if (@$_REQUEST['select']) , для этого есть функции isset и empty.
    4. Внятно сформулируешь свой вопрос без кучи этого околорабочего кода и напишешь небольшой класс, описав проблемы с геттерами и сеттерами.
    Ответ написан
    4 комментария
  • Где искать социально значимую работу?

    php666
    @php666
    PHP-макака
    Автор получать некое морально-эстетическое удовольствие от работы в IT.
    К сожалению, без очень хороших теоретических знаний какой-то предметной области (математика, физика), диплома хорошего ВУЗа и везения он ничего не найдет и космические корабли программировать не будет.

    А поскольку у автора (судя по его вопросам) обычный макакичьий стек технологий, то его участь - не выёживаться и работать там, где работает 99% айтишников, т.е. на благо бизнеса, в казино и b2b. Даже в Банк, на разработку Core, не подпустят.
    Ответ написан
    1 комментарий
  • Очистка кэша php?

    php666
    @php666
    PHP-макака
    Примерно так:
    Запрос вида /css/style.css
    обрабатывается неким контроллером, назовём его контроллер CSS.
    Т.е. если с сервера запрашивается адрес /css/style.css, на самом деле вызывается php скрипт, в который передаётся аргумент, строка "style.css" (гугли mod_rewrite или единая точка входа).

    Далее, в контроллере CSS ты смотришь дату изменения этого файла style.css:

    function getModificationTime($path_to_file)
    {
        return (new Datetime())->setTimestamp(filemtime('/my/style/paths/' . $path_to_file));
    }
    
    $modify_date = getModificationTime('styles.css');


    Далее, в этом контроллере ты проверяешь, пришёл ли от браузера заголовок HTTP_IF_MODIFIED_SINCE (погугли, что это).

    /**
         * Возвращает true, если дата (обычно документа) $data является устаревшей
         * по отношению к HTTP заголовку If-Modified-Since.
         *
         * @param $date \DateTime
         * @return bool
         */
        public static function IfModifiedSince(\DateTime $date): bool
        {
            if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE'])) {
                $if_modified_since = strtotime(substr($_SERVER['HTTP_IF_MODIFIED_SINCE'], 5));
    
                if ($if_modified_since && $if_modified_since >= $date->getTimestamp()) {
                    return false;
                }
            }
    
            return true;
        }


    если true, считываешь css файл и выплёвываешь его посредством этого контроллера (через echo), отправляя http заголовки, присущие для css ('text/css; charset=utf-8') и заголовок Last-Modified с датой $modify_date в формате "D, d M Y H:i:s \G\M\T"

    если false (файл не изменился) просто отдаешь http заголовок 304

    ----

    этой информации тебе достаточно, что бы самостоятельно всё самому реализовать
    Ответ написан
    Комментировать
  • Что отвечать на собеседование когда спрашивают про нарушение сроков задачи?

    php666
    @php666
    PHP-макака
    Какой ответ ждут от разработчика?
    примерно такой:
    Ваше благородие! Виноват! Исправлюсь! Не велите казнить! Обязуюсь не спать трое суток, а решать задачу!

    А знаешь почему? Потому, что 95% из вас - терпилы по жизни.
    Я вообще не понимаю, как в мире IT, в разработке, можно говорить о каких-то сроках. Тривиальная ошибка может стать ступором на неделю - легко!
    Это землекоп или укладчик кирпича может объективно говорить о сроках, там +/- процессы длятся одинаково. В IT - нет.

    Не работайте там, где сроки горят. Полно мест, где нет никаких горящих сроков, где вас не заставляют лезть вон из кожи. Читай: ebanoe-it.ru/2020/12/28/right-way/
    Ответ написан
    3 комментария
  • Какой паттерн использовать для формирования выходных данных?

    php666
    @php666
    PHP-макака
    В laravel есть нечто похожее, не смог найти в документации, забыл как называется. Суть в том, что на каждый ответ, например на ajax-запрос, имеется свой класс, который принимает на вход что-то, а отдает строго оговоренный массив данных, который тупо прописывается в методе, который возвращает результирующий массив.
    Только там не как у тебя в setData() основная работа, а наоборот:
    class foo {
       public function getData() {
          return [
              'key' -> $object->id,
              // ....
          ];
       }
    }


    Но, как мне кажется, это избыточный слой. Почему не отдавать содержимое какой-либо сущьности (объекта, массива данных, коллекции) как есть, полностью?
    Ответ написан
    2 комментария