• Как научится верстать такое?

    wielski
    @wielski
    ✔ Совет: Вам помогли? Отметьте ответы решением.
    Практика, практика, и только практика.
    Вы выучили основы html и css, и вроде бы можете что-то сверстать.
    На одном вроде бы, и с такими знаниями сразу подобное (svg анимации и т.д.) сверстать вы не сможете.
    Начните с малого, развивайте скилл, после того как разберетесь с типографией / сетками, и сможете верстать настоящие проекты - читайте и вникайте в примеры на codyhouse.co, там вся реализация разложена по полочкам.
    Ответ написан
    Комментировать
  • В какой момент пора использовать ООП?

    Denormalization
    @Denormalization
    Не забивайте себе голову. Если всё работает и вас всё устраивает, то зачем что-то менять?
    Преимущества ООП проявляются при поддержке проекта.
    Вы поддерживаете свои проекты? Вы развиваете их? В какой момент вам стало сложно поддерживать проект?
    Много ли в проекте абстракций?
    Как вы решаете проблему добавления новых абстракций в проект?

    Если эти вопросы не про вас, то вам не нужно ООП.
    Ответ написан
    Комментировать
  • Какие есть хорошие видеокурсы по PHP фреймворках?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега PHP
    https://laracasts.com/ - море полезных и качественных уроков (и целых серий) за смешные деньги.
    Ответ написан
    Комментировать
  • Какую систему лучше использовать для Node.JS / IO.JS?

    dunmaksim
    @dunmaksim
    Технический писатель
    Однозначно Debian, т.к. стабильность (т.е. что всё работает так, как ожидается) там гораздо выше, чем в Ubuntu - дистрибутиве, построенном на пакетной базе текущей тестируемой, т.е. нестабильной, версии Debian. Только не слушайте местных линуксоедов насчёт того, что 8-ка - говно, потому что там systemd. Ставьте смело, т.к. systemd сейчас практически стандарт, в том же RHEL и CentOS 7 уже давно.
    Ответ написан
    2 комментария
  • Какова роль интерфейсов в ООП?

    Приведу пример на коленке. Хотим, например, написать абстрактную файловую систему. Для начала, определим интерфейс, для ФС:

    interface FileSystemInterface {
      public function write($file, $data);
      public function read($file);
    }


    Затем, хочу реализацию интерфейса ФС для работы с файликами:

    class OSFileSystem implements FileSystemInterface {
      public function write($file, $data) {
         // открываем файлик, пишем данные
      }
    
      public function read($file) {
        // открываем файлик, возвращаем данные
      }
    }


    Вдруг, кому-то захотелось файловую систему в облаке. Окей, не проблема, реализуем это:
    class CloudFileSystem implements FileSystemInterface {
      public function write($file, $data) {
         // открываем соединение с облаком, пишем данные
      }
    
      public function read($file) {
        // открываем соединение с облаком, возвращаем данные
      }
    }

    Пусть у нас есть кой-то код, работающий с файловой системой, назовем его "Хранилище файлов". Пусть он выглядит примерно так:

    class FileStorage {
      protected $Fs;
      
      public function __construct(FileSystemInterface $Fs) {
        $this->Fs = $Fs;
      }  
    
      public function saveFile() {
        $this->Fs->write('file.txt', 'file data');
      }
    
      public function getFile() {
        return $this->Fs->read('file.txt', 'file data');
      }
    }


    Отлично! Теперь мы можем хранилищу файлов отдать любой объект с реализованным интерфейсом FileSystemInterface. Пример:

    // Хранилище файлов работает с файловой системой ОС:
    $FS = new OSFileSystem();
    $FileStorage = new FileStorage($Fs);
    $FileStorage->getFile();
    
    // Хранилище файлов работает с файловой системой в облаке:
    $FS = new CloudFileSystem();
    $FileStorage = new FileStorage($Fs);
    $FileStorage->getFile();


    Использование интерфейса, в данном случае. позволяет нам писать только реализацию работы файловой системы, а бизнес-логика, работающая с файловой системой никак не меняется, она знает, что в любом случае файловая система реализует интерфейс FileSystemInterface и может без опаски использовать методы этого интерфейса.
    Ответ написан
    14 комментариев
  • Современные самые часто используемые инструменты для веб-разработки?

    Freika
    @Freika
    Senior Ruby on Rails developer
    stackshare.io, а все, что вам тут скажут - вкусовщина и приведет к холивору очередному.
    Ответ написан
    Комментировать
  • Какое решение подобрать для почтового сервера?

    @MechanID
    Админ хостинг провайдера
    Вариант первый - поставить и забыть это Zimbra: быстро практично но мало опыта
    плюсы: быстро и зачастую работает из коробки.
    минусы: если чтото сломается вы врядли сходу разберетесь что не так.

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

    Самые часто используемые компоненты бесплатных почтовых систем:
    ОС - на выбор Centos или Debian, если времени много и хочется бонусный опыт то Gentoo.
    exim или postfix - smtp сервер
    dovecot или courier imap - pop3/imap сервер
    Базу где хранить логины пароли и тд это может быть как текстовичок так и БД MySQL или Postgres
    далее наверно захочется спамфильтр - spamassasin, amavisd
    антивирь - clamav
    сервер сайд фильтры для почты (раскладывать почту по папкам на основании правил) sieve
    вебморду для доступа в почтовые ящики squirremail. roundcube, horde и тд
    вебморду для управления пользователями (если в БД) postfixadmin

    вот както так.
    Ответ написан
    2 комментария
  • Как вы начинаете вёрстку сайта?

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

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

    dunmaksim
    @dunmaksim
    Технический писатель
    1. Создаю каталог для проекта
    2. Инициализирую Bower
    3. Устанавливаю нужные пакеты, например, Twitter Bootstrap, Angular, jQuery и т.д.
    4. Ставлю Grunt, плагины для него и т.д.
    5. Запускаю EMACS и создаю index.html
    6. С помощью Emmet создаю шаблон, который уже начинаю заполнять.
    7. В каталоге src создаю папки less, js и т.д.
    8. Попутно пишу задачи для Grunt
    9. Если в выбранном фреймворке не хватает какого-либо класса для стилизации элемента, сначала описываю стили прямо в шаблоне, в свойстве style. Затем при необходимости выношу их оттуда в LESS в виде одного или нескольких классов.
    10. ??????????
    11. PROFIT!!!
    Ответ написан
    15 комментариев
  • Как вы начинаете вёрстку сайта?

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

    Никаких заглушек. Вообще. Никогда такого не делал, потому что зачем она нужна, если есть graceful degradation вплоть до IE8?

    Либо предлагаю оставить кроссбраузерность только для новых браузеров. Никто еще не оставил =)))
    Ответ написан
    Комментировать
  • Как начать работать удаленно или фрилансить, если даже проекты по мизерной цене вызывают затруднения?

    MegaMufa
    @MegaMufa
    Я бы посоветовал вам устроиться на некоторое время работать в офис. Работа в команде очень сильно помогает поднять свой уровень. В этом есть несколько плюсов:
    1. У вас всегда под рукой есть ментор, который может подсказать как решить поставленую перед вами конкретную задачу. Знания, получаемые таким образом, усваиваются намного лучше. Вы лучше понимете, как применять свои навыки.
    2. К окманде работает несколько человек, каждый со своим мнением и кругозором. Общение на обеде, за кофе и на обсуждениях проектов поможет ваам расширить свой профессиональный кругозор. Вы узнаете про многие технологии. В данный момент они вам не понадобытся, но вы будете знать о них, во время принятия решений в будущем.
    3. Устраиваясь на работу в офис стажером (или новичком, в общем неопытным специализстом), вы ставите в известность своего работодателя. Он в замен на пониженый оклад (у начинающего программиста ЗП, конечно ниже), помогает вам обучаться, выделяя вам ментора и давая практику.
    4. Вы преобретаете опыт решения реальных кейсов. В дальнейшем вы будете знать, как решается большинство типовых задач.
    5. В спокойной, но реальной обстановке получите опыт обучения "на лету" и поиска нужного материала.

    Я, когда начинал, тоже страдал такой проблемой. Год работы в комманде из 7 программистов стал для меня сильнейшим рывком. За этот год я поднялся больше, чем за предядущие три года самообучения. Поработал, получил опыт (и кучу положительных эмоций от общения с коллегами), потом спокойно перешел на удаленку.

    Мой вам совет: поработайте некоторое время в команде.
    Ответ написан
    6 комментариев
  • Разница между background: url('...') и background: url(...)?

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    Если в значении функционала url() не присутствуют пробельные символы (пробелы, табуляция, переносы строк), кавычки и скобки, то разницы нет никакой.
    Пример — ссылка, data:uri в кодировке base64.

    Update: После обсуждения с Алексей Уколов внёс коррекцию

    Если же в значении могут появиться пробельные символы, кавычки и скобки, то при отсутствии обрамляющих кавычек их нужно экранировать (каждый символ).
    Если же обрамляющие кавычки есть, то экранировать нужно только внутренние кавычки в том случае, если они аналогичны обрамляющим. Если же обрамляющие и внутренние кавычки разные (например, внутри двойные, снаружи одинарные и наоборот), то никаких дополнительных действий не требуется.
    Пример — data:uri в кодировке utf8.

    Спецификация:
    Parentheses, whitespace characters, single quotes (') and double quotes (") appearing in a URL must be escaped with a backslash so that the resulting value is a valid URL token

    Пример jsfiddle.net/petroveg/cexbhq4e/6

    8192c6b0c21d43afa0b9b164af297655.png
    Ответ написан
    Комментировать
  • Почему адаптивная вёрстка не работает, на телефоне?

    Скорее всего вы забыли прописать
    <head>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    </head>
    Ответ написан
    3 комментария
  • Верстка в Linux?

    zolt85
    @zolt85
    Программист
    А я Вам так скажу. Выберите Mac. Эта вся мощь командной строки + обилие подходящего софта.
    Ответ написан
    3 комментария
  • Верстка в Linux?

    zorro76
    @zorro76
    Я перешел с винды на Ubuntu 3 месяца назад. Все ок и все работает должным образом. Начиная от командной строки и заканчивая редактором. А то что нет полноценного Photoshop это миф. Посмотри тут https://www.youtube.com/watch?v=wjmQJckOATM И собственно зачем Photoshop верстальщику, понятно что для посмотреть макет и нарезать, все. Правда все это можно сделать и на gimp, но тут дело вкуса. Лично я за продукт Adobe assets.adobe Все остальное настраивается и работает на Linux в разы проще и быстрее. node, npm, bower, gulp, grunt, git ... да собственно все, что нужно фронт-энд разработчику. Тот же looftblog выложил видео с настройкой среды разработчика на Linux https://www.youtube.com/watch?v=DfSm7SVq4LA

    UPD: и да сейчас вообще Avocode рулит
    Ответ написан
    4 комментария
  • Какую систему управления версиями посоветуете для веб-разработки (PHP, js, html/css)?

    Adamos
    @Adamos
    Как страшно мучаются люди под виндами! И главное - зачем?!
    Linux + PhpStorm + git, который в тот Шторм, собственно, встроен по умолчанию.
    Ответ написан
    4 комментария