Социальные сети для программистов

Где запускать в продакшн?

  • Виртуальный хостинг — экономичный вид хостинга: множество веб-сайтов размещено на одном сервере и его ресурсы используются ими параллельно и высоконагруженные проекты могут затормаживать остальных соседей. Если реализуемый вами проект на данном этапе не предполагает размещения больших объемов информации и большой нагрузки, это отличный выбор по соотношению цена-качество.

  • Виртуальный сервер (VDS/VPS)  — эмуляция работы физического сервера, при этом отсутствуют конкуренты на ресурсы. Вы получаете отдельную операционную систему, память, процессорное время и т.д. Это существенно повышает стабильность работы, но обходится несколько дороже и подходит для случаев нагруженных крупных проектов.

  • Выделенный сервер — отдельный физический сервер, предоставляемый клиенту в полное единоличное пользование. Этот вариант подойдет для очень крупных проектов, либо для тех, кому важен полный контроль за собственной инфраструктурой.

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

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

Настройка CodePen — начало

В принципе, больше ничего нас в главном окне CodePen не интересует — ведь нам необходимо самим создавать “нетленные” работы! Для этого сначала нужно зарегистрироваться на CodePen, после чего получаем свой личный кабинет с настройками. Так как первоначально задача стояла в подключении SCSS + Compass в CodePen, то будет решать ее с первых шагов. В правом верхнем углу есть синий значок-аватар, по которому нужно щелкнуть мышью. Раскроется список, в котором необходимо выбрать строку “Your Settings”:

Все настройки CodePen уместились на одной странице и это замечательно! Окно разделено на четыре секции — Syntax Hightlighting, Fonts, Key Bindings, Preprocessor & Library Defaults. В принципе, здесь все интуитивно понятно:

Секция Syntax Hightlighting служит для выбора цветовой схемы подсветки синтаксиса с предварительным просмотром. Можно выбрать одну из пяти, но первая (по умолчанию) самая лучшая.

Секция Fonts помогает выбрать шрифт и размер шрифта. Выбор шрифтов небольшой, но лучше оставить Monaco — он лучше всех смотрится. Размер шрифта можете выбрать, какой вам нравиться.

Секция Key Bindings совсем простенькая — здесь можно выбрать сочетание клавиш при работе в CodePen. Normal — это обычный набор сочетаний клавиш, а Vim для тех, кто привык и хорошо себя чувствует в линуксовом (весьма своеобразном) редакторе Vim.

Секция Preprocessor & Library Defaults самая большая и самая необходимая для нас, ведь ради нее мы и зашли в настройки. В этом разделе можно установить, какие препроцессоры для HTML, CSS и JavaScript будут использоваться в каждом новом проекте, создаваемом в CodePen. В строке HTML Preprocessor ничего не делаем, так как препроцессорами для HTML не пользуемся. В строке CSS Preprocessor выбираем из списка SCSS, а в следующей строке CSS Preprocessor Add-on выбираем библиотеку под SCSS — Compass (for Sass). Строка CSS Reset служит для выбора “CSS-ластика”: CSS Reset или Normalize

Можно также обратить внимание на строчку Prefix Free?, в которой есть возможность поставить галочку:

Prefix Free — это JavaScript, созданный для того, чтобы работать с браузерными префиксами на самом современном уровне. Другими словами, этот скрипт фильтрует созданный CSS-код на предмет наличия в нем браузерных (вендорных) префиксов и проверяет, какие из них нужно использовать на сегодняшний день, а от каких уже можно отказаться. Польза Prefix Free в очистке CSS-кода от лишнего мусора и увеличение скорости загрузки в браузере.

Но продолжим разбор секции Preprocessor & Library Defaults. Три последние строчки относятся к поддержке JavaScript в CodePen. В строке JS Preprocessor выбирается препроцессор JavaScript, в строке JS Library — подключаем библиотеку JavaScript, а в строчке Modernizr? отмечаем, нужна ли нам встроенная поддержка JavaScript-библиотеки Modernizr.

Последняя строчка Auto Run? очень полезна и по умолчанию она включена. Ее задача автоматически обновлять создаваемый проект в окне предпросмотра. Очень удобная функция. К примеру, в jsFiddle этого нет, там нужно самому нажимать кнопку Run каждый раз, когда нужно обновить окно предпросмотра после внесения изменений в исходный код.

