• Каков путь разработчика web-страниц?

    vicodin
    @vicodin
    Имею некоторый опыт
    На сегодняшний день рекомендую книгу — она небольшая, но даёт небольшое представление о технологиях.
    Ответ написан
    1 комментарий
  • Что такое Less и Sass?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Лень двигатель прогресса. Хороший пример - принцип DRY - Don't repeat yourself. Я весьма подозреваю что вы стараетесь соблюдать этот принцип когда делаете макеты или чем вы там занимаетесь. Так же я весьма уверен что вы хотя бы пытались чуть автоматизировать рутину своей повседневной работы. Так же у вас могли быть ситуации когда вы переиспользовали какие-то элементы. Мало ли.

    Так вот... CSS это тупая таблица стилей. Селектор и стили, ничего сверх умного тут придумать нельзя. Лет 5-10 назад было довольно модно держать один мегажирный CSS файл на 10К+ строк и радоваться жизни внося все больше изменений и т.д. Соответственно даже если вы соблюдаете всякие правила модульной верстки и все такое, у вас возникает несколько проблем:
    • организация стилей, то есть держать все в одном файле не удобно особенно когда проект длится годами
    • Дублирование стилей и селекторов. По мере развития проекта появляются какие-то снипиты которые можно реюзать. Так же у вас может появиться масса однообразных селекторов отличающихся лишь немного. При модульных подходах вложенности редко имеет место быть но все же имеет. Но не будем забывать что большинство фигачит селекторы просто так. В итоге если мы переместили блок или переименовали класс какого-то блока нужно отредактировать еще массу селекторов.
    • Привязка размеров и параметров к другим стилям, например у вас в стилях задана ширина блока, от нее зависят другие параметры, отступы для других блоков и т.д. Да, в css3 появился calc для этого но это было относительно недавно и только с недавних пор можно почти без опаски использовать эту штуку.
    • Таблицы стилей, как и HTML ориентированы на удобный разбор этого добра машиной, но не человеком. Человек же существо ленивое и как-то вот лень лишний раз скобку поставить или точку с запятой. Просто лень.


    Есть так же хорошее правило, или идея если хотите.... Если код можно сгенерить - его лучше сгенерить. То есть для решения всех выше перечисленных проблем придумали препроцессоры. Они как бы были и раньше всех этих scss/less/stylus но как-то не решали всех проблем и т.д. Что в итоге было предложено (перечисляю в том же порядке что и в списке выше).

    • У CSS есть такая штука как @ import. Но не очень круто импортировать сотню стилей в продакшене. Стоит сделать так что бы все стили были склеены при сборке проекта. Эта идея в итоге развилась и если разработчик использует это дело правильно, можно зайти в любой файл со стилями и увидеть список всего от чего зависят эти стили. Какие стили подключаются и т.д. Причем один файл с зависимостями может быть подключен в нескольких файлах а препроцессор сам разберется как и куда все вставлять сгенерив максимально оптимизированный по структуре файл. А разработчик получил четкую структуру файлов и возможность быстро найти где что и от чего зависит.
    • С селекторами проблему предложили решить наиболее логичным вариантом. Если у нас есть вложенные селекторы, то имеет смысл определять их внутри блока этого селектора. Это существенно упрощает поддержку стилей. Так же для управления снипитами и прочим добавили миксины - эдакие параметризованные или нет функции которые выплевывают шматок CSS. До появления штук вроде autoprefixer это был единственный способ писать поддерживаемые стили, использовать плюшки CSS3 и вообще новые плюшки и не сойти с ума от префиксов. Префиксы это только пример, там могут быть самые разные штуки позволяющие грамотно производить реюз стилей
    • Проблему зависимостей значений стилей друг от друга решили... собственно самым очевидным способом - переменные. Это удобно, легко поддерживать и в умелых руках это мощный инструмент. Нужно поменять базовые цвета - не нужно лазить по 100500 блоков и править значения руками, можно поправить переменные и все будет хорошо.
    • Насколько я помню SCSS/LESS не стремились решить эту проблему. Какие-то решения образовывались сами собой с течением времени. В плане минимализма и выразительности пожалуй сейчас самая крутая штука это stylus.


    Что в итоге произошло. В один прекрасный момент какие-то там рубисты придумали SCSS (они вообще не любят все что не в стиле ruby в плане минимализма и выразительности). Затем чуваки подумали и сказали, SCSS это круто но почему-то они используют синтаксис знакомый именно Ruby разработчикам а не обычные для CSS конструкции. В итоге реализовали LESS, причем его уже реализовали на javascript, что с наличием node.js позволило это все добро еще на одной платформе собирать. А так как под эту платформу и так плодили препроцессоры оно удачно вписалось.

    Далее уже шли какие-то модификации дальнейшие, вроде того же Stylus, где синтаксис упростили просто до нельзя.

    Личное мнение. На сегодняшний день я не вижу смысла использовать чистый CSS хоть на малых хоть на больших проектах. Вот вообще никакого.
    Ответ написан
    3 комментария
  • Можно ли сверстать любой шаблон с помощью Bootstrap?

    Trow_eu
    @Trow_eu
    можно, но не нужно.
    Ответ написан
    Комментировать
  • Как можно вытащить фото?

    Sanasol
    @Sanasol Куратор тега JavaScript
    нельзя просто так взять и загуглить ошибку
    Вот хитрюги

    faee99340ccfd0de19851e39b9b6.png
    Ответ написан
    1 комментарий
  • Post и Get запросы, какая между ними разница и что лучше и для каких целей?

    socengel
    @socengel
    7 лет native php в продакшене, онлайн 20000+,
    Общего между ними то что они работают одинаково. Разницы между ними технически никакой. А вот идеологические различия есть.

    Я расскажу о них в контексте PHP. Прошу заметить что протокол HTTP к PHP имеет косвенное отношение потому что он создавался для обмена html страницами а PHP просто расширяет возможности и того и другого.

    GET запрос используется чтобы получить данные а POST чтобы отправить. (Напоминаю что технически они работают одинаково).

    Поэтому в контексте PHP опираясь на эту идеологию сделали следующим образом:
    1. При каждом запуске PHP по умолчанию создаются суперглобальные массивы ($_GET, $_POST).
    2. Если в строке запроса есть вопросительный знак(?). То все что после него считается параметрами GET запроса они представлены в формате 'ключ'='значение' и в качестве разделителя используется знак амперсанда (&)
    Пример:
    GET /index.php?name=Андрей&surname=Галкин
    это строка запроса, тут 2 параметра. эти параметры попадут в массив $_GET.
    3. $_POST заполняется другим способом. содержимое этого массива заполняется из "заголовков запроса". То есть из места, скрытого от глаз в явном виде. Всю рутину по созданию таких заголовков берет на себя браузер. Хотя иногда и что-то редактируется в заголовках в ручную.

    Чаще всего пост запрос используется в формах (для отправки данных).

    Например у нас есть форма для входа 2 поля логин и пароль.

    Представим что мы используем GET метод. Тогда при отправке формы мы перейдем на следующий адрес /login.php?login=Андрей&password=123 согласитесь что так передавать такую информацию совсем не безопасно. Любой может открыть ваш браузер и начиная вводить адрес сайта он из истории может увидеть ваши пароли и логины.

    А вот если бы мы указали методом POST то мы бы получили следующий запрос:
    POST /login.php (login=Андрей&password=123) то что в скобочках было бы скрыто и никак не сохранено в браузере.

    Теперь другая ситуация например форма поиска. Мы вводим текст и получаем страницу с результатами. Вот тут уместнее GET форма. потому что нам было бы удобно сразу иметь ссылку на результат поиска, то есть добавить в строку запроса можно выразится "Публичные параметры", которыми можно поделиться. И как результат в строке браузера будет конкретная ссылка на текущую страницу. Мы можем ее скопировать, и разместить где-нибудь, или например скинуть другу. И получить при переходе одну и ту же страницу. А не просить других людей зайти на сайт и в поиск вбить определенную фразу чтобы получить необходимую страницу.

    В общем подводя итог:
    GET - это чтобы получить определенную страницу в определенном виде ( сортировка, текущая страница в блоге, строка поиска и т.п. ).
    POST - для оправки данных которые не влияют на отображение страницы, в том плане что эти данные влияют только на результат выполнения скрипта ( логины, пароли, номера кредиток, сообщения и т.п. ).

    И еще одна хорошая новость их можно комбинировать, например
    POST /index.php?page=login (login=Андрей&password=123) Думаю я уже достаточно объяснил что из этого получится и какие параметры в какой массив попадут.
    Ответ написан
    2 комментария
  • Какую приколюху можно сделать в гит репозитории на новый год?

    gbg
    @gbg
    Любые ответы на любые вопросы
    Не поздравлять их в онлайне:
    %D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%
    Ответ написан
    Комментировать
  • Как сделать вход в админку прямо с сайта?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Ну когда же люди научатся читать документацию :)

    codex.wordpress.org/Function_Reference/wp_login_form

    Если кратко:
    1. В нужном месте шаблона пишем:
    <?php wp_login_form(); ?>
    2. Профит!

    Если задача сразу перекидывать в админку, добавляем аргумент:
    'redirect' => site_url( '/wp-admin/' )

    Если задача давать доступ в админку только админам, а остальным нет (перекидывать на главную, например), в functions.php добавляем:
    function no_admin_access() {
        if( !current_user_can( 'administrator' ) ) {
            wp_redirect( home_url() );
            die();
        }
    }
    add_action( 'admin_init', 'no_admin_access', 1 );
    Ответ написан
    Комментировать
  • Стоит ли из владельца сайта переходить в дизайнеры?

    donkaban
    @donkaban
    Умею рисовать тени
    Лучше научиться рисовать дорогие картины, денег будет больше. Или начать завтра газом торговать - там, говорят вааще сверхприбыли. Достаточно востребованны сейчас переводчики с китайского, может стоит за недельку изучить китайский язык?
    Ответ написан
    Комментировать
  • Как разделить значение аттрибута и на несколько и вывести их часть?

    knitevision1
    @knitevision1 Автор вопроса
    Ванька Скайуокер
    В общем я даун:

    var string = $('#test').attr('data-date');
    var split = string.split('-');
    
    var year = split[0];
    var month = split[1];
    var day = split[2];
    Ответ написан
    1 комментарий
  • Как правильно сверстать div ленту?

    thewind
    @thewind
    php программист, front / backend developer
    Попробуйте JS библиотеку masonry.desandro.com - всё будет красиво!
    Ответ написан
    2 комментария
  • Какую cms использует toster.ru?

    hell0w0rd
    @hell0w0rd
    Просто разработчик
    joomla
    Ответ написан
    Комментировать
  • Каков базовый набор flat цветов веб- программистов и дизайнеров?

    SPAHI4
    @SPAHI4
    реактовцы - это не девы, а прокидыватели пропсов
    Ответ написан
    Комментировать
  • Как перенести сайт на новый домен с новой структурой url?

    madmages
    @madmages
    Человек прямоходящий
    1. если у вас все старые урлы лежат в базе и просто идет сопоставление со статьсями то тут сделать редиректы просто: добавить на каждый урл новый урл и туда редирект.
    2. если у тебя старые ссылки не лежали в базе а какимто другим образом обрабатывались то очень сожалею... но в этой ситуации тебе нужно знать прос статью те данные которые будут использоваться в новом урлостроении (дата день число час и т.д.) и сделать редиректы со старых урлов на новые

    В любом случае толковых редиректов на чистом htaccess не сделать, тут надо писать логику редиректов
    Ответ написан
    6 комментариев
  • Как перенести сайт на новый домен с новой структурой url?

    Если название постов уникальное.
    1. При пере направлении отправляем название поста, через GET, POST или заголовки.
    2. Ищем страницу $query = new WP_Query( 's=keyword' );
    3. Если хотя бы один пост нашли, выполняем пере направление на этот пост (нам повезёт), не нашли пере направляем на страницу 404.

    Для отделения постов от категорий, можно отправлять дополнительные параметры.
    Категории искать через get_cat_ID( $cat_name );
    Ответ написан
    2 комментария
  • Объясните, зачем нужны документо-ориентированные БД (MongoDB)?

    @Alwake
    Такие БД достаточно востребованы там, где требуется высокая производительность, ведь производительность MongoDB на порядок выше чем у реляционных БД. Об остальных плюсах и минусах можно прочитать тут.
    Ответ написан
    1 комментарий