• Как вы начинаете вёрстку сайта?

    Для чего юзать bower и тп. Главное либу установить ленятся, а bower ставить не ленятся, jQuery и прочие либы лучше ставить с яши или гугла. Использовать среду типа NetBeans, WebStorm, Eclipse и тп. Каким то хламом типа "первого ответа" проекты засорять жесть. Twitter Bootstrap можно использовать как пример для реализации, а не лепить на нем основу)

    Есть БЭМ отлично сохраняет проект на годы, двигло можно не использовать, сама идея годится чтобы не делать из проекта помойку.
    Ответ написан
    Комментировать
  • На чем в 50 лет можно зарабатывать?

    Если Ваш отец считает, что в 50 он уже старик и ни на что не годен, ну что же, пусть ищет место сторожа.
    Если же нет - почему Вы упоминаете возраст? Создается впечатление, что Вы считаете его неполноценным.

    Поставьте вопрос иначе: на чем зарабатывать человеку, которому только-только минуло 30?
    И ответы найдутся гораздо проще... если не ставить надуманных барьеров.
    Ответ написан
    4 комментария
  • Как вы начинаете вёрстку сайта?

    @dimash07
    Просто устанавливаю будущий дизайн (черно-белый) на фон сайта(background: url('###') center top). Вписываю все нужные html теги. Добавляю классы CSS. Открываю эту странцу в Google Chrome где установлен плагин DevTools Autosave. И тупо верстаю прямо в браузере. Очень легко и быстро!
    Ответ написан
    2 комментария
  • Как вы начинаете вёрстку сайта?

    torrie
    @torrie
    Всё знаю, всё умею
    В первую очередь делаю сброс css-стилей.
    Затем делаю вёрстку общих блоков - просто структура из div'ов с нужными ширинами, высотами согласно макету, залитых разными цветами. Стараюсь все div'ы(когда что-то в строчку) делать inline-block'ами. Получается цветная такая структура будущего сайта. Каркас готов.
    NDrl9VkCyDvemP.jpg

    Начинаю углубляться в каждый блок - располагать в нём нужные элементы. В зависимости от сложности их расположения делаю какие-то блоки position:relative, но чаще всего всё упирается просто в отступы.
    Ответ написан
    3 комментария
  • Как вы начинаете вёрстку сайта?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    1) Захожу сюда codepen.io
    2) Жмякаю New Pen
    3) Создается новый пен где уже все настроено под меня (SASS/отступы/лайвапдейт и так далее).
    4) Верстаю
    5) ...
    6) PROFIT!
    Если верстка многостраничная, то один пен делаю глобальным (SASS переменные/общий JS код) и линкую его в другие пены. + можно все это дело форкать до потери пульса, и показывать ссылки заказчику (ссылки все приватные, если имеется PRO аккаунт). Особенно удобно, когда имеется несколько вариантов анимации, то просто делаю 2-3 форка и даю ссылки, а человек наглядно сравнивает все.
    Ответ написан
    15 комментариев
  • Как вы начинаете вёрстку сайта?

    increment_of_panfil
    @increment_of_panfil
    Программист, разработчик, дизайнер
    Создаю минимальную разметку с базовыми элементами и пишу для них CSS.
    Потом добавляю в разметку остальные элементы и пишу CSS.
    И так далее.
    Ответ написан
    Комментировать
  • Какой должен быть порядок следования @media queris при формате "Сначала десктоп"?

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    Если кто-то путает окно браузера с областью просмотра, да ещё к min-width и min-width экран монитора приплетает — у него не только лыжи не едут, а в голове смазки маловато:)

    1. Обрабатываются все media queries. От первого и до последнего.
    2. Если выполняются условия в нескольких @media, то для конфликтующих правил вступает в силу обычный расчёт каскада (читай приоритет правил).

    Относительно синтаксиса неплохо бы почитать спецификацию, да и вот хорошее описание.
    Ответ написан
    Комментировать
  • Есть ли способы чтобы сайт слал сообщения клиенту в viber/telegram/WhatsApp или что-то похожее?

    @RadmirZ Автор вопроса
    Делаем интернет-магазины на движке minicart.su
    В итоге мы обратились вот к этому парню: skype: rustam1092 - Рустам (автор вот этой статьи lon10.net/post/otpravka-soobschenii-telegram-messe...), он за 1 т.р. установил нам на сервер Telegram и сделал тестовый php файлик который может слать сообщения. Также мы купили для этого симку которая была использована чтобы проверочные коды телеграма приходили. Еще не тестили как работает но в принципе должно, сервак отправляет сообщения и может в том числе слать картинки и какое то содержимое.

    Получился инструмент неплохих уведомлений, на замену смс самое то. Мы делали это исключительно для себя, то есть чтобы админам приходило сообщение, для пользователей это не подойдет, поскольку сам телеграм есть не у всех и рассылать так любому человеку сообщения вряд ли получится
    Ответ написан
    3 комментария
  • Как пояснить клиенту что такое технический долг и рефакторинг?

    kumaxim
    @kumaxim
    Web-программист
    Для начала скажите зачем Вы вообще хотите рефакторить код? Моральное удовлетворение?! Технический долг?! Вам что, приятнее трахаться с функциями в коде, чем со своей девушкой?

    Работает код - не трогайте его, пусть дальше работает.

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

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

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Клиент понимает только цифры, ему плевать на качество кода ровно до той поры, пока поддержка кода не станет ему в копеечку лишнюю. Приведите ему реальные доводы ЗА рефакторинг выражающиеся профитом в денежном эквиваленте и вуаля. Ну а если этих доводов нет - только личное мироощущение, то нужен ли рефакторинг?

    Ну и коль уж мы про цифры, клиентов и технический долг, а как вы убедили клиента оплачивать вам время на написание тестов? Вы включаете это во время разработки при оценке стоимости? Что мешает заложить и рефакторинг критических мест. Вы не пишите тесты? Тогда о каком рефакторинге имеет смысл вести разговор? Тогда доводы должны быть просто железобетонные, что бы не тратить время на фул-тэст и поиск регрессий.
    Ответ написан
    1 комментарий
  • Как лучше всего сверстать печатную страницу на HTML и CSS?

    @GreatRash
    Древняя статья (2005 год) с AListApart о том как запилить книгу, используя HTML+CSS.
    Ответ написан
    2 комментария
  • Зачем при входе через facebook / vk открывают новое окно?

    Immortal_pony
    @Immortal_pony Куратор тега JavaScript
    Вариант "в окне" наиболее простой в примерах VK/FB API.
    Ответ написан
    Комментировать
  • Пришло время для websocket?

    akubintsev
    @akubintsev
    Опытный backend разработчик
    Как он видет с клиентом?
    Какой % юзекров он охватывает (поддержка) ?
    Как быть с теми у кого он отключен, не доступен, и вообще нету поддержки ?
    Какие проблемы могут возникнуть при работе с ним ?

    - не понимаю до конца вопроса, но клиенты видят нормально
    - его нет только у пользователей IE < 9, опционально не отключается в браузере
    - проблемы могут быть, если не зарулить его грамотно в nginx как часть url (а не как некоторые просто вешают отдельным портом). И еще конечно же при работе в сетях мобильных операторов, это надо отдельно тестировать.
    Ответ написан
    7 комментариев
  • Ваше мнение о видеоуроках Евгения Попова?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Недавно в голову пришла идея небольшого сайта мне для работы.

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

    Сайты для работы не пишутся с нуля. Сайт для работы делается на основе заготовки для сайтов - CMS.

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

    Про попова же, если коротко, то у его курсов ровно две проблемы:
    1. Его задача не поделиться знаниями, а продать что-нибудь. К несчастью, торговать он стал не гербалайфом, а низкокачественным говном собственного производства.
    2. Когда неспециалист берется учить других - это страшно. Сам нахватавшись по верхам, и не понимая смысла кода, который он пишет, попов остался в прошлом веке. Да, 18 лет назад, когда РНР только появился, все писали так. Но с тех пор изменилось очень многое. Программисты узнали о таких вещах, как отладка, обработка ошибок, безопасность, разделение кода и данных, разделение логики обработки данных и логики отображения, системы контроля версий, повторное использование кода и многое, многое другое. Шарлатаны же и недоучки так и застряли в прошлом веке, и не дают несчастным обманутым жертвам ничего из современных достижений. В итоге сайты, написанные по видуоурокам, постоянно ломаются, являются уязвимыми для любых типов атак и являются совершенно немордернизируемыми.
    Ответ написан
    Комментировать
  • Что должен знать middle PHP разработчик?

    @andreyqin
    Все ответы на вопросы вида "Что должен знать ..." находятся на хэдхантерских сайтах.
    Ответ написан
    Комментировать
  • Какая разница между @include и include?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    1. Собака не имеет никакого отношения к include. Это не один оператор, а два совершенно разных оператора.
    2. Увидев @ в коде ты можешь почти со стопроцентной уверенностью сказать, что его писал неграмотный пользователь, и пользоваться этим кодом не стоит.
    3. Увидев в коде @include ты можешь смело считать его автора абсолютным лохом и нубом, а сам код надо выкидывать немедленно. Потому что @include глушит не только саму ошибку включения файла, но и все ошибки в этом файле - то есть, поступает стократ хуже. Это значит, что если автор допускает такие косяки в коде, то и все остальное у него тоже ад кромешный.
    4. Самое главное. Ошибки надо не подавлять. Ошибки надо исправлять. Но опять же, делать это с умом. Начинающие программисты считают сообщения об ошибках своими личными врагами, и борются с ними всеми доступными средствами - с помощью @, error_reporting(0) и др. Получив линейкой по рукам и запомнив на всю жизнь, что так делать не надо, ониначинают с не меньшим рвением писать всякие проверки - лишь бы не допустить, не дай бог, ненавистного сообщения об ошибке. Например:

    if (file_exists($inc))
    {
        include $inc;
    } else {
        echo "Файл не найден";
    }

    Так вот, это - еще хуже. Для начала, часть ошибок этот код все равно не отловит. Но это даже не самое главное. Главное - что вот это вот "Файл не найден" не имеет ни малейшего смысла. Пользователю оно ничего не скажет. А программист о нем не узнает. А если и узнает, то ничего не поймет! Какой файл? Где не найден? По какой причине? Системное сообщение об ошибке содержит массу бесценной информации помогающей идентифицировать ошибку, сообщая нам где она произошла, какой файл не найден, по какой причине не найден. Выдавать вместо этого огрызок "файл не найден" - это мазохизм.

    И вот тут мы должны произвести натуральную революцию в неокрепшем детском мозгу: сообщение об ошибке не твой враг, а твой друг! И надо добиваться его появления всеми возможными способами! В том числе и выпиливанием бессмысленных проверок. Проверку можно ставить только если у нас есть сценарий обработки ошибки: к примеру, вместо этого файла мы можем заинклюдить какой-то другой, дефолтный. Тогда да - проверка имеет смысл. Но если это самый обычный инклюд, который всегда должен быть на своем месте, то его отсутствие обязано вызывать ошибку! Чтобы она была сразу показана на дев сервере и тут же исправлена. Чтобы она была записана в лог на продакшене и тут же исправлена.

    Ошибки не надо подавлять. Ошибки не надо прятать. Ошибки надо исправлять.
    Ответ написан
    3 комментария
  • Docker. Как контролировать код, базу данных и выпуск в production?

    UnknownHero
    @UnknownHero Автор вопроса
    Добавлю ответ на свой же вопрос.

    Прошло достаточно времени и я успел посмотреть и попробовать множество инструментов связанных с Docker.

    Создал 2 приложения , первый этой сам сайт для которого хотел сделать инфраструктуру , второй это инструменты администрирования, тестирования и деплоя.

    Приложение для администрирование развёрнуто на 1-м сервере, на нём есть Docker Registry , Jenkins и ещё пару веб страниц с разной информацией. Всё это обернул в Nginx , работает здорово. Само приложение тоже использует Docker , но обновлять его нужно руками (ssh and etc).

    Сайт ( который на самом деле состоит из бизнес логики , DAL , Postgresql , Rest API , web-frontend , web-backend и ещё пару уровней абстракции :) ) использует содержит около 10 Dockerfile.

    Внутри приложения использую инструменты сборки (grunt для nodejs) и собираю приложение во время сборки образа (docker build) , либо после запуска контейнера для продолжительной разработки с помощью FIG.

    После правки кода, заливаю всё в git репозиторий, Jenkins собирает образы (docker build) и отправляет в Docker Registry, после чего сообщает серверам (сейчас он 1), что нужно обновить образы (docker pull) , и перезапустить контейнеры. Там где нужно сохранить данные , использую data containers , их я не перезапуска и не трогая.
    Со временем хочу сохранять состояние data containers (docker commit) и заливать их на Docker registry (docker push) для бэкапа некоторых данных.

    Сервер собирает и перезапускает обновлённые контейнеры с помощью самописных bash скриптов (они не сложные ), т.к. родные для Docker инструменты для этих целей ещё в стадии разработки (Docker swarm , Docker machine , Docker compose) , а стороние решения скорее всего умрут после выхода этих инструментов.

    Через Environment variables говорю контейнеру в каком он режими работает (local/test/live), но нужно это только для минификаций и уровня логгирования. В этих настройках - чем меньше различия,тем лучше.

    Всё это загнал в vagrant , отлично работает ,но требует хорошое железо для разработки.

    В планах:
    - научиться тегировать образы, что бы можно было откатить все сервера до рабочего состояния в случае багов.
    - добавить процесс автоматического тестирования и оценки качества в Jenkins (для docker приложений нужно поднимать ещё jenkins slave )
    - прикрутить ansible для деплоя и прочих удобностей для администрирования. Связать его с Jenkins

    Итог:
    -Однин раз написал, везде использую.
    - Автоматизация до уровня commit = staging deploy
    - Разделение административных инструментов и сервисов от бизнес приложения.
    - Независимые компоненты ,которые можно легко заменить, слабая связаность.
    ну и минусы:
    - одному тяжело уследить за таким зоопарком )) Был бы администратор/DevOps , было бы зачительно быстрее всё.
    Ответ написан
    1 комментарий
  • Британка UX/UI интенсив: есть ли смысл?

    supizovoshey
    @supizovoshey
    Дизайнер
    Британка хорошее учебное заведение, в первую очередь из за преподавателей. На вашем курсе есть такие преподаватели как Ветров, который руководит отделом дизайна в mail.ru, я бы его с удовольствием послушал.

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

    Уверен подобный опыт будет не лишним, я остался доволен, правда это было очень давно.
    Ответ написан
    Комментировать