Вот и все, что можно или нужно сделать в настройках CodePen. Сохраняем изменения, нажав большую зеленую кнопку Save All Settings в нижнем правом углу окна.

Создание своих пенов на Codepen

Для сохранения написанного вами пена необходимо создать аккаунт. Базовый функционал Codepen бесплатен. На бесплатном аккаунте можно создать только New Pen и New Post.

Прежде чем, создавать новый пен, давайте перейдем на вкладку настройки – Settings. В настройках во вкладке Behavior, есть опция авто-сохранения, галочку не убираем. Но есть и другая опция автообновления, то есть все ваши изменения в коде будут автоматически обновляться в браузере. При вводе кода скрипт автоматически перезапускается и иногда это может мешать, тогда галочку можно убрать с опции авто-обновления и перезапускать обновление вручную через кнопку Run.

Вкладка HTML

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

Но о чем всё это?

Вы уже наверное подумали о переменных в CSS? Но зачем они, если они уже есть в моем любимом препроцессоре?

Да, есть инструменты которые могут нам помочь в неких повторяющихся задачах. Препроцессоры такие как SASS и Stylus поддерживают переменные. Это делает нас более эффективными во время разработки и поддержки широкомасштабных приложений. Тем не менее, их недостаток в том, что довольно сложно произвести изменения во время выполнения кода.

Препроцессоры компилируют всё в стандартный CSS код. Альтернативой могла бы быть генерация кода динамически, как требуется. Но это было бы в конечном итоге довольно затруднительным процессом и к тому же очень медленным.

Подробнее о sys.path

Чтобы узнать, что находится в переменной , запустите в командной строке следующие команды или скрипт содержащий инструкции:

import sys
print(sys.path)

Документация Python для описывает это следующим образом.

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

Давайте рассмотрим порядок, в соответствии с которым интерпретатор Python ищет модули для импорта:

  1. Модули в стандартной библиотеке Python (например, , ).
  2. Модули или пакеты в каталоге, заданном в sys.path:
    1. Если интерпретатор Python запускается в интерактивном режиме:
    2. Если мы запускаем сценарий из командной строки с использованием команды вида :
  3. Каталоги в переменной окружения PYTHONPATH
  4. Значения из переменной , заданные по умолчанию.

Обратите внимание, что при запуске скрипта Python в не учитывается, каков ваш текущий «рабочий каталог». Учитывается только о путь к сценарию

Например, если интерпретатор запущен из папки и вы запускаете команду , то включает , а не .

Кроме того, значение будет использоваться для всех импортированных модулей. Например, предположим, что мы вводим команду . Пусть импортирует , и пусть выведет содержимое переменной . Выводимое содержимое переменной будет включать (путь к ), а не (путь к ). Это означает, что скрипт может вызывать , поскольку файл находится в .

Использование объектов из импортированного модуля или пакета

Существует четыре различных вида синтаксиса для записи операторов импорта.

Пусть любое имя после ключевого слова .

  • если — это имя модуля или пакета, то для использования объектов, определенных в , вам нужно написать .
  • если является именем переменной, его можно использовать непосредственно напрямую.
  • если является именем функции, то его можно вызвать с помощью инструкции .

Необязательно, но после любого оператора может быть добавлена инструкция вида , например, . Эта инструкция переименовывает в в пределах файла скрипта

Обратите внимание, что имя далее не действительно и его использовать не имеет смысла. Например

Аргументом при ключевом слове может быть одно имя или список из нескольких имен. Каждое из этих имен может быть также переименовано с помощью ключевого слова . Например, следующие инструкции импорта в файле в будут работать правильно: , .

Рассмотрим следующий пример: в файле необходимо импортировать функцию из файла .

Решение №1:

from packA.subA.sa1 import helloWorld

затем мы можем вызывать функцию непосредственно по имени:

a = helloWorld()

Решение №2:

# следующие две строки кода эквивалентны
from packA.subA import sa1
import packA.subA.sa1 as sa1

затем мы должны будем использовать в качестве префикса к имени функции имя модуля.

x = sa1.helloWorld()

Иногда это решение предпочтительнее Решения №1 для того чтобы сделать явным вызов функции из модуля .

Решение №3:

import packA.subA.sa1

Далее необходимо использовать полный путь:

