• Где лучше всего учить английский для IT и не только?

    mr_qpdb
    @mr_qpdb
    ⏱ - is not eternal
    В США.
    Ответ написан
    Комментировать
  • Какие правила включить в регламенты для веб разработчиков?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Регламент будет работать когда есть кто-то кто за ним следит, отвечает за результат, и главное - у него есть право сказать "будем делать вот так". без такого человека будет зоопарк хоть вы тонну бумаг испишите. (если команда не дотягивает уровнем до самоорганизации)
    Если у вас такое право есть и вы этот отвественный - начните с общения с людьми, обсуждайте проблемы которые вы видите и как-то приходите к решению. Как договорились до чего-то - фиксируйте.
    Постепенно составится ваш "регламент" - в котором будет именно то что важно для вас.
    Если вы обсудили проблему, а решения не нашли и не договорились как делать - то регламент не поможет, если люди на вас забили, с чего бы им вашу писанину выполнять?

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

    DevMan
    @DevMan
    То в в одном проекте на Laravel используется встроенный query builder, то Eloquent
    одно другому никак не мешает. тут надо исходить из задач.

    Максимально используем встроенный в Фреймворк функционал, так же построители SQL запросов. Типа Eloquent или встроенный query builder.
    это верно.

    Использовать встроенный шаблонизатор.
    это не понятно.
    Нельзя использовать в проектах свои самописные модули.
    это тоже не понятно.

    На самом деле весь регламент сводится к двум вещам:
    1. общепринятый код-стайл и требования к документации.
    2. все что угодно, что команда считает для себя приемлемым.
    Ответ написан
    5 комментариев
  • Сделать первые буквы массива разделителями в Blade Laravel?

    @anlamas
    https://laravel.com/docs/5.6/collections#method-groupby
    $allMark = $allMark->groupBy(function ($item, $key) {
        return strtoupper(mb_substr($item->name, 0, 1));
    });
    
    @foreach($allMark as $key => $marks)
        {{ $key }}
        @for@foreach($marks as $mark)
            {{  $mark->name }}
        @endforeach
    @endforeach
    Ответ написан
    5 комментариев
  • Сделать первые буквы массива разделителями в Blade Laravel?

    @Kostik_1993
    Web Developer
    Вариации под ваши нужды думаю допишите самостоятельно
    @php
        // вариант с массивами
        $abcMarks = [];
        $oldFirst = null;
        foreach ($makes as $make) {
            $i = $oldFirst == mb_substr($make->name, 0, 1) ? $oldFirst : mb_substr($make->name, 0, 1);
            $abcMarks[$i][] = $make->name;
        }
    
        // или вариант с коллекциями
        $abcMarks = $makes->groupBy(function ($item, $key) {
            return strtoupper(mb_substr($item->name, 0, 1));
        });
    @endphp
    
    <div class="marks">
        @foreach($abcMarks as $key => $marks)
        <div class="marks__group">
            <div class="marks__title"><strong>{{ $key }}</strong></div>
            <div class="marks__list">
                @foreach($marks as $mark)
                    <div class="marks__item">
                        {{ $mark }}
                    </div>
                @endforeach
            </div>
        </div>
        @endforeach
    </div>
    Ответ написан
    Комментировать
  • Сделать первые буквы массива разделителями в Blade Laravel?

    solotony
    @solotony
    покоряю пик Балмера
    стандартным blade не получится. придется делать php вставки. хотя вариант, который тебе предложилив комментах с двухуровневым массивов красив
    Ответ написан
    Комментировать
  • Как сделать регистрацию и авторизацию пользователей через мобильный номер?

    @Tirael78
    необходимо:
    1 подключиться к услуге рассылки СМС, наилучшее решение через существующий шлюз, например по России, мы после большого перебора остановились на smsc.ru (это не реклама), у них хороший api, цены в рынке.
    2 Необходимо реализовать взаимодействие с api смс шлюза на своем сервере (в зависимости от выбора api).
    3 На стороне сервера необходимо генерировать код подтверждения, к примеру набор из 4 или 6 цифр или букв, или иной комбинации. Сохранить связку пользователь - код подтверждения, чтобы иметь возможность сравнения в будущем.
    4 используя api шлюза отправляете код подтверждения на номер пользователя.
    5 абонент вводит код подтверждения и отправляет вам на сервер, любым реализованным вами механизмом.
    6 получив под подтверждения, проверяете, что данному пользователю был отправлен именно этот код. Если данные совпали - авторизуете пользователя.

    Некоторые советы по реализации:
    1 установите срок жизни кода, это нужно для безопасности
    2 введите ограничение на количество попыток ввода, опять же для безопасности
    3 при взаимодействии с api шлюза, необходимо анализировать ответы на ваши запросы, скажем человек ввел не существующий номер телефона, ошибся, вам необходимо корректно обработать данную ситуацию, подобных моментом может быть достаточно много.
    4 некоторые шлюзы (как например указанный мной выше) примут российский номер в формате 89 и так далее, но надо понимать что не факт что все шлюзы так поступят, правильный код России 7, и следовательно номер мобильного должен начинаться на 79, в других странах есть свои особенности, и это надо учитывать.
    5 установите срок жизни СМС сообщения (если шлюз позволяет это в своем api) не более срока жизни кода на вашем сервере, к примеру человек вне зоны действия сети, и СМС придет к нему через 1 час, когда уже не будет актуальна, в итоге вы заплатите за бессмысленное СМС сообщение, если у вас много абонентов, в итоге может набежать большая сумма. А так, сообщение просто не будет отправлено и вы сэкономите деньги.

    На самом деле там еше много нюансов, в зависимости от потребности вашего сервиса, но в общих чертах примерно так.
    Ответ написан
    Комментировать
  • В чем разница между gulp и gulp-cli?

    Zoxon
    @Zoxon
    Веб-разработчик
    Раньше была одна версия gulp которую нужно было устанавливать глобально и локально.

    Локальная версия используется в gulpfile.js глобальная для запуска в консоле.
    В принципе это работает и сейчас.

    Но начиная с 4 версии gulp (которая еще не вышла но ее все используют) нужно устанавливать gulp-cli.

    Документация рекомендует устанавливать gulp-cli.

    А так же перед этим удалить глобальную версию gulp
    npm rm --global gulp

    Разделение же произошло из-за проблем совместимости глобальной и локальной версии. Так что следуйте документации.
    Ответ написан
    Комментировать
  • Возможно ли сделать разные категории в одному сегменте URI, роутинг в Codeigniter?

    evnuh
    @evnuh
    Поиск Гугл помог мне, впусти и ты его в свой дом
    А в чём проблема-то? Представьте, что вы - компьютер, как бы вы сами понимали, что avtosalon-na-porspekte-12 - это фирма, а toyota - марка машины?
    Думаю, никак, поэтому их нужно как-то разделять, например фирмы начинать с /russia/moskva/avtosalon-
    а машины с
    /russia/moskva/car-
    Тогда компьютер сможет опознать. Либо захардкодить все марки машин прямо в регэксп.
    И это нехорошо мешать английский а литиницу в юрл.
    Ответ написан
    1 комментарий
  • Как правильно передавать параметры id(mysql) не в url в CI?

    dmitriylanets
    @dmitriylanets
    веб-разработчик
    я использую другой подход, принцип генерации ЧПУ, есть таблица которая хранит
    ЧПУ адрес и чистые данные,
    например таблица: url_chpu_data
    url = /russia/moskva/avtosalon-na-prospekte-123
    data =
    [
    'country_id' => 1,
    'city_id' => 15,
    'company'=>1
    ];
    естественно в сериализованном виде хранится в базе, по url индекс
    при заходе на НЕ ЧПУ адрес, например /?country_id=1&city_id=15&company=1
    функционал определяет что нужно сгенерировать ЧПУ, получает из базы город, страну, компанию, переводит в транслит, формирует /russia/moskva/avtosalon-na-prospekte-123
    и сохраняет в базе, запихнув значения GET запроса country_id,city_id,company в сериализованный массив.

    при заходе на /russia/moskva/avtosalon-na-prospekte-123, находит запись в базе и заполняет GET массив полученными данными, заставляя работать функционал так же если бы был старый вариант ссылки
    Ответ написан
    7 комментариев
  • Как не распыляясь дотащить до front-end мидл девелопера?

    customtema
    @customtema
    arint.ru
    1. Перестать использовать сленг
    2. Честно изучить основы технологий, которые вы используете
    3. Больше практики


    Так из "миддлов" сразу в "сеньоры" перейдете. У меня есть знакомые, у которых это именно так и получилось. Кстати, это быстро, вопрос идет о неделях.
    Ответ написан
    Комментировать
  • На windows 10 pro 80 порт закрыт намертво протокол TCP 4?

    saboteur_kiev
    @saboteur_kiev Куратор тега Windows
    software engineer
    habrahabr.ru/post/145189

    Видимо встроенная http служба запускается вместе с ядром системы. Попробуйте следующее:

    1) Идем в реестр. Выполнить->regedit
    2) В ветку HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP
    И отличие в этих способах:
    3) Создаем параметр типа Dword c именем «NoRun» и присваиваем ему значение «1» без кавычек.
    или
    3) Ищем параметр «Start» и меняем значение на «0» без кавычек естественно.
    4) Перезагружаем компьютер.

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

    KorsaR-ZN
    @KorsaR-ZN
    Они нужны для избавления от дублирования кода, ну или например для множественного наследования.

    Грубый пример:
    У вас есть много классов, которые что-то записывают в лог, из класса в класс, это один и тот же участок кода, к примеру Logger::write(str), вот этот участок кода можно вынести в трейт LoggerTrait c методом logWrite, и потом во всех классах использовать $this->logWrite(str).
    Потом удобно будет эту функцию переопределить в каком-то конкретном файле, если скажем там нужна какая-то специфичная запись в лог.

    При таком подходе вы всегда класс логгера можете заменить, просто отредактировав всего один файл трейта, а не 100500 классов.

    Еще пример:
    В трейт можно вынести функцию isAjaxPost, для проверки, что запрос в контроллер пришел ajax post, и подключать в нужные контроллеры.

    Да вообщем море примеров привести можно, где это удобно применять, для избавления от дублирование в коде, от однотипных операций и т.д.
    Ответ написан
    9 комментариев