• Частое использование important это нормально?

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    Скажем так — каждое появление !important в коде требует объяснения. Ещё раз повторю — каждое.

    Использование любого повышения приоритета в проектах, будь то !important или атрибут style (что даёт одинаковое повышение), или сразу оба (ахтунг!), или id (меньше по силе, чем любое из предыдущих) — всё это требует объяснений. Почему?

    А вот почему — есть плагины и модули от сторонних разработчиков и любое повышение приоритета сужает поле для манёвра. И это ладно, если селекторы у вас уникальные, но я же натыкаюсь вот на такое:

    #content li{
    	list-style: none !important;
    }


    И за такие фокусы надо отрубать руки. Да. Или лишать премии. Но лучше отрубать. Шучу. Только одну.
    Ответ написан
    Комментировать
  • Частое использование important это нормально?

    iiil
    @iiil
    Инженер и вэб-дизайнер, рисую.
    Нет.
    Приведу аналогию, вот есть у Вас файл, предположим «Презентация.pdf». Первый раз Вы его назвали нормально, когда исправили, назвали «Презентация_испр.pdf», потом шеф внес новые коррективы и появляется файл «Презентация_испр_+шеф.pdf», после чего Вы еще раз правите, добавляя пару страниц и получается «Презентация_новейшая.pdf», потом «Презентация_последняя.pdf», «Презентация_14.12.2015.pdf» и так далее.
    А всего-то надо было назвать «Презентация_rev.0.pdf»
    Здесь примерно то же самое, Вы через какое-то время начнете путать, что и где Вы сделали с помощью important, а что просто наследуется. И так или иначе все равно придете к тому, что чтобы один important перекрывал другой, надо расположить классы в нужном порядке.
    Но лучше делать это сразу.
    Ответ написан
    Комментировать
  • Каковы адекватные требования для frontend junior?

    @lookid
    Стажер - человек без опыта, выпускник, студент.
    Джуниор - опыт 1-3 года если не фултаим, или 0.5-1 год фултаим.
    Миддл - 1-3 года фултаим, железно, хоть месяцы считай и звони предыдущим работодателям.
    Синьер - 5-7 лет фултаим + крепкие знания в технологиях, очень крепкие, требуется ревью с предыдущих мест работы.

    У вас же в требованиях хотят сильного джуниора, а не стажера-выпускника-лабыздавателя. Нормальные требования. ЗП можно было бы и 40к дать.
    Ответ написан
    1 комментарий
  • Каковы адекватные требования для frontend junior?

    miraage
    @miraage
    Старый прогер
    Front junior - AngularJS? Некислые у вас джуниоры.
    Ответ написан
    3 комментария
  • Как разобраться с прототипом и конструктором?

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    var F = function() { }
    F.prototype = Parent.prototype
    Child.prototype = new F()

    Создаём промежуточный вспомогательный конструктор, который нужен, чтобы не тащить все штуки-дрюки из создания объекта с помощью непосредственно конструктора Parent. Мы же не знаем, какие собственные свойства навешиваются при вызове конструктора?

    Child.prototype = new Parent()
    При таком вызове можно подхватить чёрт-те знает что.

    Child.prototype.constructor = Child
    Обновили ссылку на конструктор в прототипе. Для чего? Видимо для того, чтобы строки имели одинаковый эффект:
    var iLoveToMakeChild1 = Object.create(Child.prototype)
    var iLoveToMakeChild2 = new Child()


    Child.superclass = Parent.prototype
    И на всякий случай положили в свойство конструктора ссылочку на прототип своего предка. Бывает очень нужно.

    Ваш пример — типичная схема наследования.
    Что почитать:
    dmitrysoshnikov.com/ecmascript/ru-javascript-the-core
    habrahabr.ru/post/120193
    habrahabr.ru/post/108915

    Update:
    Не уверен, что это пояснение действительно пояснит, но...

    05c7add10c82486b89a0109e62db1c7f.png
    function Млекопитающее() {
    	//И вот тут может произойти непонятное без прокладки F
    }
    Млекопитающее.prototype.commonParams = [
    	'Вскармливает детей молоком',
    	'Теплокровное'
    ];
    
    function Человек(options) {
    	if (options && typeof options == 'object') {
    		for (var i in options) {
    			this[i] = options[i];
    		}
    	}
    }
    
    function Кошка(options) {
    	if (options && typeof options == 'object') {
    		for (var i in options) {
    			this[i] = options[i];
    		}
    	}
    }
    
    function extend(Child, Parent) {
    	var F = function() { };
    	F.prototype = Parent.prototype;
    	Child.prototype = new F();
    	Child.prototype.constructor = Child;
    	Child.superclass = Parent.prototype;
    }
    
    extend(Человек, Млекопитающее);
    Человек.prototype.ownParams = [
    	'Носит одежду',
    	'Поёт в караоке'
    ];
    
    extend(Кошка, Млекопитающее);
    Кошка.prototype.ownParams = [
    	'Забавно урчит',
    	'Ест мух'
    ];
    
    var man1 = new Человек({
    		name: 'Петя',
    		params: [
    			'Брюнет',
    			'Любит Хауса',
    			'Бросил курить'
    		]
    	}),
    	animal1 = new Кошка({
    		name: 'Маська',
    		params: [
    			'Любит кукурузу',
    			'Имеет 2 лотка'
    		]
    	});
    Ответ написан
    3 комментария
  • В PHshtorm создаю проект с помощью Composer и мне вместо того что я запросил выдает кучу файлов?

    1. разберитесь как работает composer
    2. протрите глаза. На вашем видео на 4:50 видны те же папки, что и на вашем скрине.
    Ответ написан
    4 комментария
  • В PHshtorm создаю проект с помощью Composer и мне вместо того что я запросил выдает кучу файлов?

    KorsaR-ZN
    @KorsaR-ZN
    Так это же норма, он выдал все зависимости данного фрейма, без них он работать не будет...

    7b877cf28a1b4679b4f365feb4299c8a.png

    Если весь фрейм не нужен, то можно установить только необходимые компоненты из ветки - https://packagist.org/packages/illuminate/, но там тоже есть свои зависимости :)
    Ответ написан
  • Что значит добавить в хэш options в Backbone?

    @antonre
    Сигнатура метода
    model.set(attributes, [options])
    Подозреваю, что нужно написать либо так
    name.set({"age": 20}, {validation:true})
    либо в конструктор передать
    new Model([attributes], {validation:true})
    Ответ написан
    1 комментарий
  • Подготовка к сертификации magento

    @Den4ik_k
    https://www.smashwords.com/books/download/327369/1...
    Удачи в подготовке
    Ответ написан
    Комментировать
  • Есть ли смысл в изучении новых (совсем молодых) инструментов и языков программирования и какие у них перспективы?

    barmaley_exe
    @barmaley_exe
    Как справедливо заметили выше, Python и Ruby существуют уже 20+ лет, так что популярность они набрали уже давно.

    Go, Dart, Rust, D, etc интересны для изучения в целях расширения кругозора, но "в продакшен" не годятся: за 5 лет обширным сообществом не обзаведёшься, а, значит, ни выбора в плане библиотек, ни профессиональных кадров. Конечно, могут существовать отдельные проекты, исповедующие эти языки, но таких меньшинство.

    В последнее время многие прыгают вокруг JavaScript'а: сначала его перенесли на сервер (на самом деле, это сделали задолго до Node.JS, но не взлетело), а потом стали использовать чуть ли всюду (в win8, например, или PhoneGap). Но JS'у повезло иметь довольно больше коммьюнити на момент разгара этого хайпа, потому и понеслось.

    Выберите что-то из Python, Ruby, JS и разберитесь в этом (не столько в самом языке, сколько в его экосистеме, т.е. библиотеках, фреймворках и паттернах). Будет нужно — разберётесь в другом языке с его экосистемой. Идеи везде одни и те же, отличается только синтаксический сахар.
    Ответ написан
    Комментировать
  • Есть ли смысл в изучении новых (совсем молодых) инструментов и языков программирования и какие у них перспективы?

    deadbyelpy
    @deadbyelpy
    веб-шмеб
    "Постоянно появляются новые языки, вроде GO, Dart, "
    можете привести пример? Эти языки уже как 2-4 года существуют и обкатываются.
    Самый свежий - Swift, про другие не в курсе

    "набирает популярность Phyton, Ruby on Rails (хотя в российских компаниях мало востребованы)."
    что то вы опоздали, Python и Ruby уже прочно заняли свою нишу, особенно Py.

    "Больше всего беспокоит вопрос потраченного времени - будет обидно, если в дальнейшем ты не будешь востребован на рынке."
    если вы начнете изучать Python (который "набирает популярность") то вы найдете свою нишу.
    даже с более свежим Go вы не пропадете.
    но вот если учить язык у которого:
    1) нет сообщества
    2) главный мейнтейнер - Григорий с соседнего подъезда
    3) ничем не отличается от С
    у вас не много шансов найти работу имея знания этого языка.

    Фриланс, фриланс...
    "Сейчас имеются базовые знания по php+js+html+css." - если все на среднем уровне вы и так сможете себя прокормить.
    Изучите python, ruby, js на проф уровне - вам дорога в более оплачиваемую работу.
    Хорошо можно и с pjhc зарабатывать, но тут нужен опыт, ибо сайт визитка - копейки по сравнению с сервисом.

    Совет.
    Сейчас востребован фулл веб стек.
    Изучите лучше то с чего уже начали. Углубитесь в фронт (js+hml+css) или бек (php+sql+nosql) энд. И вы всегда найдете себе работу, конечно если искать будете.
    Ответ написан
    5 комментариев
  • (PHP, Yii2) Куда грузить публичные файлы (аватары, картинки)?

    @LAV45
    Я бы добавил Common, Backend и Frontend ещё и папку Img которую бы вынес на суб-домен и раздавал бы картинки от туда.
    Ответ написан
    Комментировать
  • Grunt, connect, jade, less, livereload быстрая вёрстка

    Zoxon
    @Zoxon
    Веб-разработчик
    Посмотрите мой велосипед, github.com/Zoxon/gulp-front там правда стилус вместо леса, но это быстро исправляется. Постоянно допиливаю, но пока сыровато чтобы выкладывать
    Ответ написан
    3 комментария
  • Написать статью по необычной практике написания сервисов на Node.js?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    чем это dependency injection и deferred objects в контексте js необычны?

    А так пишите конечно, но постарайтесь раскрыть все по подробнее, зачем применять то и то и профит от этого. Описать inversion of control в js, особенностях там всяких... примеры... Статья туториал как писать это не так интересно, тут скорее статья разбор готового приложение с подробным описанием этих практик. Ну и что бы люди могли на реальном примере посмотреть.
    Ответ написан
    Комментировать
  • Yii2, работа с формами, как написать более сложную форму?

    metamorph
    @metamorph
    Ох.

    Ну, в общем, смотрите в сторону параметра fieldConfig (передается при создании виджета формы, вот тут <?php $form = ActiveForm::begin(); ?>), ну и там всякие options, cssOptions, template итд.

    Пример:
    $form = ActiveForm::begin([
        'id' => 'login-form',
        'options' => ['class' => 'form-horizontal'],
        'fieldConfig' => [
            'template' => '{label}<div class="col-sm-10">{input}</div><div class="col-sm-10">{error}</div>',
            'labelOptions' => ['class' => 'col-sm-2 control-label'],
        ],
    ]);


    Для того, чтобы понять, что куда идет, откройте файл vendor/yiisoft/yii2/widgets/ActiveForm.php, оно всё там (и неплохо документировано).
    Ответ написан
    3 комментария