x = packA.subA.sa1.helloWorld()

Использование dir() для проверки содержимого импортированного модуля

После импорта модуля, используйте функцию для того чтобы получить список доступных имен модуля. Например, предположим, что вы импортируете . Если в определена функция , то инструкция в числе прочих выведет имя .

>>> from packA.subA import sa1
>>> dir(sa1)

Импорт пакетов

Импорт пакета концептуально эквивалентен импорту файла из папки пакета в качестве модуля. И действительно это так. Вот как Python рассматривает импортируемый пакет:

>>> import packA
>>> packA
<module 'packA' from 'packA\__init__.py'>

Скриптам, импортирующим пакеты, доступны лишь те объекты, которые были объявлены в файле пакета . Например, так как каталог не содержит файла , то вызов инструкции в Python 3.3+ будет мало полезен, поскольку никакие объекты при импорте пакета не будут доступны. Последующий вызов завершится неудачей, поскольку объект не будет импортирован.

Работаем с SCSS + Compass в CodePen

Настройку подключения SCSS + Compass в CodePen мы выполнили, осталось посмотреть, реально ли все работает. Да, действительно все нормально! Собственно, сам код SCSS внимательный читатель мог увидеть уже на рисунке “Основное окно CodePen”, когда говорилось о трех основных окнах CodePen. Там же можно было заметить, что рядом с надписью CSS появилась еще одна — (SCSS), что говорит о включенной поддержке SCSS.

На рисунке хорошо видны переменные SCSS и подключения mixin’ов из библиотеки Compass для создания радиуса скругления (), линейного градиента () и тени блока ():

Двойной щелчок мыши на значке квадратика в правом верхнем углу окна CSS(SCSS) распахивает его на всю ширину окна браузера для большего удобства работы с кодом:

А щелчок мыши на самой надписи CSS переводит окно в режим компиляции, то есть перевода SCSS в готовый CSS-код:

Клавиатурные сокращения CodePen

В заключение можно упомянуть горячие клавиши для работы в CodePen. В принципе, ничего неожиданного в списке сочетания клавиш для CodePen нет, кроме, может быть, единственного — новый проект (Pen) создается с помощью Ctrl+P (а ожидался стандартный Ctrl+N). Также заметно, что сочетания клавиш обозначены под Mac OS X (это естественно — у автора проекта рабочий компьютер Mac). Но это не значит, эти горячие клавиши не будут работать и под Windows:

Заключение

На этом статья о сервисе CodePen завершена. Конечно, можно было бы упомянуть о добавлении проектов Pen в Коллекции, о кнопке удаления Pen. Но я оставлю это в качестве “домашнего задания” для тех, кому это нужно.

Предложение, от которого невозможно отказаться

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

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

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

Прежде всего, мы сталкиваемся с ограничением на возраст. Социальные сети могут регулировать вопрос требование к возрасту по-разному, однако, как правило, возраст для вступление в сообщество зависит от информации, размещенной на данном портале.

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

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

Jsbin

Плюсы:

  • моментально применяет изменения, сделанные в коде;
  • также моментально применяет их в любом браузере, где открыт этот сниппет (очень удобно для тестирования в разных браузерах, на разных виртуалках и мобильных устройствах);
  • показывает ошибки в JS;
  • умеет комментировать/раскрывать код под Ctrl + /;
  • есть Less.

Минусы:

  • сохраняет сниппеты в виде одной ленты, где они сгрупированы по родительскоу сниппету, внутри этой группы — по времени создания. Ручной группировки нет;
  • если открыть сниппет и начать его редактировать, он сохранится под новым номером. Это приводит к неконтролируемому росту их количества: у меня уже больше 1000, и как в них искать нужное — непонятно. Кроме того, если где-то вставить сниппет на страницу — после редактирования надо будет обновить в коде фрейма номер сниппета;
  • нет препроцессоров нет Sass;
  • ломает кириллицу: в сниппетах внезапно можно обнаружить кракозябры вместо русского текста.

Jsbin работает как личная песочница, нет взаимодействия с другими пользователями, не нужно забоиться о том, что бардак рабочий процесс в твоей песочнице кто-то увидит : ) Отсутствие взаимодействия с другими пользователями сервиса помогает не отвлекаться от кода, это можно считать плюсом.

