Пользователь пока ничего не рассказал о себе

Достижения

Все достижения (28)

Наибольший вклад в теги

Все теги (207)

Лучшие ответы пользователя

Все ответы (480)
  • Почему стали популярны less, sass, ruby on rails, bower, grunt? И зачем они нужны?

    Ну вот, предположим, ты делаешь фронтенд для своего сайта. Нужно заверстать макеты. Можно, конечно, писать и на HTML, но довольно нудно писать все теги и потом их закрывать. Тут как раз предложили emmet. То есть пишешь в редакторе CSS-подобный селектор, нажимаешь Таб, и он превращается в HTML. Отлично, а нельзя ли сразу так и писать? А ведь можно, для этого есть, например, шаблонизатор Jade.

    Замечательно. Дальше никуда без CSS. Вот только плохо постоянно копипастить цвета и размеры элементов, да и код кое-где повторяется. И для этого как раз есть CSS-препроцессоры, например, Less и SASS, они умеют переменные, вложение правил, миксины для повторяющегося кода. SASS даже мощнее: есть два стиля написания кода — как в Jade и как в обычном CSS, да и всякие функции — даже БЭМ при желании на нём завести можно.

    Отлично, теперь можно скачать Bootstrap, иконки Font-Awesome, jQuery, какой-нибудь фреймворк, ещё парочку библиотек и вперёд. Стоп. У нас XXI век как-никак, пускай компьютер сам и скачает, да ещё и обновлять быстрее будет. Для этого как раз есть менеджер пакетов Bower. Он не просто скачает все компоненты, но и пропишет их в файл с указанием версий, заодно и требуемые зависимости подберёт, а потом одной командой установить или обновить можно будет.

    Круто. Вот бы ещё попробовать новую версию JavaScript, ту самую, которая ES6 называлась. Да вот беда, пока что большинство фич из этой версии, те же стрелочки, нативно поддерживается нормально разве что в Файрфоксе и Эдже, что нам явно не подходит. И для этого можно использовать JS-транспилер Babel. Он возьмёт код на ES6 и преобразует в соответствующий код на ES5. Так же можно и CoffeeScript попробовать.

    Упс, попробовали новую вёрстку, а она в некоторых браузерах расползлась. Надо вендорные префиксы добавить, можно, конечно, и для CSS-препроцессора миксины добавить, вот только для многих случаев они получатся жутко неудобные. Выход опять же есть — CSS-постпроцессор, например, Autoprefixer. Просто указываешь ему минимальные версии браузеров, а он сам в нужных местах префиксы сделает.

    Ужас, это все эти команды вручную вызывать что ли?! Нет, конечно. Для этого и существуют системы сборки, такие как Grunt и Gulp. Мало того, что они просто все вышеперечисленные команды сразу вызовут, так ещё и помогут объединить и минифицировать CSS- и JS-файлы, и последят за изменением исходников, чтобы сразу выполнить требуемые задачи снова, а также и тесты прогонят — TDD, говорят, теперь тоже в моде.

    Разумеется, в некоторых фреймворках, таких как Ruby on Rails и Laravel, можно настроить Asset Pipeline для автоматизации работы с исходниками, но это уже, конечно, частное решение.
    Ответ написан
  • Почему популярные языки программирования используют английский синтаксис?

    Английский язык более удобен, по сравнению с русским тем, что он аналитический, в отличие от синтетического русского. Это означает на практике, что английские слова не нужно склонять для построения осмысленной фразы. Также в английском удобен порядок слов — слова, стоящие перед существительным, рассматриваются как атрибутивные прилагательные. Например, на условном си-подобном языке можно записать так:
    throw new IntegerOverflowException();

    Представим, как это могло бы звучать на русском:

    throw — «бросить» / «выбросить» [исключение]. Однако в английском языке глаголы в инфинитивной форме также могут выражать повелительное наклонение, то есть throw можно перевести как «брось».

    С new возникает другая трудность. Это слово переводится как «новый», подразумевая новый экземпляр класса. Однако в английском языке не требуется сочетать форму прилагательного с существительными, поэтому после new любое имя класса будет выглядеть естественно: new Book, new Cube, new Exception. По-русски либо придётся оставлять одну из форм, например, «новый», что будет выглядеть странно: новый Книга, новый Исключение; либо использовать сокращение «нов», что не добавит читабельности либо разрешить любую родовую форму в качестве ключевого слова. Как вариант можно использовать и другое слово, например, «экземпляр», но оно довольно длинное — пострадает читаемость, сокращая же до «экз» мы недалеко уйдём от «нов».

    Наконец, нужно перевести IntegerOverflowException. В таких языках, как Java и C# существует соглашение о том, что классы исключений заканчиваются на Exception. Это удобно, поскольку сразу очевидна принадлежность класса, а также очень читабельно: ArithmeticException — арифметическое исключение, StackOverflowException — исключение из-за переполнения стека. Трудность в том, что в английском языке удобно выразить сущность «нанизыванием» атрибутивных прилагательных и существительных, тогда как в русском подобное выразить возможно далеко не всегда. IntegerOverflow — целочисленное переполнение, но даже для OverflowException подобрать подходящее прилагательное затруднительно.

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

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

    Избавиться от такого флуда было бы хорошо, конечно, но что полезного сможет ответить новичок?
    Ответ написан
  • Web разработка в Windows под Linux?

    В Windows 10 есть WSL. Та же самая консольная Убунта. Файлы общие.

    Если этот вариант не подходит, то посмотрите ещё Vagrant и Docker.
    Ответ написан