Задать вопрос
  • За счет чего Тостер может составить конкуренцию русскоязычному Stackoverflow?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    Тостер будет жить. Stackoverflow ресурс хороший, но очень занудный.
    Я вырос на ресурсе xpoint, не уверен, что кто-либо его здесь знает.
    Но мне в нем нравилось одно - если вопрос был из серии "как найти ключ по значению в массиве" обычно человека отправляли читать мануал ссылкой на соответствующую функцию или на алгоритм, если задача более общая.
    На мой взгляд это правильно, поскольку такой подход заставляет думать головой, а не копировать решение из ответов. Это с одной стороны увеличивает время, но с другой воспитывает профессионализм. В большинстве случаев в следующий раз вероятность чтения мануала вырастает в разы.
    На мой взгляд, вырастает целое поколение людей, которые неспособны жить без разного рода stackoverlow'ов. Эти штуки расслабляют.
    Плюс, со временем, наступает некоторый период, когда вопросы в какой-то области просто перестаешь задавать. Странно, но это некоторая фаза взросления, чтоли. Просто уже знаешь, что так будет правильно и никто более дельного не предложит. Вот и все.
    Ответ написан
  • Обучение в хорошем вузе с "проблемами" или обучение в "так-себе" вузе, но "без проблем"?

    platotel
    @platotel
    IT Product Manager
    Есть альтернативный вариант: поступить в топовый ВУЗ на ту специальность, куда хватает баллов, а после первого (максимум - второго) курса перевестись на ту специальность, на которую изначально хотелось. Сама проходила такой путь. Надо понимать, что при переходе на другую специальность нужно будет сдать академическую разницу (сдать те предметы, которые есть в учебном плане целевой специальности, но которых не было у вас) в установленный срок, да и вообще организовывать переход придётся самому (узнавать в целевом деканате, готовы ли вас взять, как в плане бумаг и процесса будет выглядеть перевод, где посмотреть учебные планы, чтоб понять академ. разницу и т. п.). В деканатах да и вообще практически нигде возможность переходов внутри ВУЗа и между ВУЗами особо не афишируется. Никто особо не рассказывает, что так вообще можно, как и не описывается, что для этого требуется. На родной кафедре могут оказывать психологическое и административное давление, не подписывая бумаги о переходе (кафедры не хотят терять финансирование, привязанное к количеству студентов), но если это преодолеть, сдать в установленные сроки разницу в предметах, то можно оказаться на изначально желаемой специальности вместе с теми, кто попал по олимпиадам или по очень высоким баллам ЕГЭ. Если переходить, то чем раньше, тем лучше. Если правильно помню, в течение 1 курса переводы запрещены, а вот сразу после 1 курса - идеальное время. Лучше узнать процесс до начала сессии, чтобы до летнего отпуска преподавателей понять, к кому, когда и зачем бежать, и успеть всё подписать.

    По опыту работы замечала, что более квалифицированные специалисты преимущественно обучались в топовых ВУЗах, да и во время обучения окружение очень важно (будет тянуть вверх, а не вниз), так что я бы посоветовала пытаться попасть именно в ВУЗы первого эшелона. Единственное: надо понимать, что на престижных кафедрах могут быть очень высокие требования к успеваемости, и если пытаться с 2-3 курса работать, можно не суметь сбалансировать учёбу и работу - и попросту вылететь. После отчисления не у всех хватает силы воли, времени и мужества опять пойти учиться (отчисление считается социально неприемлемым вариантом, хотя ничего непоправимого в нём нет).

    Самообучением в любом случае придётся заниматься. В том же ИТМО сидеть с тобой рядом и обучать программированию никто не будет. Дали лекции, дали задания - делаешь, сам разбираешься. Другое дело, что в топовом ВУЗе лекции и учебный план будут ближе к реальности, ближе к практике. Условно: будет не Паскаль, а Java и С#. Но нужно в любом случае пообщаться со студентами старших курсов и/или недавними выпускниками конкретной кафедры (найти в ВК по её названию и годам обучения). Узнать, насколько образование помогло в работе, помогает ли кафедра хоть как-то с трудоустройством, сколько людей идут работать по специальности, насколько легко совмещать учёбу с работой с 3-4 курса. Посмотреть и сравнить учебные планы по конкретным направлениям на конкретных кафедрах. Например, в СПбГУ на программерских специальностях даётся много математики, которая далеко не всем пригодится.

    Лично мне очень пригодились знания, полученные в ВУЗе (процентов на 70-80). Я работаю по специальности, и понимаю, что обучение дало мне хорошую базовую подготовку. А дальше уже самообразование помогло углубиться в то, что мне ближе.

    Насчёт варианта "не поступать" - надо понимать риски. Да, можно устроиться работать программистом, имея должные навыки и не имея диплома, но надо представлять, чем вообще по жизни хотите заниматься и где. Например, во многих западных компаниях для того, чтобы занять верхние управленческие позиции, нужно иметь или определённый уровень образования (бакалавр либо магистр), либо иметь сколько-то лет эквивалентного опыта. Да и в российских компаниях могут быть требования об обязательности высшего образования. Но самое главное - обучение в ВУЗе - это не только и не столько знания. Это прежде всего профессиональные контакты, круг общения. IT-мир довольно тесен, и одногруппники могут быть в вашей жизни больше, чем приятелями. Они могут помогать развиваться, помогать найти работу, рекомендовать вас и т. п. Это очень ценно.
    Ответ написан
    Комментировать
  • С чего тому кто знает математику (уровень - физмат школы, может чуть ниже) начинать изучать программирование?

    sgjurano
    @sgjurano
    Разработчик
    Про устройство компьютеров: "Код. Тайный язык информатики" Петцольда https://www.ozon.ru/context/detail/id/125884/

    Про программирование: "Программирование: введение в профессию" Столярова www.stolyarov.info/books/programming_intro

    Про алгоритмы: "Грокаем алгоритмы" Бхаргавы https://www.ozon.ru/context/detail/id/139296295/

    А дальше сами разберётесь :)
    Ответ написан
    2 комментария
  • Как эффективней отрисовывать много SVG графики?

    Vlad_IT
    @Vlad_IT Куратор тега JavaScript
    Front-end разработчик
    По скорости работы, быстрее будет canvas, но он по скорости разработки будет хуже. У меня никаких тормозов на vue+svg нет, по крайней мере, до 500 объектов на холсте. Для оптимизации могу посоветовать некоторые вещи:
    1) Используйте path вместо нескольких разных других фигур.
    2) Для сетки не создавайте кучу линий или фигур, просто используйте pattern. Вот пример из моего проекта (он на React JSX, но не суть)
    <pattern id={"bg-" + this.props.id} patternUnits="userSpaceOnUse" width="100" height="100">
        <rect width="100" height="100" fill={this.props.canvasColor}></rect>
        <g fill={this.props.canvasGridColor} style={{ fillOpacity: 0.34 }}>
            <rect width="100" height="1" y="20"></rect>
            <rect width="100" height="1" y="40"></rect>
            <rect width="100" height="1" y="60"></rect>
            <rect width="100" height="1" y="80"></rect>
            <rect width="1" height="100" x="20"></rect>
            <rect width="1" height="100" x="40"></rect>
            <rect width="1" height="100" x="60"></rect>
            <rect width="1" height="100" x="80"></rect>
        </g>
        <rect width="100" height="100" fill="none" strokeWidth="2" stroke={this.props.canvasGridColor}></rect>
    </pattern>

    вот так заливаю на холст
    <rect style={{ 'fill': `url(#bg-${this.props.id}) #fff` }} ... />

    3) Задавайте для изменяемых объектов атрибут уникальный атрибут key
    4) Цельные объекты кидайте в группу, и на нее назначайте общие стили и позицию.
    UPD: простой пример на 1000 объектов (можно добавить, поменяв константу COUNT_OBJECTS) с drag&drop
    jsfiddle.net/Vlad_IT/81kegmxf
    UPD2: вот тот же пример, только с сеткой jsfiddle.net/Vlad_IT/qt64rouL/1 если делать сетку не заливкой, а элементами, будут ощутимые тормоза.
    Ответ написан
    1 комментарий
  • Как разобраться в Vue?

    Per_Ardua
    @Per_Ardua
    Frontend developer
    Помимо уже озвученного по изучению js, советую изучить инфраструктуру вокруг js и его сборки. Это тоже поможет в понимании любых фреймворков.
    Инфраструктура вокруг js, это всё, что связано со словами: npm, webpack, шаблонизаторы, препроцессоры, обработка ошибок, git и ещё много чего ещё.
    Так же, советую хотя бы поверхностно изучить архетектурные паттерны, чтобы лучше понимать, почему фреймворки делают то, что делают и зачем нужен vuex там где нужен.
    А после склонить какую-нибудь простейшую репу на вью и попытаться понять, что за магия там происходит. На этом этапе и придется смотреть в доки. Без реального примера, который можно потрогать, понимание приходит намного дольше.
    Ответ написан
    1 комментарий
  • Что вы используете для мобильных пользователей?

    webinar
    @webinar Куратор тега Веб-разработка
    Учим yii: https://youtu.be/-WRMlGHLgRg
    сайт с мобильной версией или PWA

    А сайт с мобильной версией не может быть PWA?

    Как вообще можно ответить на Ваш вопрос не понимаю, что именно Вы делаете? Есть вещи проекты которые сложно реализовать в web и приложение будет удобнее, есть наоборот. Это из серии "Мы тут с Васей что-то придумали и вот думаем, а лобзиком лучше или сейчас популярнее бензопила?". ХЗ. Тут вначале надо понять что придумали.
    Ответ написан
    Комментировать
  • У примитивных значений тоже есть методы?

    bingo347
    @bingo347 Куратор тега JavaScript
    Crazy on performance...
    По поводу объектных оберток MaxKorz уже дал хороший ответ, поэтому отвечу лишь на вторую часть, насчет оператора +=
    Данный оператор является по сути оператором присваивания, а у оператором присваивания левым операндом может быть только переменная, в Вашем же примере слева выражение text.slice(0,5)
    Ответ написан
    Комментировать
  • Какая cms для им из коробки потянет 65к товаров?

    @remzalp
    Программер чего попало на чем попало
    Заранее толком никто не скажет. Потому что товар может быть как название плюс фотка, так и большое монструозное скопище параметров и альтернативных версий. Но 65к товаров еще вполне подъемные для большинства движков.

    Попробуйте собрать тестовую площадку на OpenCart, PrestaShop, Magento, Woo Commerce, ShopScript и смотрите.
    Заодно немного пощупаете коммунити и потроха.

    Из личного опыта плюсы и недостатки:
    1. OpenCart - плагинов много (бывают и бесплатно), готовых тем оформления немного есть, но благодаря его активному развитию некоторые полезные плагины уже не запустятся на сильно новой версии. Платежные системы обычно предлагают готовый модуль для подключения к опенкарту, так что хорошо.
    Довольно прост в своей структуре, но у него до сих пор логика слишком тесно переплетена с шаблонами, поэтому достаточно серьезный редизайн может потребовать бОльших усилий, чем ожидали.
    Нкоторые плагины ставятся через патчинг на лету в памяти файлов ядра, поэтому если больше пары таких плагинов, то лишние тормоза и непредсказуемые странности, но в нынешней версии всё уже не слишком плохо.

    2. PrestaShop в ранних версиях мог урониться от не самой страшной галочки в админке. Зато красивый, модульный и ООП.

    3. Magento красивый, модульный, ООП и Zend. Довольно дорог в поддержке - специалистов сравнительно мало, конкуренции не очень.

    4. Если вы выберете Битрикс (да, я его не советовал). Плюсы - подключение выгрузки товаров в 1С - одна страничка документации и несколько телодвижений.
    Но у вас будет две проблемы - его цена и цена специалистов. Стандартный интернет магазин, идущий в базовой поставке периодически страдал ошибками в шаблонах и логике поведения, любое решение проблемы за пределами техподдержки битрикса (они зайки, но могут не всё) становится дай-дай-дай со всех сторон :) При редизайне планируйте бюджет начиная от 100к рублей, всё что ниже - скорей всего будет альтернативно талантливым школьником, который вчера изучил PHP, а учитывая реально развесистую структуру проекта - будет проблемно в деталях проконтролировать работу специалиста.
    Ответ написан
    1 комментарий
  • Попросили проверить код, на что смотреть нужно?

    На код!)
    сори не удержался!

    Ну я обычно смотрю:
    1. на чистоту функций
    2. на перегруженность функции
    3. обычно тот кто делает ревью, знаете проект, смотреть на дублирование, возможно это уже есть в проекте, но программист этого не увидел и написал свое решение.
    4. на кодестайл, он должен быть единый для всех. название переменных, функций, классов... они должны нести смысл.
    5. принты которые забыли выпилить при дебаге, но обычно для этого есть инструменты.
    6. еще много зависит от проекта, например если у вас 5к в минуту, вы не можете делать update view + 1, это сильно вас будет тормозить. если не нагнет всю систему.

    ну наверное еще многое, всего не вспомнить сразу, но обычно это видно в коде.
    Ответ написан
    1 комментарий
  • Хотите задать вопрос администрации Тостера?

    Sanes
    @Sanes
    Доколе?
    Ответ написан
    Комментировать
  • Как правильно реализовать архитектуру для связанных объектов с сервисом, коллекцией и репозиторием?

    DeFacto
    @DeFacto
    глубоко ушел в абстракции.

    1. Кто и для чего будет использовать методы getTags(), getCountry() ?

    по логике допустим, у тебя интерфейс ArticleContract добавляет функции getTags()
    лучше тогда создать интерфейс TagsContract
    так как потом требования могут изменится, и тэги нужны будут для News

    2. Зачем на каждый чих делать интерфейсы? Для Service я вообще не вижу смысла. Или ты собираешься подменять где-то ArticleService другим ArticelService который должен так же возвращать ArticleCollectionContract?

    3. самый простой вариант для начала
    оставляем interface PostContract
    по-необходимости для функционала делаем interface TagContract
    оставляем PostRepostory, PostService
    PostRepostory расширяем чтобы он мог возвращать объекты по типу (например
    $postRepostory->getNews(), $postRepostory->getArticles() )
    В тех местах где тебе реально нужен доп функционал типа getCountry - создаешь отдельный интерфейс interface CountryContact
    и далее в тех местах где будет зависимость встраиваешь CountryContact
    в итоге class News extends Post implements CountryContact, TagContract
    Ответ написан
    Комментировать
  • Не завышено ли тестовое?

    @asd111
    Если я правильно понимаю у вас в тестовом одна модель, один котроллер и всего нужно реализовать 4 урла: create, read, update,delete . Это делается за 20 минут. Тесты для 4 запросов. Ещё 20 минут. Если вы не знаете как это делается, то вам в любом случае придется все это узнать самостоятельно, потому что на работе никто не станет тратить время на то чтобы вас научить тому что есть в документации.

    Аутентификация в таком простом примере делается просто .

    APIDOC. Ставишь плагин для IDE и оно само тебе всё сгенерирует. Главное комменты напиши где надо.

    Свой хостинг. Ищешь промо код для digital ocean и получаешь на месяц vps бесплатно. Например промо-код radio-t должен работать и давать 10$.

    Советую сделать это тестовое и просить больше 250$.
    Потому что если ты не можешь его сделать то я слабо себе представляю что ты будешь делать на работе где нет тестов, нет доков и платят 250$. Потому что работать без доков очень неприятно - трудно понять всю структуры проекта.

    Если лень возиться попробуй сис админом. Там меньше кода.
    Или вообще не компьютерную сферу, там кода нет совсем а деньги местами даже больше чем в IT.
    Ответ написан
    2 комментария
  • Как на сервере вставить картинку в видео?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    Если вам нужно вставлять рекламу в плеере на сайте, то легче всего это сделать через javascript через api плеера.
    Если нужно модифицировать сам видеофайл, то режете видео, вставляете нужные картинки и кодируете заново., по другому у вас не получится. Все это можно сделать например через ffmpeg.
    Ответ написан
    1 комментарий
  • Длительные операции PHP - ложиться весь сайт, почему?

    Sanasol
    @Sanasol Куратор тега PHP
    нельзя просто так взять и загуглить ошибку
    для начала откорректировать количество воркеров в php-fpm, а дальше по ситуации.

    Ну и не делать curl в потоке основном естественно, ставить очереди.
    Ответ написан
    3 комментария
  • Vue: можно ли подписаться на события компонентов, добавленных через слот?

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

    <a @click="showModal = true">открыть форму</a>
    <Modal v-if="showModal" @close="showModal = false">
      <MySuperForm @success="handleSubmit" />
    </Modal>


    сама идея конечно интересная, слушать события слота, но именно для модалки лучше оставить так как вы первый раз написали, это правильно и это понятно будет всем

    P.S. можно вообще слушать события типа так
    this.$parent.$on(...)
    this.$children.$on(...)
    Ответ написан
    Комментировать
  • Виртуальный Мультисайт на Wordpress, как реализовать?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    В общих чертах:
    1. Конфигурируете сервер чтобы обрабатывал example.ru и *.example.ru как один и тот же WP-сайт
    2. В wp-config.php устанавливаете урлы сайта с помощью констант (они имеют приоритет над значениями из БД), а значения этих констант устанавливаете динамически на ходу, в зависимости от запрашиваемого адреса:
    define( 'WP_HOME', $_SERVER['SERVER_NAME'] );
    define( 'WP_SITEURL', $_SERVER['SERVER_NAME'] );

    3. В том же конфиге добавляете для удобства еще одну константу, скажем, SUBDOMAIN. Берем $_SERVER['SERVER_NAME'], достаем из него имя субдомена и кладем в эту константу.
    4. Далее, в нужных местах берете значение этой константы и действуете по обстоятельствам. Например, хукаетесь в фильтр the_title и модифицируете название, исходя из значения константы.
    5. С sitemap, возможно, придется повозиться чуть дольше. Но каких-то особых проблем быть не должно.
    6. Возможно, в процессе отладки вылезут какие-то еще мелкие нюансы, но вряд ли что-то серьезное.

    UPDATE:
    Обдумывал идею, пришло в голову вот еще что - надо уменьшить повторение кода в тех местах, где данные будут модифицироваться в зависимости от значения константы SUBDOMAIN. Я бы засетапил какой-нибудь массив, в котором ключами будут выступать как раз значения поддоменов, а значениями массива - необходимые данные. Где его хранить, в БД или в конфиге - не принципиально. Что-то типа:
    $data = [
        'moskva' => [
            'name' => 'Москва',
            'term_id' => 11, // ID термина таксономии cities, которая может использоваться для группировки контента, это позволит на "подсайтах" показывать только релевантный контент
            'title_suffix' => ' в Москве и области', // динамическая часть тайтла сайта / страниц
            ...
        ],
        'spb' => [
            ...
        ],
        ...
    ];

    Ну и получать доступ к этим данным:
    $title = $title . $data[ SUBDOMAIN ]['title_suffix'];
    Ответ написан
    6 комментариев
  • Оптимальный стек Front/Back/API для реализации проекта?

    Если вы уверены, что у вас будут полноценные мобильные клиенты, то ваш же собственный путь "Веб-клиент => тоже через API" выглядит как безальтернативный.
    Laravel/Lumen - особо без разницы.
    Для веб-клиента: Angular прекрасен в видеоуроках, но совсем не такой, а наоборот, в реальной разработке (кстати, а который из Angular-ов вы почти выбрали?).
    В сообществе Laravel (и не только) принято для богатого веба использовать Vue.JS.
    Ответ написан
    2 комментария
  • На чем написаны сборщики данных в Яндекс.Метрике?

    Ответ написан
    Комментировать
  • Как вернуть значение родительской функции из дочерней?

    Taraflex
    @Taraflex
    Ищу работу. Контакты в профиле.
    https://jsfiddle.net/
    function a(){
      try{
    
        function b(){
    			throw 'goto';
        }
        
        b();
    
      }catch(e){
    		if(e == 'goto'){
        	return 42;
        }else{
        	throw e;
        }
      }
      
      return 99999;
    
    }
    
    console.log(a())
    Ответ написан
    4 комментария
  • Единый API для cms как организовтаь?

    @AlexndrNovikov
    Solution Architect in Spiral Scout
    Думаю, если
    (без namespace'ов и прочего) для своей cms.

    - то вам рано делать свою CMS. Лучше изучите качественные готовые решения.
    Ответ написан
    3 комментария