С этим читают

Как пользоваться Codepen

Для начала работы на главной странице нужно выбрать «New Pen», создав тем самым новый проект (здесь он называется Pen). Вы увидите пустую «заготовку», состоящую из 4 окон.

Первые три окна рабочего пространства служат для написания кода на HTML, CSS и JavaScript. Ниже в редакторе увидите соответствующий результат реализации проекта. Конфигурацию отображения среды можно изменять по своему усмотрению, например минимизировать окна и т.п.

В настройках (пиктограмма шестеренки) есть выбор нужного препроцессора для HTML, CSS и JavaScript, о которых мы говорили выше. Для JS доступна установка подключаемых библиотек, JQuery, например. Индивидуальная настройка каждого проекта в онлайн редакторе HTML кода — весьма полезный инструмент.

Также при кодинге нужно не забывать, что все ссылки и url-адреса в CodePen должны быть абсолютными (не относительными), т. е. указывать на полный адрес ресурса.

Для публикации разработанного примера найдете в правом нижнему углу страницы 3 кнопки:

Во всплывающем окне появится парочка настроек для встраивания кода, и вы сможете выбрать формат экспорта: HTML, iframe + даже специальные шорткоды для WordPress.

Кроме того, в меню и на главной странице Кодпен найдете такие фишки:

  • Pens — примеры кода с сортировкой по новым/популярным и т.п.;
  • Просмотр полноценных проектов (а не простых сниппетов);
  • Post — заметки из блогов и полезные публикации.
  • Collections — подборки нескольких Pens по определенным темам.
  • Еще есть вакансии, блог разработчиков и список полезных ссылок.

Итого. Вообще чтобы понять всю полноту представляемых ресурсом CodePen опций, советую зарегистрироваться там и поэкспериментировать. Такой визуальный онлайн редактор HTML CSS и JavaScript кода может пригодиться каждому веб-разработчику, вне зависимости от уровня квалификации.

А вы пробовали данный сервис в своей работе? Как впечатления? Или используете альтернативные решения? 

Давайте посмотрим на пример.

Если вы продаете кроссовки Nike на своем веб-сайте и два пользователя просматривают страницу с этим продуктом — первый — из Калифорнии, а второй — из Нью-Йорка.

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

Все пользователи видят одно и то же изображение товара на сайте

Такой контент, который не изменяется для каждого пользователя, является отличным кандидатом для обслуживания из кэша CDN. Если бы вы использовали свой сервер напрямую, этот сервер также отправил бы то же изображение. Контент, подобный этому изображению, который не изменяется или остается «статичным» для пользователей, называется статическим контентом. Javascript, который влияет на взаимодействие на вашем сайте, и CSS, который влияет на внешний вид вашего сайта, также остается неизменным для всех пользователей и также классифицируется как статический контент.

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

Изображение остается тем же, но каждому пользователю предлагаются разные предложения

Такой контент называется динамическим контентом. Он может меняться в зависимости от пользователя (например, рекомендации), в зависимости от местоположения (скидки и доставка) или в зависимости от времени (например, скидка, которая предоставляется до полуночи). Становится трудно, если не невозможно, хранить такой контент в кеше CDN в течение длительного времени. Представьте, что предложение, которое должно было истечь в 13:00, продолжает храниться и доставляться с сервера CDN до 15:00. Это приведет только к путанице для ваших пользователей и падению продаж.

Может быть, вы можете сохранить тарифы доставки в течение нескольких часов в CDN, потому что они меняются не очень часто. Однако контент, подобный рекомендациям для пользователя, может часто меняться, когда пользователь перемещается по другим продуктам, что делает его не кэшируемым. И если вы не можете сохранить его в CDN, тогда вам не следует вообще использовать CDN для такого контента.

Примечание. Это простой пример. В некоторых случаях, например, в качестве новости на новостном веб-сайте с большим трафиком, даже короткое время кэширования в 1 или 2 минуты может быть полезным для снижения нагрузки на серверы при ускорении доставки контента. Многие сайты делают это на практике. Кроме того, CDN по-прежнему могут выступать в качестве первого уровня безопасности, и поэтому имеет смысл использовать его, даже если вы не кешируете какой-либо контент на них.

