• Что значит "++" перед переменной es5?

    Immortal_pony
    @Immortal_pony Куратор тега JavaScript
    Увеличивает значение this.navigationId на 1, а потом присваивает его переменной id.

    Пример:
    var navigationId = 1;
    var id = navigationId++;
    
    console.log(id); // ouput: 1
    console.log(navigationId); // output: 2
    
    
    var navigationId = 1;
    var id = ++navigationId;
    
    console.log(id); // ouput: 2
    console.log(navigationId); // output: 2
    Ответ написан
    Комментировать
  • Как правильно пользоваться алиасами?

    NeLexa
    @NeLexa
    В официальном доке есть информация https://github.com/yiisoft/yii2-app-advanced/blob/...

    @frontend - frontend web application directory.
    @backend - backend web application directory.


    UPD: Создание ссылок - https://github.com/yiisoft/yii2-app-advanced/blob/...
    Ответ написан
    3 комментария
  • Как обрезать текст?

    webinar
    @webinar
    Учим yii: https://youtu.be/-WRMlGHLgRg
    https://jsfiddle.net/pxn29zx3/4/

    для блока с обрезкой надо указывать width
    Ответ написан
    4 комментария
  • PHP фреймворк для начинающего разработчика?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Фреймворков в целом, которые достигли должного уровня популярности и народного признания - не так уж много (если говорить о PHP-фреймворках).

    Для начинающего, с целью понять сущность MVC, "пощупать" некоторые аспекты фреймворка, такие например, как загрузка библиотек и пр. подобности, я бы порекомендовал Вам CodeIgniter. Отличная документация, довольно много людей, кто сможет Вам ответить на возникающие вопросы, есть документация на русском. А так же, минимальное количество "лишнего" из коробки, например, шаблонизаторов (которые Вы можете самостоятельно подключить, если очень хочется).

    После этого фреймворка, промежуточным, можно было бы считать Kohana, но, он что-то то "умирает", то снова "воскресает"... С документацией на него, по моему, всё так же плохо (читай "не очень хорошо") как и всегда... но, по нему есть несколько неплохих видео-уроков.

    Суда же можно отнести Yii, на мой взгляд, он застрял где-то между "большими" и "маленькими" фреймворками. Маленьким его уже не назовёшь, по ряду признаков, а до большого и целостного - он ещё не дотягивает. Но, он довольно популярен на просторах бывшего СССР (по понятным для многих причинам), в виду чего имеет довольно большое русскоговорящее сообщество и целую толпу ярых фанатов.

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

    Ну а когда станете совсем матёрым программистом, и "лишний" код будет писать уже не в моготу, когда изучите все основные аспекты разработки, в том числе "сервис контейнеры", "внедрение зависимостей", будете понимать основные сетевые протоколы на низком уровне... а качество и разделяемость кода - будет одним из приоритетных условий - рекомендую обязательно ознакомиться с Symfony. Уроков по нему, довольно небольшое количество, вменяемого материала на русском языке - практически нет вообще... Но, достаточно легко изучается когда есть хороший багаж знаний и опыт работы с другими фреймворками.

    P.S. Я понимаю, что Вы спрашивали "какой фреймворк учить первым?", а не какие они бывают вообще. Но, дабы предостеречь Вам от вопросов типа "какой фреймворк учить вторым?" или "почему Symfony в роли первого фреймворка так тяжело изучать?" и массы прочих подобных - озвучил одни из самых популярных фреймворков в мире веб-разработок в ракурсе PHP.
    Ответ написан
    1 комментарий
  • Передача данных в компонент Angular 2?

    samoilenkoevgeniy
    @samoilenkoevgeniy
    Lead Full-Stack Web Developer
    банан в коробке:

    [(name)]='variable'
    Ответ написан
    6 комментариев
  • Знания Junior php разработчика?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    что должен знать идеальный джуниор (мое личное мнение):

    - Сетевой стэк. Нужно иметь хотя бы базовое представление о том как с сервером общаются. Ну то есть не нужно лезть в дебри, но понимать что такое HTTP или чем TCP от UDP отличается - нужно. В целом это пара часов чтения википедии.
    - GIT или любая другая распределенная VCS. Базовые навыки, что бы хотя бы понимал что есть git revert или git rebase, что такое фичабрэнчи и примерное представление как это работает и зачем надо.
    - Базовые основы unix. Ну то есть что бы не пугаться таких вещей как ssh хотя бы.
    - PHP. Без этого никуда. Он должен понимать что такое слабая динамическая типизация (не заучивать табличку кастов типов, а понимать плюсы и минусы, такая же история с приоритетами операторов - не заучивать а знать как избегать проблем с чтением кода)
    - Понимать что код чаще читают чем пишут, а потому не экономить 5 минут на написании кода, а писать так, чтобы сэкономить 30 минут человеку, разбирающемуся в куске кода.
    - Знать базовые вещи в плане безопасности. XSS и как защищаться, SQL инъекции и как защищаться, CSRF, MITM. Понимать что такое NDA, что данные пользователей - секретная информация. Как хэшировать пароли (не md5 а password_hash) и почему это важно.
    - Знать SQL. Глубоких знаний не требуется, нужно лишь понимание того, что такое нормальная форма, желательно разобраться с вопросом денормализации данных. Идеально иметь хотя бы базовые представления о том как работать с NoSQL решениями.
    - Процедурное программирование: почему глобальные переменные порождают сложность, что такое состояние, как можно использовать классы для изоляции состояния и т.д. Инкапсуляция. Инварианты, пост/пред условия, сохранение целостности...
    - Разделение ответственности. Это один из важнейших принципов, и упрощать все это до "mvc фреймворк" слегка неправильно. Вы должны понимать что от чего отделяете и главное зачем.
    - Автоматические тесты. Джуниор должен знать что это такое и иметь хотя бы минимальный опыт их написания. Должен понимать разницу между юнит и интеграционными тестами. Быть знакомым с пирамидой тестирования.
    - Уметь решать стандартные задачи не задавая слишком много вопросов. Например регистрацию пользователя по email-у вы должны написать, или авторизацию через соц сети, или комментарии, или новостную ленту.
    - Уметь дебажить. xdebug, blackfire и тд.

    В целом где-то за годик весь этот список можно влегкую покрыть с нуля.

    p.s. Я в списке специально не указывал ООП, поскольку всеравно первые пару лет у разработчиков выходит процедурщина на классах. Это не плохо, но того что в моем списке более чем должно хватать для решения стандартных задач. Но термины вроде "инкапсуляция/полиморфизм/наследование" требуются в обязательном порядке подавляющем количеством интервьюверов, а стало быть знать это надо. Единственное что - рекомендую в свободное время глубже погрузиться в этот вопрос а не тупо заучивать формулировки.

    Так же вещи вроде docker джуниорам знать не обязательно просто потому, что их врядли допустят сходу к управлению инфраструктурой. А так пару неделек на изучение и вперед.
    Ответ написан
    12 комментариев
  • Верно ли я понимаю суть webpack, таск-раннеров, requirejs и модулей?

    Иными словами, похожего результата я добьюсь варварским методом, склеивая файлы без всяких модулей через gulp (инкапсулируя содержимое при помощи объектов). Верно?

    В каком-то смысле да.
    Чтобы использовать модульный подход на клиенте, например, при помощи RequireJS, нужно его подключить, позволить ему отработать и засунуть в код страницы на лету нужные файлы.

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

    Сравнения со стеком C/C++:
    - модули это единицы компиляции (compilation unit). Настоящих модулей в C++ мы никак не дождёмся, так что это пока лучшая аналогия :); модули, написанные на языке, отличном от целевого JS (например на TypeScript или ES2015) подлежат компиляции; JS, являющийся результатом компиляции похож на объектный файл;
    - вебпак похож на линковщик, с той разницей, что плюсовый линкер собирает в бинарник только то, что ему дают, а вебпак наоборот, может запрашивать компиляцию модулей (для чего существует концепция загрузчиков - loaders). Представьте, если бы линковщик просил компилятор С++ скомпилить нужный файл. Так ведёт себя вебпак;
    - выходные большие файлы - бандлы - это вроде готовых lib файлов или бинарников. В них напихано много скомпилированных модулей, и их можно либо слинковать с чем-то еще (если это библиотека), либо запустить (если это бандл для загрузки на HTML-страницу);
    - как линковщик (пусть и с возможностью запроса нужного модуля) не заменяет make, так и вебпак не заменяет таск-раннеров.
    Ответ написан
    Комментировать
  • Этично ли при работе над проектом избавляться от посредников?

    Я охреневаю. Все такие крутые бизнесмены, судя по комментариям, только денежные отношения и похрену этика.
    Этика бизнеса - это не сферический конь в вакууме, это набор устоявшихся, неписаных правил, взаимодействия участников процесс. Сюда -же относятся и понятия репутации, имени фирмы, истории марки, и т.д., т.е. большая часть нематериальных активов, которые имеют вполне реальную финансовую оценку.
    Кидать посредников - плохо. Это удар по Вашей репутации, в перспективе потеря какого то кол-ва заказов, и принятие на себя не свойственных Вам функций.
    Да, Вы срубили сейчас чуть больше бабла, но потом этот посредник к Вам с заказом больше никогда не придет. Еще 5-10 таких заходов и Вы получите определенную репутацию хоть и в узких кругах.

    Посредников, конечно, надо давить, торговаться, ограничивать в их хотелках, и договариваться. Ничего не поделаешь - это коммерция. Но кидать, на мой взгляд, себе дороже.
    Ответ написан
    5 комментариев
  • Почему при создании интернет-магазинов не используеться AngularJS?

    dmitriylanets
    @dmitriylanets
    веб-разработчик
    есть варианты, когда для публичной части сайта делают стандартный многостраничный сайт, а для админки лепят одностраничник на том же angularJS. Но здесь есть свои минусы,
    1. один и тот же функционал не применишь для админки и для публички придется писать разные виджеты, разные схемы работы, это будет удваивать и усложнять работу простых вещей.
    2. Как правило админкой пользуются по принципу что есть с тем и работаем, чем проще тем лучше. Из практики очень редко бывает когда не устраивает таблица или форма, в плане скорости работы, оформления. В 95% все разработки крутятся относительно публичной части. Поэтому и ангуляр для админки я бы не стал делать, не нужно и дорого.

    Если разрабатывается веб-приложение без СЕО, тогда есть смысл заморочится с angularJS
    Ответ написан
    Комментировать
  • Как запретить на сайте нажатие CTRL+SHIFT+I и F12?

    Задайтесь вопросом... Кому нужен код? Простому пользователю он ни к чему, он даже не знает, что это такое. А тот кому он нужен, тот в любом случае найдет как его взять.
    Ответ написан
    Комментировать
  • Роскомнадзор требует удалить главную страницу сайта, как быть?

    @murlogen
    1. А это точно Роскомнадзор, а не шутники или конкуренты?
    2. Должна быть отсылка на официальное решение (судебное желательно), которое вы можете прочитать и понять а что именно у вас не так.
    3. Роскомнадзор никогда не требует убрать страницу. А требует убрать конкретную информацию на странице. Это может быть просто одно-единственное предложение или даже слово или картинка - а вы сразу паникуете.
    4. На ссылки у нас никаких запретов нет. Только на саму информацию. Если эта информация находится (и отображается) за пределами вашего домена/сайта - это вообще не к вам.

    Судя по формулировкам - это или злоумышленники/шутники или вы так излагаете неясно.
    Читайте внимательно претензию.
    В ней должна быть отсылка на конкретное решение с причиной - а что именно не нравится.
    Ответ написан
    2 комментария
  • Как создаётся такой эффект стекания мёда (см. внутри)?

    @Quiensabe
    VR-разработчик
    Так как вопрос в разделе AFTER EFFECTS - то полагаю задача как получить саму анимацию, а не как встроить ее на web-страницу? Если да - то далее.

    Сам красивый вид меда - проще всего получить используя фильтр CC glass и Gradient Ramp. Хотя похожего можно добиться даже настройками стиля слоя или другими эффектами.

    Остается анимировать контур. AE поддерживает криволинейные маски, так что можно это сделать вручную. Но я бы делал проще.

    Берем итоговый контур - то как мед должен выглядеть в последнем кадре. Мед - белый, фон - черный. Размываем слой с большим радиусом, чтобы получилось почти ровное пятно. И накладываем level сдвинув бегунки так чтобы получить фактически битовую маску (без полутонов).

    На данном этапе - получим немного кривой белый круг. Теперь анимируем радиус размытия до 0 - и получим плавную анимацию растекания круга в нашу изначальную форму меда...

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

    Обязательно переключите в свойствах проекта качество просчета на 16 бит. Иначе анимация будет дискретной.

    оффтоп. меняю знания AE на знания англ. яз. :)
    Ответ написан
    2 комментария
  • Как можно максимально ускорить загрузку страницы?

    @antonowano
    Профессиональный самоучка
    Нужно иметь две версии css и js: dev и prod. Во время разработки вы работаете только с dev версией, а prod у вас создается позже (перед запуском на продакшане выполняете минификацию и комбинирование).
    Чтобы реализовать это автоматически вам нужен frontend сборщик такой как Grunt.JS или Gulp.JS, которые работают на node.js.
    Главное преимущество вы получите возможность использовать css, js-препроцессоры и собирать минимизированный единственные файлы для сайта со стилями и JS.

    Также попробуйте избавиться от не нужных библиотек в JS. Чаще всего они имеют излишний функционал и занимают много места. Возможно у вас получится отказаться от JQuery или хотя бы подключить slim версию.
    Ответ написан
    3 комментария
  • Чем лучше всего заменить "чистый" JavaScript?

    @JihadTV
    А когда TypeScript успел утратить популярность? Сразу после выхода ангулара в релиз?
    Ответ написан
    Комментировать
  • Где находится robots.txt в Wordpress?

    @pudovMaxim
    web-developer
    Возможно установлены сео плагины, которые подменяют роботс на свой. Тогда его можно из настроек плагина попробовать поковырять. Либо да, проблемы с настройкой сервера и роботс выдается с другого места/проекта.
    Ответ написан
    1 комментарий
  • Как начать пользоваться css фреймворками?

    iiiBird
    @iiiBird Куратор тега CSS
    Пока ты спишь - твой конкурент совершенствуется
    вот и я задался таким вопросом. никак не могу понять как уговорить дизайнера рисовать под geo-bootstrap code.divshot.com/geo-bootstrap
    Ответ написан
    5 комментариев
  • Как организовать проект для сборки?

    ShadowOfCasper
    @ShadowOfCasper
    Middle User Interface Web Developer
    b7559f6e7d784cdf82263cde495dbfe3.png"button__primary--hover.html" лол, мэн, никто так файлы не называет. Это БЭМ-классификация разметки, во-первых.
    Во-вторых, на html уже никто нормальные проекты не пишет.
    Вот тебе хорошие ссылки.
    бац https://habrahabr.ru/post/246349/
    бац yeoman.io
    бац https://github.com/larsonjj/generator-yeogurt (ну или просто npm i generator-yeogurt -g)
    Ответ написан
  • Какие цели и задачи у SEO и каковы права и обязанности Заказчика и оптимизатора?

    Привет.

    1) Начинаем плясать от договора. Был ли данный договор или нет.
    - Если договора нет, и заказчик начинает "напрягать", то берешь деньги и уходишь.
    - Если этих пунктов в договоре нет, то опять же берешь деньги и уходишь.

    2) Обычно оплата идет за позиции в топ, либо за трафик с каким-то коэффициентом внутренней оптимизации. Заказы - лиды - звонки - это уже не к Seo.

    3) SEO - обеспечивает продвижение сайтов в поисковой системе. Также (иногда) он обеспечивает лучшую конверсию посетителей на сайте (показатель отказов, среднее время и так далее). Но ни первое, ни второе не может гарантировать, что будут заказы. Например, если человек продает дилдо по 2000 рублей, а везде они стоят 500 рублей, то хоть ты ему миллион посетителей пригони, конверсия (заказы и звонки) будет никакой.

    4) Маркетолог, SMM-менеджер, Пиарщик итд. Когда заказчик начинает тебя нагружать тем, чтобы было бы неплохо еще маркетинг разрабатывать, Пиар придумывать, вести группу, плясать с бубном - то это означает, что человек сам не понимает, что ему нужно, и зачем он тебя нанял.
    - В этом случае забираем деньги и уходим. Это равносильно тому, что программиста заставят заниматься контентом на сайте, который он разработал.

    Поэтому, если ты даешь результат, а заказчик "не понимаем" и пытается нагрузить тебя левыми обязательствами и лишней работы, то собираешься и уходишь. Работа с мудаками - дело неблагодарное.

    Если все же так нужен этот клиент, то говоришь, что ты даешь трафик и внутреннюю оптимизацию, остальное не твое дело (если у тебя в договоре не прописано четко, что ты гарантируешь им заказы). И да, не ломайся под давлением и не бери на себя лишние обязательства.
    Ответ написан
    1 комментарий
  • Клоакинг или нет?

    riky
    @riky
    Laravel
    это не клоакинг. окно же не автоматически раскрывается при входе на сайт.
    по вашему описанию - любой модал подходит.
    Ответ написан
    2 комментария
  • Откуда лучше грузить видеобэкграунд?

    Естественно с трубы.
    Представь, как 10 человек одновременно начинают смотреть видос?
    А 100? А 1000? Сколько выдержит твой тариф на хостинге перед тем как сайт отвалится?
    Ответ написан
    Комментировать