Задать вопрос
  • Покупка macbook pro 2018 vs 2019?

    inoise
    @inoise
    Solution Architect, AWS Certified, Serverless
    Flexgate в 2018 исправили, просто никому не сказали. Его удлинили на 2 мм. Пользуюсь почти полгода и из нареканий только стал подзависать тачбар при изменении звука при некоторых роликах на Ютубе и то что корпус таки мягче старых, но ограничилось парой точечных вмятинках на ребре ( видно так пользуюсь). С бабочкой проблем нет, не дул ее не разу - не залипает, нет левых срабатываний.

    Ждать 2019 можно. Ещё можно ждать 2020 и конца света. А смысл?
    Ответ написан
    Комментировать
  • Нужно ли передавать POST, GET, SESSION в класс?

    php666
    @php666
    PHP-макака
    Что бы писать качественные оо-приложения, для начала избавься от знания того, что есть все эти суперглобалы. Они, конечно, используются, но их надо "оборачивать" их классами-сервисами. Это нетривиальная работа - сделать сервис Session, в котором инкапсулировать всю логику по работе с сесиями, избавившись от нативных функций в коде. Суперглобалы GPR тоже обернуть, навесить на них некоторую логику. В целом тебе правильно сказали - любые значения надо "перебрасывать" в объекты. Напрямую их использовать не нужно. Твои классы должны быть черными ящиками с интерфейсом для входа параметров. А откуда параметры пришли - из GPRC или еще откуда - классы знать не должны.

    Я не претендую на истину, но я в своем фреймворке сделал вот такое решение:
    class Request implements Singleton
    {
        private function __construct()
        {
            $this->request_data = new RequestData($_REQUEST);
            $this->post_data = new PostData($_POST);
            $this->get_data = new GetData($_GET);
            $this->cookie_data = new CookieData($_COOKIE);
        }
    
        // ....

    Те при инстанцировании приложения я создаю объекты с копиями данных из запроса. На каждый из массивов свой объект:
    /**
     * Оболочка над GPCR массивами.
     */
    abstract class Data extends CoverArray
    {
        /**
         * @param array $data
         */
        public function __construct(array $data = array())
        {
            parent::__construct(self::clearData($data));
        }
    
        /**
         * Очищает массив от пробелов.
         *
         * @param array $in
         * @return array
         */
        private static function clearData(array &$in): array
        {
            if ($in && is_array($in)) {
                foreach ($in as $key => $value) {
                    if (is_array($value)) {
                        self::clearData($in[$key]);
                    } else {
                        $in[$key] = trim($value);
                    }
                }
            }
    
            return $in;
        }
    }
    
    class Post extends Data
    {
        /**
         * @param string $key
         * @param mixed $value
         */
        public function __set(string $key, $value)
        {
            parent::__set($key, $value);
    
            $_POST = $this->getDataAsArray();
        }
    
        /**
         * @param string $key
         */
        public function __unset(string $key)
        {
            parent::__unset($key);
    
            $_POST = $this->getDataAsArray();
        }
    }

    Класс-singelton Request доступен внутри контроллеров. Он создается в Application и передаетсяв конкретный контроллер. Соответственно, в контроллере я могу получить, например, POST так:
    $this->getRequest()->getPost('region')

    Тут особого профита как такового нет, но это - ООП-шно. Все классы объектов имеют интерфейсы, ничего из неоткуда не берется, как в случае с суперглобалами.

    А дальше больше - можем наложить логику. Например, санитарную обработку:
    echo $this->getRequest()->getPost('id', 'int'); // приведение к числу


    это был пост-запрос?
    echo (int) Request::isPost();

    изменился ли документ?
    if (!Request::IfModifiedSince($resource->getModificationTime())) {
        return $this->getResponse()->setHttpStatusCode(304);
    }

    т.е. любые обертки над суперглобалами неизбежно приводят к более приятному коду и повышают уровень возможностей.
    Ответ написан
    1 комментарий
  • Фриланс-площадка на Wordpress, возможно?

    opium
    @opium
    Просто люблю качественно работать
    На вп можно все
    Ответ написан
    2 комментария
  • Почему возвращается пустой массив?

    JhaoDa
    @JhaoDa
    LaravelRUS Team
    Надо РНР изучать потому что. Передача переменной по ссылке, вот это вот всё...
    Ответ написан
    2 комментария
  • Какой срок жизни SSD Macbook Air 2018?

    AlexMarken
    @AlexMarken
    Скажу сразу - о сроках жизни даже не беспокойся)

    Одним из главных факторов срока жизни SSD является количество перезаписей на ячейки диска. Чем объёмнее накопитель и больше допустимых циклов перезаписи, тем дольше он прослужит. Тип SSD с TLC имеет 500-1000 (возможно, и более) циклов перезаписи ячейки, и соответственно есть такой параметр, как TBW (Total Byte Write), - общее число байт которое можно записать на диск, после чего ячейки памяти израсходуют свой ресурс.

    Все мои SSD (Samsung, Plextor) жили не более 4-5 лет, получается Macbook Air проживет также?

    SSD в MacBook'ах стоят хорошего качества и с огромным количеством циклов перезаписи, да стоят они дорого. Если сравнивать твои SSD с теми, что использует Apple, цифры будут сильно отличаться в пользу Apple - и в цене, циклах перезаписи, и тп. На такие диски, как в iMac/MacBook, производители обещают срок службы до 10 лет.

    А теперь посчитаем. Допустим, SSD у MacBook Air 2018 имеет объём 128Гб и 800 циклов перезаписи на одну ячейку памяти, а железо меняют раз в 4 года в среднем. Срок службы производитель заявляет до 10 лет.

    1. "Чтобы угробить диск за 4 года, нужно...":
    а) TBW = 128Гб * 800 циклов / 1024 = 100 ТБ информации можно записать на диск, чтобы ячейки памяти отказали.
    б) 100ТБ / (4 * 365 дней) * 1024 = 70 ГБ нужно перезаписывать в день, чтобы диск за 4 года пришёл в негодность.
    в) DWPD = 100ТБ / (128Гб * 4 * 365 дней) * 1024 = 0.54 - количество перезаписей всего объема накопителя в день (из 800 допустимых).

    2. Время жизни с учётом погрешностей:
    Средний пользователь записывает-удаляет 20Гб информации ежедневно (с учётом нагрузки софта на диск).
    100 ТБ * 1024 / (20Гб * 365 дней) = 14 лет службы диска, берём в расчёт различные внешние факторы, влияющие на жизнь SSD = получаем 8-11 лет безотказной работы SSD у MacBook Air 18г.

    3. "Если объём увеличен в двое":
    Точно такой же диск, но с объёмом памяти 256Гб будет иметь показатели, увеличенные в 2 раза.
    Например, TBW = 200Тб или 140 ГБ/день перезаписи за 4 года. Но DWPD останется прежним и срок службы тоже до 10 лет.

    Вывод:
    а) MacBook Air 2018 c 128Гб будет иметь жизнь диска 8-11 лет при условии эксплуатации среднего пользователя;
    б) Если ты покупал недорогие SSD с 128-256Гб памяти с меньшим циклом перезаписи, срок службы для них 4-6 лет - как и получилось в твоём случае;
    в) У более объёмных носителей показатель TBW может достигать и 900Тб, и даже выше.
    Ответ написан
    30 комментариев
  • Какова востребованность iOS специалиста с возрастом?

    DevMan
    @DevMan
    котируются скилы и мозги. эти качества, как правило, с возрастом только растут.
    если только ты не распоследний слоупок.
    и это касается любой сферы в айти, не только яось-дева.

    мне больше сорокета. и обездоленным я себя совсем не ощущаю. наоборот - приходится постоянно отбиваться от оферов.
    Ответ написан
    Комментировать
  • Macbook 13 retina?

    AlexMarken
    @AlexMarken
    Привет! Текста много, но всё по делу :)

    Приведу ситуацию. У моего коллеги по работе ноут Pro 13'' 2013 (8 ОЗУ, 512 SSD) - покупал новым, работает за ним 4 года. У меня Pro 15'' 2018 (16 ОЗУ, 256 SSD).

    Мы оба работаем в сфере разработки приложений под Android (иногда под iOS), Back-end и Front-end.
    Ежедневный стек программ у нас примерно такой: Android Studio c 2-3 проектами, Genymotion (эмулятор Android), MAMP, phpStorm, Safari с 10+ вкладок.

    Ноут у коллеги чувствует себя комфортно при работе с этим стеком. Да, быстродействие задач куда ниже относительно моего устройства. Но работать комфортно можно. Если к этому стеку программ он добавляет Photoshop или xCode с симулятором iOS, начинаются дикие просадки в производительности.

    А ты только изучаешь программирование. Пока тебе такой машинки хватит с головой :)

    На сколько Мак актуален для программирования

    В добавок к выше сказанному. Если говорить в принципе, устройства и macOS вполне адекватные относительно Windows и устройств на базе этой ОС. Тебя ничего не отвлекает от работы и повседневного использования, не беспокоишься за настройку/оптимизацию/переустановку операционки и вирусов. Всё работает, как часы. Стек программ уже описал. Ноут вообще не выключаю, только в сон. Стабильно раз в неделю по понедельникам отправляю на перезагрузку.

    Продолжая ответ, задену графику и различные задачи.
    Дизайнеры у нас в основном сидят на Microsoft Surface Book (Windows), редко под iMac и MacBook Pro. Разработчики игр под Unity и RealEngine только на ПК с топовыми видеокартами. А те, кто работает с Back-end, Front-end, Android или iOS, пользуются только iMac или Macbook Pro (в основном 15'' 2015 и 13/15'' 2018).
    Ответ написан
    Комментировать
  • Symfony 4 - Best Practices for Reusable Bundles в чём смысл, и как всё таки создать bundle?

    @Flying
    Очевидно вы имеете в виду вот эту статью в документации Symfony.

    Если прочитать текст более внимательно - то там не сказано что bundles теперь запрещены или не приветствуются. Речь идёт о том что bundles стоит использовать в том случае если вы хотите оформить часть своего кода в отдельный package который можно использовать и в других проектах. Основное же приложение теперь не стоит оформлять в виде bundle, а можно писать напрямую. Предлагается не складывать в /src кучу разных bundles, а иметь один общий код приложения, зависимый только от внешних packages (пусть даже написанных вами) которые устанавливаются через Composer.

    Т.е. к примеру структура кода подобная Sylius теперь не считается хорошей практикой.

    Думаю что одна из причин такого изменения - переход на Symfony Flex и автоматизированную поддержку регистрации / конфигурации bundles через recipes.
    Ответ написан
    Комментировать
  • Каковы реалии веб-разработки?

    shmatuan
    @shmatuan
    8 year of Web, 5 years of Vue
    1. Верстальщиками да (благодаря войтивайти школам), но всё равно работы хватает. С фронтендом всё намного лучше (как минимум начиная с мидлов работы много и за хорошие деньги). В любом случае - чем больше опыта и скилов тем проще найти работу.

    2. Да, по большей части это создание страничек, форм, запросов и обменом данных внутри приложения, что через время становится привычным и поэтому скучным занятием.
    О том что со врменем становится скучно - можно сказать о многих профессиях.

    3. Без этого никуда, но с месяцом - слишком утрировано. За год может всё поменяться, но сама суть из html/css/js останется ещё долго.
    В любом случае it - это обучение чему-то каждый день.

    4. Много работы, много денег, возможность уехать в другие страны, работа из дома, работа по 4-6 часов в день.
    Ответ написан
    Комментировать
  • Как сохранить base64 картинку на сервер Symfony 4?

    @galliard
    У фреймворка ничего для этой задачи нет, но есть в стандартной библиотеке php
    php.net/manual/ru/function.base64-decode.php
    далее можешь сохранить его куда захочешь обычными функциями для работы с файлами
    Ответ написан
    Комментировать
  • Почему не работает перенаправление generateUrl?

    kylt_lichnosti
    @kylt_lichnosti
    https://symfony.com/doc/current/routing.html#gener...
    Параметром в generateUrl надо передавать имя роута.
    Ответ написан
    Комментировать
  • Кто основатель всея IT?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    Самый первый кто именно начал выдвигать теории работы вычислительных устройств Чарльз Бэбидж
    который пытался построить первую вычислительную машину еще в 1822 (он по миру ездил с лекциями, о том как работает эта машина, но в мире на тот момент не было людей которые бы могли вообще понять о чем речь, представляете эпоха императора Наполеона, и какой-то чудак рассказывает о том что придумал "метод аппроксимации функций многочленами и что мол для того чтоб автоматизировать вычисления этого процесса типа можно построить какую-то там вычислительную машину"), только через 100 лет на основе его работ начали дальше развивать теорию ну и Тьюринг собрал первую электронную вычислительную машину (У Бебиджа все же не неполучилось собрать рабочий прототип, тогда черезвычайно трудно было безошибочно создать такое сложное устройство, в итоге сроки и стоимость разработки ушли за все разумные пределы того времени).
    Ответ написан
    6 комментариев
  • Переход с Angular на React. Тренд или нет?

    vicodin
    @vicodin
    Имею некоторый опыт
    Года 2-3 назад ангуляр из топ фреймворка скатился в гавнину, и никто на нём новые проекты делать не будет, те, у кого тысячу раз переписанный легаси пытаются слезть на реакт или вью.

    Если смотреть на общий рынок(который в целом на год запаздывает за трендами разработки), то в 2016 году количество вакансий ангуляр/реакт сравнялись, хотя годом было 95/5. Сейчас же скорее наоборот 5/95, и это хорошо. Есть две отличные разные альтернативы, которые также можно использовать с тайпскриптом.

    Свежая сатира на тему - https://hackernoon.com/why-angular-made-me-quit-we...
    Ответ написан
    6 комментариев
  • Какие есть аналоги linkedin?

    sim3x
    @sim3x
    https://moikrug.ru/

    Линкед закрыли для не_ИТ
    Если "ИТ" не смогли найти обход === они не_ИТ
    Ответ написан
    1 комментарий
  • Какой веб-сервер использовать на Маке?

    inoise
    @inoise
    Solution Architect, AWS Certified, Serverless
    Я начинал с MAMP, но мне быстро его перестать хватать и все поставил сам через brew
    Ответ написан
    2 комментария
  • Как в Ubuntu 18.04.1 LTS после ctrl-s убрать запрос пароля?

    slo_nik
    @slo_nik
    Доброе утро.
    Это нормальное поведение.
    Вы, скорей всего, пытаетесь редактировать файлы вне домашней директории.
    Вам надо или настраивать права доступа или, это я думаю будет лучше, перенести редактируемые файлы в домашнюю директорию.
    Ответ написан
    Комментировать