SlideShare a Scribd company logo
Спецкурс ОмГУ-2014 
Занятие 9 
Code conventions 
and best practices
Красивая картинка о том, каким 
Спецкурс ОмГУ-2014 
должен быть ваш код 
http://rhr.me/pres/mcss/
Спецкурс ОмГУ-2014 
Имена CSS селекторов
Спецкурс ОмГУ-2014 
Имена CSS селекторов 
<div class=‘user_login’> 
<div class=‘userLogin’> 
<div class=‘UserLogin’> 
Правильно: <div class=‘user-login’>
Спецкурс ОмГУ-2014 
Имена CSS селекторов 
Ещё примеры неудачных селекторов: 
form#tb3 
div#divmenu 
.row1 
.row2 
#Menu2
Спецкурс ОмГУ-2014 
Имена CSS селекторов 
Хорошей практикой является 
использование соглашений, принятых 
в языке программирования/разметки.
Спецкурс ОмГУ-2014 
Имена CSS селекторов 
… или соглашений, принятых в 
команде
Спецкурс ОмГУ-2014 
Пример CSS классов по 
Яндекс БЭМ 
class=“sub-menu__search search_state_current”
Спецкурс ОмГУ-2014 
Методологии, стайлайды 
Yandex БЭМ (Яндекс) 
MCSS (Одноклассники) 
SMACSS 
Google, Github, Mozilla 
style guides 
WC3 Recommendations 
Idiomatic CSS, JSLint, etc…
Спецкурс ОмГУ-2014 
Руководство по 
форматированию CSS 
http://habrahabr.ru/post/149986/ 
http://codeguide.co/
Спецкурс ОмГУ-2014 
Префиксы JS 
<form class=‘feedback’> 
css: 
.feedback { margin: 5px; } 
.js: 
$(‘.feedback’).click(function(){ 
// code 
})
Спецкурс ОмГУ-2014 
Префиксы JS 
<form class=“feedback js-popup”> 
css: 
.feedback { margin: 5px; } 
.js: 
$(‘.js-popup’).click(function({ 
// code 
})
Спецкурс ОмГУ-2014 
inline-css и js 
<!-- bad --> 
<div style=“float: left;”> 
<p style=“color: black;”> 
</div>
Спецкурс ОмГУ-2014 
inline-css и js 
•HTML код трудночитаем 
•Дублирование стилей для разных 
элементов, дублирование стилей для 
разных html-файлов. 
•Сложно переопределить свойство: 
стили, указанные в атрибуте style 
имеют наивысший приоритет.
Приоритет применения стилей к 
Спецкурс ОмГУ-2014 
элементам 
.html: 
<div class=“cool” style=“color: red;”> 
.css: 
.cool { 
color: black; 
}
Спецкурс ОмГУ-2014 
Производительность CSS 
селекторов 
<section> 
section .news a { 
color: red; 
} 
<div class=“news”> 
<a class=“social” href=“#”>…</a> 
</div> 
</section> 
<a href=“#”>…</a> 
a.social { 
color: red; 
}
Спецкурс ОмГУ-2014 
Производительность CSS 
селекторов 
Браузер выполняет поиск элементов 
справа налево: 
section ⟵ .news ⟵ a
Спецкурс ОмГУ-2014 
Производительность CSS 
селекторов 
Поэтому, нужно стараться избегать 
селекторов, где целевой объект – тэг 
без класса или id 
.news a.social 
лучше, чем 
.news a и .news *
Спецкурс ОмГУ-2014 
Особенности italic шрифтов 
Важно: Если рукописное начертание 
шрифта отсутствует, браузер отрендерит 
italic начертание путём наклона Normal- 
версии шрифта.
Спецкурс ОмГУ-2014 
Особенности italic шрифтов 
Важно: Если рукописное начертание 
шрифта отсутствует, браузер отрендерит 
italic начертание путём наклона Normal- 
версии шрифта.
Спецкурс ОмГУ-2014 
Задание 
• Выполнить верстку по PSD макету 
дизайнера.
Спецкурс ОмГУ-2014 
Вопросы?

More Related Content

PPTX
Стажировка-2014, занятие 9. Code conventions and best practices
PPTX
Презентация на тему "WEB-программирование"
PPT
Лекция 10. Основы CSS.
PPTX
Cпецкурс 2014, занятие 9 (1 часть). Языки разметки
PPT
Webuibasics - Lesson 2 - HTML5 Layouts (in russian)
PPTX
Frontend
PPTX
Спецкурс 2014, занятие 3. Абстракции, именование, документирование
PPTX
Стажировка-2015. Разработка. Занятие 4. Системы контроля версий
Стажировка-2014, занятие 9. Code conventions and best practices
Презентация на тему "WEB-программирование"
Лекция 10. Основы CSS.
Cпецкурс 2014, занятие 9 (1 часть). Языки разметки
Webuibasics - Lesson 2 - HTML5 Layouts (in russian)
Frontend
Спецкурс 2014, занятие 3. Абстракции, именование, документирование
Стажировка-2015. Разработка. Занятие 4. Системы контроля версий

Viewers also liked (20)

PPTX
Курс Java-2016. Занятие 05. Тестирование и Java
PPTX
Стажировка-2014, занятие 10. Бизнес-модели и Lean startup.
PDF
Стажировка 2015. Дизайн. Занятие 5. Адаптивный web-дизайн
PPTX
Стажировка-2014, занятие 3. Тест-кейсы, ручное и автоматическое тестирование.
PPTX
Стажировка-2014, занятие 8. Обзор Rails framework (Ruby)
PDF
Стажировка 2015. Дизайн. Занятие 1. История дизайна, тренды 2015, логотипы.
PPTX
Стажировка-2015. Тестирование. Занятие 2. Планирование процесса тестирования.
PDF
Стажировка 2015. Разработка. Занятие 9. BEM
PPTX
Спецкурс 2014, занятие 5 (часть 1). Исключения и логи
PPTX
Стажировка-2015. Разработка. Занятие 8. Абстракции, именование,документирование
PPTX
Стажировка-2015. Разработка. Занятие 10 (часть 1). Конфиги, сборка, автотесты
PPTX
Стажировка-2014, занятие 4. Планирование процесса тестирования.
PPTX
Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source
PPTX
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 4
PDF
Стажировка-2015. Дизайн. Занятие 4 (2 часть). Цвет в web-дизайне
PPTX
Стажировка-2015. Разработка. Занятие 2. Основы реляционных баз данных
PPTX
Стажировка-2014, занятие 6 (часть 1). Web-приложения
PPTX
Спецкурс 2014, занятие 10. Lean startup
PPTX
Спецкурс 2014, занятие 10. Lean startup
PPTX
Стажировка-2015. Разработка. Занятие 10 (часть 2). Исключения и логи.
Курс Java-2016. Занятие 05. Тестирование и Java
Стажировка-2014, занятие 10. Бизнес-модели и Lean startup.
Стажировка 2015. Дизайн. Занятие 5. Адаптивный web-дизайн
Стажировка-2014, занятие 3. Тест-кейсы, ручное и автоматическое тестирование.
Стажировка-2014, занятие 8. Обзор Rails framework (Ruby)
Стажировка 2015. Дизайн. Занятие 1. История дизайна, тренды 2015, логотипы.
Стажировка-2015. Тестирование. Занятие 2. Планирование процесса тестирования.
Стажировка 2015. Разработка. Занятие 9. BEM
Спецкурс 2014, занятие 5 (часть 1). Исключения и логи
Стажировка-2015. Разработка. Занятие 8. Абстракции, именование,документирование
Стажировка-2015. Разработка. Занятие 10 (часть 1). Конфиги, сборка, автотесты
Стажировка-2014, занятие 4. Планирование процесса тестирования.
Спецкурс 2014, занятие 5 (часть 2). Git, GitHub и Open source
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 4
Стажировка-2015. Дизайн. Занятие 4 (2 часть). Цвет в web-дизайне
Стажировка-2015. Разработка. Занятие 2. Основы реляционных баз данных
Стажировка-2014, занятие 6 (часть 1). Web-приложения
Спецкурс 2014, занятие 10. Lean startup
Спецкурс 2014, занятие 10. Lean startup
Стажировка-2015. Разработка. Занятие 10 (часть 2). Исключения и логи.
Ad

Similar to Спецкурс 2014, занятие 9 (2 часть). Code conventions and best practices (20)

PDF
Современная верстка с адекватными трудозатратами Максим Тимохин, технолог, И...
PDF
Робота з CSS. Методології, інструменти, оптимізація
PPTX
Мировые информационные ресурсы. Лекция 4
PPTX
Создание веб-сайта. Курс молодого бойца
PPTX
Стили на пользу пользователю - MinskCSS #1 15 декабря
PDF
Css3 для веб дизайнеров
PDF
CSS Modules в React | Odessa Frontend Meetup #4
PDF
как стать хорошим веб технологом. нарек мкртчян. зал 4
PDF
Парсим CSS
PPTX
Основы CSS
PDF
CSS. Практика
PPTX
Bootstrap 3. Адаптивная верстка для WordPress
PDF
Методология: БЭМ, Модули, Отношения
PPT
Trening modul2-conf1-tema5
PDF
пользовательские свойства как основа архитектуры CSS
PDF
Пользовательские свойства как основа архитектуры CSS / Павел Ловцевич (LOVATA)
PPT
Css part1
PPTX
Методологии верстки
PDF
C# Web. Занятие 16.
Современная верстка с адекватными трудозатратами Максим Тимохин, технолог, И...
Робота з CSS. Методології, інструменти, оптимізація
Мировые информационные ресурсы. Лекция 4
Создание веб-сайта. Курс молодого бойца
Стили на пользу пользователю - MinskCSS #1 15 декабря
Css3 для веб дизайнеров
CSS Modules в React | Odessa Frontend Meetup #4
как стать хорошим веб технологом. нарек мкртчян. зал 4
Парсим CSS
Основы CSS
CSS. Практика
Bootstrap 3. Адаптивная верстка для WordPress
Методология: БЭМ, Модули, Отношения
Trening modul2-conf1-tema5
пользовательские свойства как основа архитектуры CSS
Пользовательские свойства как основа архитектуры CSS / Павел Ловцевич (LOVATA)
Css part1
Методологии верстки
C# Web. Занятие 16.
Ad

More from 7bits (20)

PDF
Гудбай, ИТ-лофт! Тарасенко Анна: Стартап = факап?
PDF
Гудбай, ИТ-лофт! Денис Нелюбин: Новейшая история ИТ-лофта
PDF
Гудбай, ИТ-лофт! Лопатюк Саша: Договоримся не плакать
PDF
Гудбай, ИТ-лофт! Гончаровский Игорь: IT-Loft без связи
PDF
Гудбай, ИТ-лофт! Мячин Сергей: LUDUM DARE + IT-LOFT = LOVE
PDF
Goodbye, IT-loft! Тараканов Алексей: Идеология в IT
PPTX
Курс Java-2016. Занятие 13. Spring
PDF
Курс Java-2016. Занятие 12. DBMS, JDBC
PDF
Курс Java-2016. Занятие 11. Servlets, JSP
PDF
Курс Java-2016. Занятие 10. Reflection, mock
PDF
Курс Java-2016. Занятие 09. Web
PDF
Курс Java-2016. Занятие 08. Итераторы, многопоточность
PDF
Курс Java-2016. Занятие 07. Логи, фасады, библиотеки и коллекции
PDF
Курс Java-2016. Занятие 06. Файлы и ввод-вывод
PDF
Курс Java-2016. Занятие 04 (часть 2). Git и GitHub
PDF
Курс Java-2016. Занятие 04 (часть 1). Еще немного про Generics
PPTX
курс Java 2016. занятие 03. интерфейсы, generic, исключения
PPTX
Курс Java-2016. Занятие 02. Пакеты, сборка проекта с Maven
PPTX
Курс Java-2016. Занятие 01. Введение в Java как технологию
PPTX
Спецкурс-2015. Занятие 05. Системы контроля версий
Гудбай, ИТ-лофт! Тарасенко Анна: Стартап = факап?
Гудбай, ИТ-лофт! Денис Нелюбин: Новейшая история ИТ-лофта
Гудбай, ИТ-лофт! Лопатюк Саша: Договоримся не плакать
Гудбай, ИТ-лофт! Гончаровский Игорь: IT-Loft без связи
Гудбай, ИТ-лофт! Мячин Сергей: LUDUM DARE + IT-LOFT = LOVE
Goodbye, IT-loft! Тараканов Алексей: Идеология в IT
Курс Java-2016. Занятие 13. Spring
Курс Java-2016. Занятие 12. DBMS, JDBC
Курс Java-2016. Занятие 11. Servlets, JSP
Курс Java-2016. Занятие 10. Reflection, mock
Курс Java-2016. Занятие 09. Web
Курс Java-2016. Занятие 08. Итераторы, многопоточность
Курс Java-2016. Занятие 07. Логи, фасады, библиотеки и коллекции
Курс Java-2016. Занятие 06. Файлы и ввод-вывод
Курс Java-2016. Занятие 04 (часть 2). Git и GitHub
Курс Java-2016. Занятие 04 (часть 1). Еще немного про Generics
курс Java 2016. занятие 03. интерфейсы, generic, исключения
Курс Java-2016. Занятие 02. Пакеты, сборка проекта с Maven
Курс Java-2016. Занятие 01. Введение в Java как технологию
Спецкурс-2015. Занятие 05. Системы контроля версий

Спецкурс 2014, занятие 9 (2 часть). Code conventions and best practices