Наиболее распространенный вариант использования CDN — кэширование контента и его доставка конечному пользователю, что сокращает время загрузки страницы. Это означает, что контент должен кэшироваться на границе CDN как можно дольше. Чем дольше он остается, тем дольше вы получаете преимущество от быстрого времени загрузки. Например, Google PageSpeed наказывает за то, что не используется длительное время кеширования для статического контента.

PageSpeed выдает предупреждение, связанное с политикой кэширования

Однако вы должны быть в состоянии контролировать, как долго содержимое остается в CDN, и как вы заставляете его обновляться, если содержимое вашего сервера изменилось.

Например, CDN хранит на своих пограничных серверах копию черной кроссовки Nike, о которой мы говорили ранее. Даже если вы измените изображение на исходном сервере, файл, сохраненный в CDN, не изменится автоматически.

Для того же образа продукта кэш CDN имеет версию, отличную от исходного сервера. Пользователь продолжает получать изображение из кеша CDN.

Существуют некоторые стандартные заголовки элементов управления кэшем и рекомендации по обновлению ваших ресурсов (и их URL-адресов), которые в совокупности обеспечивают актуальность содержимого в CDN и синхронизацию с обновлениями на ваших серверах. Эти методы подробно описаны в этом руководстве — The Ultimate Guide To Caching Static Assets  и для их понимаю потребуется некоторые технические знания о HTTP-запросах.

Основные фишки и функции CodePen

Сразу следует оговориться, что рассматриваемый сервис не охватывает все разнообразие языков программирования. Вероятно, это достаточно труднореализуемая задача для онлайн решений, лучше в таких случаях юзать специализированный софт по типу PHP IDE Codelobster, Phpstorm и др. Codepen ориентирован исключительно на Web и поддерживает язык разметки HTML, каскадные таблицы стилей CSS + JavaScript, что наиболее часто применяются в создании сайтов. Этих трех направлений вполне достаточно, чтобы обеспечить востребованность сервиса в профессиональной среде.

В принципе, возможности CodePen отчасти похожи на различные редакторы кода, которые многие используют в своей работе: начиная от Notepad++, Sublime Text и заканчивая чем-то посложнее вроде Webstorm. Конечно, я говорю не о полной копии всех фишек софта, а лишь о базовых функциях написания кода. Однако вместе с тем данный CSS / HTML онлайн редактор обладает уникальными особенностями отличающими его от, названных выше, конкурентов. Я бы выделил 4 ключевых аспекта.

1. Всеобщая доступность

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

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

2. Легкость работы и онлайн просмотр кода

Наличие виртуального сервера в Кодпен дает возможность просматривать код совместно с результатом его выполнения. Вам нет смысла устанавливать и настраивать сервер и дополнительные приложения на локальном компьютере. Не смотря на то, что наборы XAMPP и Денвер достаточно просты в использовании, вариант с визуальным редактором кода онлайн вообще не требует никаких усилий. Такой подход весьма удобен для изучения верстки с нуля.

3. Профессиональные инструменты

Создатели CodePen стараются обеспечить вам как можно лучший опыт разработки. Поэтому в настройках сервиса есть парочка интересных вещей, которые многие спецы оценят:

  • Для css редактор позволяет использовать библиотеки Normalize.css или Reset.css. Также можно подключить -prefix-free / Autoprefixer.
  • Имеется интеграция с CSSLint, который проверяет правильность написанного CSS кода.
  • Поддержка Emmet и Vim Binding с разными горячими клавишами и фишками для ускорения кодинга.
  • Данный визуальный онлайн редактор HTML CSS и JavaScript корректно рабоает с препроцессорами: HAML, Markdown, Slim для HTML, в стилях — Sass и SCSS, плюс CoffeeScript в JS.

И все это без каких-либо установок дополнительного софта на компьютере!

4. Имеющееся сообщество

Еще один повод пользоваться CodePen — достаточно большое количество опытных программистов, зарегистрированных там. Сайт уже давно стал площадкой для общения специалистов всех уровней квалификации. Иногда можете получить советы от более продвинутых разработчиков или подсказки по ошибкам.

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

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

Режим совместной работы

Способность сотрудничать и преподавать с CodePen может быть его большим преимуществом. Уже есть множество отличных инструментов для совместной работы программистов, но подход CodePen прост и интуитивно понятен.

