Задать вопрос
  • Стоит ли начинать изучение программирования в 13 - 14 лет?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Те, кому действительно стоит изучать программирование, этим вопросом не задаются, они просто начинают изучать, как только им становится интересно.
    Ответ написан
    3 комментария
  • Нужен ли ИП для игрового проекта?

    Тебя в принципе оштрафовать нужно, ты занимаешься пиратством, ты хочешь заниматься этим законно?
    Ответ написан
    4 комментария
  • Что можете посоветовать по изучению ларавел кроме документации?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега Laravel
    Ответ написан
    Комментировать
  • Что можете посоветовать по изучению ларавел кроме документации?

    документацию по PHP
    Ответ написан
    Комментировать
  • Где можно посмотреть практики написания хороших тестов для laravel?

    agoalofalife
    @agoalofalife
    Team Lead
    В общем можно посмотреть у Jeffrey Way на https://laracasts.com
    Еще мне нравилась его книга правда наверное она не много устарела.

    Начал копаться и вот здесь не понимаю каким образом в шаблон эндпоинта подставляется конкретный id. https://github.com/austintoddj/canvas/blob/master/...к

    Покопался и открыл для себя тоже кое что новое..
    В ссылке есть ниже метод и у него сверху мета тэг @dataProvider
    Что это такое почитать об этом можно здесь

    Что касательно true way or laravel way - это все относительно.
    Например в этом проекте от тестирует отношения в моделях, это скажем прям такое..
    Потом он тестирует консольные команды..интересно зачем?
    Конечно можно все протестировать, но какой в этом собственно смысл?
    Организация папок - это тоже дело щепетильное, как и название методов и переменных.

    Мне больше нравиться подход DDD. Как правило в проекте чаще всего меняются бизнес требования а не инфраструктура.
    Что может произойти вероятнее - поменять базу данных или поменять алгоритм начисление денежных средств?
    Так вот тестирование доменной области намного оправдание чем тестирование отношений модели в Eloquent.
    Ладно, что - то я разошелся, короче говоря, пишите тесты -> набирайтесь опыта -> рефакторинг -> пишите тесты.
    Ответ написан
    2 комментария
  • Каким способом можно реализовать настройки пользователя, зависящие от его роли?

    @jazzus
    Я беру из конфига/ дефолт атрибутов модели и тд. Но у меня программистские проекты) Т.е. в админке делать нечего. Если в проекте важно все делать из админки выбор очевиден. Т.е. ответ - ориентироваться на потребности проекта
    Ответ написан
    Комментировать
  • Как передать пропсы дочернего компонента через $attrs?

    В компоненте определи свойство inheritAttrs: false что бы v-bind по умолчанию не биндил лишнии свойства в html
    Ответ написан
    Комментировать
  • Как изменять вложенные комментарии (объекты) в vuex store?

    0xD34F
    @0xD34F
    Передавайте в мутацию вместо id сам объект комментария - тогда ничего искать будет не надо.

    Или сделайте рекурсивную функцию поиска, что-то вроде

    const find = (arr, id) =>
      (Array.isArray(arr) ? arr : []).reduce((found, n) =>
        found || (n.id === id ? n : find(n.replies, id))
      , null);
    Ответ написан
    3 комментария
  • Есть ли сообщество начинающих программистов-единомышленников?

    tundramani
    @tundramani
    русскоязычные люди (бывшие советские граждане) не способны создавать сообщества
    это наша национальная черта - мы не умеем совместно жить и работать
    когда-то давно в ссср могли но сдулись и деградировали
    и до ссср в 1917м государство тоже самоубилось как в 1991м

    например здесь на тостере хорошо помогают
    но тут нет нормального полноценного сообщества
    это сообщество индивидуалистов атомизированных

    хорошее сообщество это община, как семья, как родня
    где старшие заботятся о младших, где стимулируют талантливых

    русская общинность исчезла лет 50 назад
    последний рывок был - индустриализация, война и послевоенное строительство
    и всё, люди из общинных патриархальных деревень были переселены в города, и люди разучились жить

    и всё так потому что в современном обществе главное это деньги
    не творчество наука и изобретение и тд
    всё измеряется деньгами
    деньги это высшая ценность
    это культ бабла и потребления в котором человек человеку волк
    люди стали похожи на паразитов пожирающих биосферу

    с другой стороны ты ничем не ограничен - создавай любую социальную платформу и программируй сообщество
    просто большинство людей тупо не понимают как это делать
    некоторые даже скажут - фу! как можно программировать людей!
    да, люди программируются через обучение и воспитание
    и сообщество программируется через идеологию и закон

    это называется социальное программирование

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

    0xD34F
    @0xD34F Куратор тега Яндекс.Карты
    Не нужно дёргать карту напрямую. Сделайте массив с данными маркеров, заполняйте его по клику, и на его основе создавайте экземпляры компонента маркера:

    import { yandexMap, ymapMarker, loadYmap } from 'vue-yandex-maps';

    components: {
      yandexMap,
      ymapMarker,
    },
    data: () => ({
      coords: null,
      markers: [],
      settings: { /* ... */ },
    }),
    methods: {
      onClick(e) {
        this.markers.push({
          id: 1 + Math.max(0, ...this.markers.map(n => n.id)),
          coords: e.get('coords'),
        });
      },
    },
    async mounted() {
      await loadYmap({ ...this.settings, debug: true });
    
      ymaps.geolocation.get().then(res => {
        this.coords = res.geoObjects.position;
      });
    },

    <yandex-map
      v-if="coords"
      :coords="coords"
      @click="onClick"
    >
      <ymap-marker
        v-for="n in markers"
        :key="n.id"
        :marker-id="n.id"
        :coords="n.coords"
      ></ymap-marker>
    </yandex-map>

    https://jsfiddle.net/f65hraxk/
    Ответ написан
    3 комментария
  • Устарел ли getElementsBy* и чем лучше querrySelector?

    bingo347
    @bingo347 Куратор тега JavaScript
    Crazy on performance...
    Вот народ ушел в спор о производительности, но никто даже не попытался разобраться, а что под капотом... Производительность ведь искусственными бенчмарками меряют, ага...
    Что ж, времена сейчас такие
    многие на работу кодеров берут, которые даже интереса не имеют в глубь копать. Инженеров брать... - это устаревший подход, как выразился автор "популярного сайта", который прочел автор вопроса. Инженеры они дорогие, и найти их сложно, лучше кодер, пусть и не желающий на работе мозг включать, не говоря уж о желании в устройстве инструментов разбираться.

    Говорить о том, что некие фичи устарели - крайне глупо, если знать, что они ведут себя иначе, чем более модные альтернативы. Предлагаю немного разобраться и начать с того что на поверхности:
    - getElementById и querySelector возвращают конкретную ноду в единственном экземпляре
    - querySelectorAll и getElementsByName возвращает статичную коллекцию NodeList
    - getElementsByClassName, getElementsByTagName и getElementsByTagNameNS возвращают динамическую коллекцию HTMLCollection
    Как видим результат у разного апи различен, а значит и говорить, что некоторые из них устарели - глупо.
    Правда тут есть забавный момент
    в спеке HTMLCollection отмечен как "исторический артефакт", который не стоит использовать при проектировании нового апи. Но заметка эта не для веб-разработчиков, а для тех кто проектирует новое DOM апи.

    С устареванием вроде разобрались, но в вопросе еще есть часть "чем лучше". И тут есть теория, что getElementsBy* быстрее querySelector*. Чисто теоретически звучит логично, querySelector* должен делать полный поиск по дереву со сложностью O(n), а getElementsBy* могут использовать индексы на базе HashMap и получать данные со сложностью O(1), тут и особенности HTMLCollection будут кстати, так как можно не копировать коллекцию, а отдавать одну и ту же (и браузеры действительно так делают). Но без пруфов теория так и останется теорией.
    И бенчмарки - так себе пруф
    Хотя направлять инвесторов в нужную сторону - самое то. Проблема бенчмарков, что можно написать их так, что любая из сравниваемых сторон заметно обгонит другую. Дело техники. Например BubbleSort с O(n2) при определенных условиях в чистую уделывает MergeSort и QuickSort с их O(n×log2n), а именно при n=20 или меньше, 400 простых memswap в наглую рвут 87 рекурсивных операций с memcpy внутри
    Гораздо лучше тут выглядят исходники. И я выбрал исходники chromium, как самого распространенного:
    - getElementsBy* методы все как один обращаются к некой шаблонной функции EnsureCachedCollection, которая в свою очередь обращается к некоему NodeLists кэшу, устроенному внутри действительно как HashMap или что-то наподобие. Никакого поиска тут нет, просто берутся готовые значения, сложность у всего этого действительно константная O(1).
    - querySelector* используют абстракцию SelectorQuery, которая и в самом деле делает поиск по DOM. Но данный поиск неплохо оптимизирован и обвешан кэшами. Притом CSSOM использует абсолютно тот же алгоритм поиска DOM нод для каждого селектора в css.
    Для примера
    в подключенных на странице этого вопроса стилях более 1600 правил (некоторые из которых потенциально могут содержать несколько селекторов), полная обработка стилей из этого файла заняла на моей машине (Ryzen 3600 в стоке) чуть больше 9 мс. Если все это немного округлить, то понадобится 15000 querySelectorAll подряд, притом с разными селекторами, чтоб был промах кэша, дабы я ощутил заметную глазу задержку в ~100мс


    На этом спор думаю можно закрыть. querySelector* методы действительно могут быть медленнее, но чтоб убить ими производительность, нужно очень постараться. На фоне того, что пишут кривые ручки среднестатистического дешевого js-кодера это будет незначительной потерей измеряемой в наносекундах. Используйте то что удобнее в каждой конкретной ситуации.
    Ответ написан
    1 комментарий
  • Какое состояние у современного фриланса на конец 2020?

    opium
    @opium
    Просто люблю качественно работать
    Все так же
    Говнокодеры в жопе, профи в шоколаде
    Ответ написан
    4 комментария
  • Почему амперсант в SCSS имеет меньшую спецификацию?

    CIDBerlin
    @CIDBerlin
    Junior front-end developer
    В SCSS имеется возможность прописывать media прямо внутри класса. Попробуй, это намного удобнее
    Ответ написан
    Комментировать
  • Почему ничего не происходит при использовании кастомного Request класса в store-методе контроллера?

    JhaoDa
    @JhaoDa
    LaravelRUS Team
    Если бы ты читал документацию, то узнал бы, что валидация в форм реквесте применяется автоматически при вызове метода контроллера, т.е. до твоего странного кода дело даже не доходит. Но ты не читаешь документацию и рожаешь костыли с занозами.
    Ответ написан
    2 комментария
  • Как между символами достать число?

    $var = "My long text [HH123]";
    $result = preg_replace('/[^0-9]/', '', $var);
    echo $result;


    UPD
    $var = "My long text [HH123]";
    preg_match('/\[HH(.*?)\]/', $var, $result);
    print_r($result[1]);
    Ответ написан
    Комментировать
  • Как настроить роуты как на Wordpress?

    @kandrash
    Кратко о себе
    Тут скорее всего дополнительными проверками в контроллере проще всего обойтись.
    // Роут для всех
    Route::get('/{slug}', 'ContentControler@content');
    
    // Контроллер
    public function content(string $slug)
    {
        $category = Category::whereSlug($slug)->first();
    
        if ($category) {
            // Возвратили категорию
        }
    
        // Сюда попали если категории нет
         $post = Post::whereSlug($slug)->firstOrFail();
    
        // Возвратили пост
    }
    Ответ написан
    Комментировать
  • Как правильно соединить два массива?

    array_merge_recursive()

    $a = [
    	'address' => [
    		'city' => 'Moscow'
    	]
    ];
     
    $b = [
    	'address' => [
    		'country' => 'Russia'
    	]
    ];
     
    $c = array_merge_recursive($a, $b);
    var_dump($c);
    Ответ написан
    1 комментарий
  • Есть ли курс по анимации для начинающего?

    Анимация в JavaScript это набор техник по изменению CSS элементов, не более того. Основное это animation, transition, и transform.

    Поэтому не ищите гайды по анимации, а найдите документации по этим свойствам CSS, и когда вы изучите их, станет понятно как сделаю любую нужную вам анимацию.

    Это минимум.

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

    Для этого нужно разбираться со вкладкой Performance в Chrome DevTools. Профайлите свои анимации, причем, делайте их похардовее, чтобы браузер офигел и подвисал, и смотрите почему он лагает. Чтобы понять причины тормозов придется копать в дерево DOM, как рисуются элементы, как они аффектятся при изменении DOM, и прочее. Так и поймете как делаются анимации, что хорошо и что плохо для браузера.

    Всё описанное выше есть в документациях, можно найти при необходимости, например:

    https://developers.google.com/web/fundamentals/per... (читать весь раздел)
    https://developer.mozilla.org/en-US/docs/Web/CSS/a...

    Вообще информации нужно море, ссылок будет намного больше.

    Собственно по вопросу – я не искал, но не уверен что найдется нормальный курс по анимациям, разве что поверхностные. Если хотите реально научиться работать с анимациями, то практика, вероятно, лучший вариант.
    Ответ написан
    Комментировать