Профессиональные пользователи CodePen могут создать новое перо и открыть его для совместной работы в меню « Изменить вид» . Это превращает ссылку пера в совместное приглашение, рассчитанное на большое количество людей, в зависимости от вашего плана CodePen Pro.

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

Любой, у кого есть ссылка, может присоединиться и использовать функцию чата в браузере, независимо от того, являются ли они профессиональными пользователями или даже имеют учетную запись CodePen. При условии, что автосохранение отключено, только владелец ручки может сохранять любые изменения, что делает его безопасным способом открыть свой код для других без риска.

Открытый характер этого режима полезен для начинающих, так как вы можете пригласить практически любого в свое перо, чтобы помочь вам в решении сложной задачи. Это также удобный способ узнать свой путь, так как он идеально подходит для проведения собеседований с потенциальными сотрудниками, и уже профессионально использовался для этого!

На каком языке программировать?

Пожалуй, один из самых сложных вопросов. Обилие платформ, апологетов разных подходов и архитектур порождает множество противоречивых фактов, однако мы постарались собрать выжимку из .

Но прежде стоит остановиться на двух языках, не являющихся языками программирования в традиционном смысле, без которых, однако, дальнейшее погружение в веб-программирование рискует обернуться пустой тратой времени. Речь идет о CSS и HTML.

HTML — язык гипертекстовой разметки документа. Скелет, который задает очередность расположения элементов и объясняет их для веб-браузера.

CSS — формальный язык описания внешнего вида документа, написанного с использованием языка разметки. Если коротко, то это те правила, которые объясняют веб-браузеру — как именно должны выглядеть отображаемых им элементы со всеми необходимыми дизайнерскими уточнениями по размерам, цветам и другим параметрам.

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

  • JavaScript — мультипарадигменный язык программирования. Поддерживает функциональный, объектно-ориентированный и императивный стили.

    JavaScript является одним из основных языков, применяемых в разработке интерактивных пользовательских интерфейсов.

  • SQL — декларативный язык программирования, применяемый для работы с реляционными базами данных. Если вы предполагаете работать с базами данных на регулярной основе — это тот язык, изучением которого стоит озаботиться.

  • Java — сильно типизированный объектно-ориентированный язык программирования. Приложения Java обычно могут работать на любой платформе с помощью виртуальной Java-машины, что делает этот язык чрезвычайно универсальным в применении. Java используется такими проектами, как: Amazon, eBay, LinkedIn и другими.

  • Python — высокоуровневый язык программирования общего назначения с минималистичным синтаксисом. В частности используется для создания масштабируемых многопользовательских веб-приложений. Используется в таких сервисах, как: Dropbox, YouTube, Instagram и других.

  • C# — объектно-ориентированный язык программирования, активно продвигаемый Microsoft и позволяющий создавать сайты на платформе .NET Framework.

  • PHP — высокоуровневый скриптовый язык для создания динамических веб-сайтов. Имеет довольно простой синтаксис, поэтому начать программировать на этом языке довольно просто даже новичкам, не обладающим представлениями о принципах разработки кода.

    За это (и многое другое) PHP подвергается критике профессионального сообщества программистов, что, однако, не мешает ему занимать одно из лидирующих мест среди языков, используемых для создания динамических веб-сайтов.

  • C++ — компилируемый, статически типизированный язык программирования общего назначения. Мощный, с обширными библиотеками. Особенно полезен для высокопроизводительных приложений.

  • C — классика, компилируемый, статически типизированный язык программирования общего назначения. Для веб-программиста скорее будет полезен с точки зрения более глубокого понимания процессов, нежели иметь прикладное значение.

  • TypeScript — язык программирования, позиционируемый как расширяющий возможности JavaScript. По сути является надстройкой над JavaScript и обратно совместим с ним.

  • Ruby — динамический, рефлективный, интерпретируемый высокоуровневый язык программирования. У Ruby лаконичный и простой синтаксис и, кроме того, все в нем является объектами, например число «1» — это экземпляр класса Integer. Примерами использования могут служить: GitHub, Basecamp, Shopify и другие.

  • Swift — открытый мультипарадигмальный компилируемый язык программирования общего назначения. Создан компанией Apple целенаправленно для разработки iOS и OS X приложений.

Codepen – копилка наработок

Во вкладке Pen, вы можете увидеть готовые примеры, как ваши коллеги, реализуют те или иные задачи по веб-разработке и поучиться у них. Так же очень удобно воспользоваться поиском, если вас интересует что-то конкретно. Например вы хотите посмотреть, как сделать «гамбургер меню», так и пишите «burger menu» в поиске, на английском найдется гораздо больше пенов.

Понравившийся вам пен можно для начала добавить в свою коллекцию – Add collection. В дальнейшем вы можете скачать zip-архивы с нужными пенами, нажав на Export.zip, в правом нижнем углу, в архиве находятся HTML, CSS и JS файлы, немного изменив стили под свой проект, можно избавить себя от рутины «написания однотипного кода» стандартных веб-компонентов.

Кроме того, открыв чужой пен, можно сделать ему Fork, что значит ответвление, по сути вы этот пен переносите на свою доску и можете делать с ним, что хотите – оставить как есть или внести изменения в код.

Главная страница CodePen

Первое, что необходимо, это конечно же зайти на данный ресурс по адресу http://codepen.io. Тем, кто первый раз попал сюда, может зарябить в глазах, но это с непривычки:

Главная страница CodePen

Самое основное на главной странице – это окна с готовыми работами других веб-мастеров. То есть, люди работали в этом сервисе, написали и протестировали какой-то код; и этот код в готовом виде демонстрируется в различных окошках проекта CodePen. Выборка работ производится в случайном порядке, насколько я понимаю.

Внизу каждого “окошка” с готовой работой показаны метаданные – информация об авторе. К примеру, рассмотрим код, созданный автором по имени Yaroslav. Видим, что веб-мастер экспериментировал с созданием на CSS различных продвинутых типов background (насколько правильно я понял его работу чисто по внешнему виду, исходный код не смотрел). Комментариев к его работе никто не пожелал оставить, хотя ознакомилось с ним уже 129 человек и семерым из них он даже понравился.

При щелчке мыши на любом из заинтересовавших проектов (прямо в окошко) открывается его исходный код, с которым можно детально ознакомиться при желании.

Codepen

Плюсы:

  • есть CSS-препроцессоры (очень существенное преимущество);
  • есть группировка сниппетов в коллекции, есть теги и поиск по сниппетам;
  • есть группировка по другим признакам, например — по популярности, а также можно посмотреть сниппеты, которые вам понравились или которые вы скопировали к себе;
  • можно открыть сниппет, отредактировать и сохранить — его адрес останется таким же, и не нужно обновлять коды фреймов с этим сниппетом. Можно открыть сниппет на другом компе (под своим аккаунтом), отредактировать и сохранить — это будет тот же сниппет, и его не нужно будет искать в истории;
  • сниппету можно добавить название и описание.

Минусы:

  • добавление в коллекцию неявное. На странице сниппета непонятно в какой коллекции он находится и добавлен ли вообще в какую-то подборку. При добавлении сниппета в коллекцию этого тоже не видно. Как-то очень криво сделано, надеюсь, исправят;
  • изменения в коде применяются с небольшой задержкой и только в окне редактирования;
  • живой предпросмотр в других браузерах — привилегия PRO-аккаунта ($9/month or $75/year);
  • периодически перестает обновлять превью (что может быть понятно не сразу), тогда приходится сохранять сниппет и перегружать страницу;
  • не показывает ошибки в JS;
  • комментирование кода по Ctrl + / работает только для выделенного блока. Нельзя быстро закомментировать строчку. Чтобы раскомментировать блок, нужно выделить его ещё раз, и не факт, что он раскомментируется — может ещё раз завернуться в комментарии, что очень неудобно;
  • не запоминает раскладку страницы.

Оба редактора умеют разворачивать Emmet-комбинации и сокращения CSS-свойств.

Codepen работает как социальная сеть: можно смотреть работы других пользователей, лайкать их, форкать, оставлять комментарии.
Для меня первые комментарии к моим работам и лайки были полной неожиданностью : ))
Можно смотреть на работы других пользователей, вдохновляться и находить новые идеи. Работы на главную страницу ресурса выбираются вручную, поэтому там много интересного. Также можно посмотреть самые последние и самые популярные сниппеты.

Свои сниппеты при этом представлены в виде удобной витрины с живыми превью. Их можно посмотреть по тегам или по коллекциям.

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

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
Люкс-хост
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: