Елена Булыгина предлагает Вам запомнить сайт «Ленусик»
Вы хотите запомнить сайт «Ленусик»?
Да Нет
×
Прогноз погоды

Блог

TikTok для детей, 11-летний хакер

Джуана рассказывает о последних новостях: TikTok выпустили приложение для детей, мужчины притворялись девушками ради виртуальных вещей, арест 11-летнего хакера, дом на колёсах, который питается от Солнца, новый патч в CS:GO.

Таймлайн новостей:

00:20 TikTok для детей

01:21 Притворялись девушками ради виртуальных вещей

02:30 Взламывает аккаунты в 11 лет

03:41 Трейлер, питающийся от Солнца

04:49 Патч в CS:GO

 


27 сен, 14:13
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

Камерная встреча с генеральным директором GeekBrains

Хотите задать свой вопрос Александру? Авторизуйтесь на платформе и перейдите в программу с трансляцией. Инструкция ниже. 

1) Зарегистрируйтесь по ссылке, в ваш личный кабинет сразу будет добавлена программа с трансляцией.

2) Авторизуйтесь на платформе GeekBrains.

3) Перейдите в раздел «Мое обучение» в меню сверху. Найдите курс «Путь программиста. История А. Волчека».

4) Переходите на курс, смотрите вводное видео. Трансляция будет доступна в уроке номер 2. 

5) Последний шаг для успешной регистрации: Заполните свой профиль на платформе.

 


22 сен, 18:50
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

«Я с нетерпением ждала обучения, чтобы создать IT-продукт»

О себе

Мне 45 лет, живу в Москве. В конце 90-х окончила РЭУ им. Г. В. Плеханова, факультет «Финансы и кредит». 

В моём бэкграунде 10 лет банковской деятельности и ещё 10 — собственного бизнеса. В банке я прошла путь от специалиста по ценным бумагам до директора департамента учёта и оформления банковских операций. Это были 2000-е годы, банковская сфера развивалась стремительными темпами. Расширение продуктовой линейки банка было жизненно необходимо для победы в конкурентной борьбе за клиентов.

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

Сейчас я основатель и продакт-менеджер проекта WinTrade 一 платформы социального трейдинга.

О желании учиться новому

Знакомство с GeekBrains началось, когда дети стали учиться в школе дистанционно из-за ковида. У меня образовалась масса свободного времени, а социальная активность была ограничена. И я задумалась об учёбе для себя. 

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

О выборе новой профессии

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

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

В итоге я пошла учиться на факультет «Управление продуктами».

Об ожиданиях

Я с нетерпением ждала начала обучения и точно знала, для чего мне это нужно. У меня была мечта создать свой IT-продукт. Перед стартом курса нам задавали вопрос о цели обучения, и я написала: «Создать продукт, востребованный пользователями».

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

О начале обучения

Обучение проходило в комфортном режиме: 2 раза в неделю в вечернее время, срок сдачи домашек можно было продлевать, а сами задания отрабатывать на собственном проекте. К тому моменту у меня уже начала зарождаться идея IT-продукта. Я погрузилась в изучение hard skills продакта и поняла, что эта профессия — смесь компетенций изобретателя, аналитика и менеджера. Ты строишь гипотезы, проверяешь их, выводишь ДНК продукта, меняешь её и анализируешь, как эти изменения влияют на конечного пользователя.

Об инсайтах во время учёбы

Откровением было то, что любой проект должен начинаться с гипотезы и её подтверждения. И что для сокращения затрат на первом этапе необходимо построить продукт с минимальной функциональностью (MVP), проверить его жизнеспособность — и только после этого запускать разработку полноценного IT-продукта. 

В процессе обучения много говорили об удалённой работе внутри продуктовой команды. В конце мы отрабатывали теорию на стажировке в GeekBrains со своим проектом.

О команде на стажировке

На стажировку мы пришли командой в составе двух человек: я и мой знакомый эксперт по рынку ценных бумаг. У нас был протестированный MVP. В начале мы не очень понимали, какие специалисты нам нужны в команду. В этом помог разобраться преподаватель курса командной Android-разработки Владимир Морозов. Он изучил наш проект, рассказал, как происходит разработка мобильного приложения, и предоставил возможность презентовать наш продукт на его курсе.

Чтобы пригласить в команду бэкенд-разработчиков, нужна была модель базы данных нашего продукта. В этом мне пригодилась домашка, которую я делала в третьей четверти на уроке «Работа с базами данных и SQL». Преподаватель Дмитрий Власенко дал развёрнутый фидбэк и положительный отклик по теме проекта. Ещё помогла куратор стажировки Виктория Игнатенко — и к нам пришли ребята-бэкендеры.

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

О сложностях во время стажировки

Сначала работа шла медленно, потом процесс разогнался. Был период, когда одни компетенции проекта не успевали за другими, что-то тормозилось. Наши еженедельные встречи в Zoom к концу стажировки переросли в ежедневные. Задач по проекту становилось всё больше, и было сложно выстроить их в очередь. Но в итоге с этим нам помогла таблица приоритизации и карта пути нашего проекта. Параллельно, совместно с маркетологом, мы формировали стратегию позиционирования и продвижения нашего приложения WinTrade.

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

О проекте 

На текущий момент платформа социального трейдинга WinTrade содержит вертикали WinTrade Signal и WinTrade Quiz.

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

WinTrade Quiz 一 это обучающая игра на тему фондового рынка. Первый релиз мобильного приложения запущен в открытое тестирование в Google Play — его уже можно скачать. Пробуйте, оставляйте отзывы на странице приложения — будем очень благодарны.

О переменах в жизни

Учёба дала возможность выйти на новый уровень знаний в IT. Мне кажется, что сейчас это особенно важно, чтобы понимать развитие мира в целом. А когда создаёшь собственный проект, это очень вдохновляет и наполняет энергией. 

О планах 

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

Количество задач по проекту увеличивается, а также растёт код нашего проекта, которому требуется рефакторинг. Приглашаем на стажировку Android-разработчиков: у нас можно получить опыт командной разработки и интересный кейс в портфолио. Подробнее о проекте и вакансиях здесь: gb.ru/career/1910

Вопросы по проекту можно задавать в наш телеграмм-канал @wintrade2021

Мечтаете создавать IT-проекты с единомышленниками и получать советы от экспертов? Поступайте в GeekBrains на факультет продакт-менеджмента.

 


22 сен, 15:10
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

5 причин увлечь ребёнка программированием

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

Умение решать задачи и критически мыслить

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

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

Креативное мышление

Многие представляют программирование как монотонную аналитическую работу, далекую от творческого процесса. На самом деле, разработка тесно переплетена с творчеством. К примеру, на курсе веб-разработки GeekSchool ребята учатся и создавать сайты, и изучают основы дизайна — учатся оформлять страницы сайта, изменять форму и цвет текста, работать с фоном и изображениями.

Так дети узнают, как структурировать свои идеи в сценарии, раскадровки. И наконец, воплощают их в жизнь с помощью кода, формул и чисел. Так что программирование формирует и аналитическое, и креативное мышление. 

Здоровое отношение к ошибкам 

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

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

Полина Седокова прошла курс по созданию игр на Scratch в GeekSchool и поделилась, как преодолевала трудности в работе над финальным проектом: «Воссоздать игру на Scratch оказалось непростой задачей: в процессе работы я постоянно находила новые баги. Например, мой Пакман почему-то постоянно проходил сквозь стены и оставался бессмертным, несмотря на столкновение с привидением — я долго и упорно фиксила эти баги и, в конце концов, всё получилось

Работа в команде 

Разработчики зачастую работают вместе над проектом, а также взаимодействуют с другими отделами и специалистами. Работа в команде — неотъемлемая часть программирования.

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

Востребованность на рынке труда

IT как сфера экономики растет с каждым годом. Согласно исследованию одного из крупнейших в мире сайтов по поиску работы Glassdoor самая востребованная профессия в США — разработчик программного обеспечения (на декабрь 2020 года было открыто 40 564 позиции). По данным опроса Хабр Карьеры за второе полугодие 2021 года средняя зарплата IT-специалиста составляет 147 858 руб. в месяц.

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

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

Где учиться 

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

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

 


22 сен, 12:44
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

Как найти свой путь в IT: ответы на самые популярные вопросы

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

Оставаться востребованным специалистом позволяет развитие в сторону IT. Траекторий развития в сфере технологий много, поэтому выбрать свою новичкам в отрасли бывает сложно. Чтобы помочь сделать осознанный выбор специальности тем, кто задумывается сменить профессию, мы в GeekBrains провели бесплатный онлайн-интенсив «Путь в IT».

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

На интенсиве генеральный директор GeekBrains Александр Волчек и исполнительный директор GeekBrains Александр Сагун ответили на самые популярные вопросы участников.

Насколько реально устроиться на работу после обучения в GeekBrains?

Александр Волчек: тот, кто обучился на курсе «Разработчик» и стал айтишником, трудоустроится со стопроцентной вероятностью, если он хочет найти работу. Мы в GeekBrains гарантируем трудоустройство, если вы учитесь, делаете домашние задания, проходите стажировки, выполняете проектную работу, которую мы даём во время обучения, у вас не будет шанса не трудоустроиться.

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

Александр Волчек: конечно, с точки зрения системного администратора, если у вас есть образование программиста, вы можете двигаться в направлении DevOps, можно и в программирование. Если есть навыки проектного и продуктового управления, можно развиваться в этом направлении. Обратите внимание, что выбор стоит сделать, отталкиваясь от ваших желаний: хотите писать код, или общаться с людьми? Но вам точно стоит идти вперёд из системного администрирования.

Что необходимо изучать, чтобы заниматься программированием роботов? 

Александр Волчек: необходимо получить базу в IT и базу в программировании. В 2004 году я устроился на первую работу в программировании, и мы программировали на Borland C++, делали автоматизацию для французской транспортной компании. Буквально через 3-4 месяца после начала работы к нам в офис привезли роботов, которые используются в процессе изготовления процессоров, делают транспортировку и считывания кремниевых пластин. Я большую часть своей жизни посвятил программированию микроконтроллеров, роботов и различной техники по всему.

Александр Сагун: на программе «Разработчик» мы преподаём разные языки программирования, один из первых языков, который мы рассматриваем это С++  —  фундамент дальнейшего обучения и база, на которой построена работа с железом роботов.

Куда правильно перейти из ритейла руководителю с шестилетним опытом, чтобы опыт пригодился для быстрого старта в сфере IT?

Александр Сагун: я много лет занимался автоматизацией бизнеса, это как раз был ритейл: Эльдорадо, МВидео, Х5. Вопросы автоматизации ритейла всегда в спросе. У вас есть коммерческие навыки, которых нет у других людей в IT. Вы можете их использовать, чтобы эффективно и грамотно автоматизировать процессы. Максимально релевантными направлениями будут проджект- и продакт-менеджмент в проектах автоматизации ритейла.

Хочу сменить сферу деятельности и, наверно, пойти в разработку программного обеспечения для мобильных устройств. С каких языков начать изучение темы?

Александр Волчек: важно, что в начале необходимо точно определиться со специализацией и получить фундаментальную базу. А дальше — сделать осознанный выбор: хотите вы программировать для мобильный устройств или нет, для iPhone или Android, и на каком языке вы будете писать.

Возможно ли найти хорошую работу без высшего образования?

Александр Сагун: без высшего образования 100% можно найти хорошую работу. В последнее время мы смотрим на профессиональные навыки и у нас в айтишной команде есть ребята без высшего образования. В первую очередь мы смотрим на их навыки и практический опыт. Высшее образование это хорошо, но это не основной критерий.

Что делать, если начал долгосрочное обучение на платформе, но внезапно забрали в армию?

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

Есть ли смысл сейчас идти на программиста, так как сейчас на него пойдёт много людей и будет переизбыток специалистов?

Александр Волчек: переизбытка программистов не будет. Если бы мы сейчас в России обучили миллион программистов, мы просто бы стали невероятно крутой страной. В 2024 году будет 190 миллионов вакансий на рынке IT, а на сегодняшний момент их 40 миллионов.

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

Александр Волчек: у нас есть разные коллаборации. Но мы в рамках GeekBrains выдаём сертификаты, удостоверения и дипломы специального образца, которые может получить каждый окончивший школу. Если вы хотите диплом о высшем образовании, то его можно получить только в университете. Также в Skillbox есть коллаборация по DataScience  —  программа магистратуры.

На 3 курсе ушёл в бизнес и коммерцию. Сейчас являюсь неплохим управленцем: заместителем генерального директора по коммерции. Как перейти в IT на управленческие позиции?

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

Могу ли я стать программистом, если есть проблема с изучением английского?

Александр Волчек: конечно, можете. Мы в GeekBrains много времени этому уделяем. У нас есть партнёрские программы по изучению английского языка, экзамены и аттестация. Знание английского в IT — это очень круто. Можно и без него, но будет сложнее. Потихонечку будете учить.

Какие есть минусы в сфере IT?

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

Есть ли какой-то алгоритм, как выбрать язык, подходящий именно мне?

Александр Волчек: алгоритм есть. Мы очень много к этому ведём, и алгоритм есть на программе «Разработчик». Мы позволяем правильно выбрать специализацию, дальше правильно выбрать язык. Очень правильный вопрос. Нужно поучиться и получить ряд знаний, чтобы правильно выбрать язык.

Важно не просто принять решение погрузиться в сферу IT и получить новую профессию, но и ответственно подойти к выбору специализации. На программе «Разработчик» вы 3 из 15 месяцев обучения будете погружаться в мир IT, разбирать, особенности различных профессий, осваивать базовые навыки, чтобы сделать осознанный выбор для дальнейшего развития.

 


21 сен, 09:00
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

Факультет TikTok, NASA спасает Землю, презентация Apple

NASA отправит космический аппарат в астероид, открылся первый в мире факультет ТикТока, встречаем умные очки от Xiaomi — об этих и других новостях недели рассказывает Джуана в новом выпуске weekly-дайджеста.

Таймлайн новостей:

00:15 NASA против астероида

01:27 Факультет TikTok в Киеве 

02:17 Умные очки Xiaomi

03:16 Новинки от Apple

05:28 Слежка через приложение в Китае

06:51 Первые гражданские на орбите

 


20 сен, 12:55
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

Чем занимается PHP-разработчик: стартапы, проекты и учёба

Кто такой PHP-разработчик, не преувеличены ли слухи о скорой смерти этого языка программирования и о чём стоит помнить новичку, который решил освоить эту профессию, — об этом мы расспросили PHP-разработчика в Mail.ru и преподавателя GeekBrains Илью Зобенько

Ниже мы привели некоторые интересные моменты из разговора, а послушать выпуск полностью можно на разных платформах:

— Как начался твой путь в IT?

— Именно в PHP-разработке я уже 6 лет, в айтишке в целом — где-то 8. Изначально входил в IT с должности сисадмина. При входе почему-то было ощущение, что попасть в IT можно только с образованием и желательно с опытом. Было непонятно, откуда его брать. Я тогда учился на первом курсе, и вся операция по поиску работы в IT была таким большим экспериментом, к которому я очень усердно готовился: работал курьером и поглощал книжки по администрированию Linux, пока ездил в метро. Решил наудачу попроходить собеседования, и получилось очень удачно. Я даже нагло проходил собеседования, и в большей степени, мне кажется, это и помогло. Я бросался фразочками, вроде: «Дайте мне шанс, вы не пожалеете, я докажу».

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

— Как ты перешёл в программирование?

— Системным администратором я проработал в общей сложности 2,5 года, руководителем отдела — где-то полгодика и уже потом потом два года проработал директором по информационным технологиям.

К программированию я пришёл как раз где-то в этот момент. У нас был проект по автоматизации электронного документооборота. Тогда бюрократические процессы в компании были на очень низком уровне: люди буквально ходили с бумажками, чтобы подписать их, по всему производственному корпусу, который был достаточно большой.  Когда появилась задача найти какую-то систему, которая всё это дело оптимизирует, я очень скептично подошёл к решениям, которые были на рынке. Когда ты покупаешь готовое решение, ожидаешь, что оно легко внедрится и все проблемы снимет. А здесь получалось, что решение дорогое, внедряться будет год, и у меня не сходилось в голове, почему это так получается. По вечерам я вёл свой pet project (личный проект), как раз применял PHP насколько мог, писал эксперимент системы электронного документооборота, который взлетел в компании и до сих пор там используется.

— Так что делают PHP-разработчики?

— Так исторически сложилось, что PHP-разработчики сфокусированы на вебе, при том что язык сам по себе универсального назначения и много где может быть использован. До сих пор держатся очень высокие цифры по проценту сайтов в интернете, которые написаны PHP — примерно 80-90. Чуть-чуть поменялся портрет PHP-разработчика: он, наверное, перетекал от фулстека, который на этой PHP писал и бэк, и фронто́вую часть путём шаблонизирования, что сейчас практически нигде не встречается.

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

— Мы знаем, что у тебя был стартап. Как так вышло и чем там может заниматься PHP-разработчик?

— Я реально очень прикололся по разработке, если так можно сказать. И когда уже наскучил этот проект электронного документооборота, я искал какие-то новые решения. Полез просто так на фриланс посмотреть и нашёл ребят, которые делали чат-ботов. Они попросили помочь, там было буквально на два дня работы.

Я взялся и начал править. Понял, что мне не нравится, как всё написано, и начал просто так всё переписывать. Сначала я хотел с ними согласовать это: может быть, я тут получше сделаю? Они такие: нет, давай держаться цели. Не знаю, почему я решил всё переделать. Это уже даже не инициатива, это уже просто желание чистоты: тогда у меня уже были сформулированы какие-то понимания того, как должно выглядеть всё это дело, как программу правильно писать. Я просто взял и переписал за те два дня практически всё и сделал то, что они просили. По результату заказчики сказали: а ты не хочешь к нам в стартап? Риски, как на тот момент казалось, были минимальные, и я в это дело ввязался. Началось приключение под названием стартап Odus.AI.

— А в большой компании можно работать? Есть такой слух, что PHP — устаревший язык. Это так или есть перспективы?

— Сейчас я работаю в Mail.ru в проекте «Юла», пишу как раз бэкенд на PHP. Думаю, что изначально «Юла» писалась на PHP как раз по той же причине, по которой мы его выбирали для стартапа, — это язык, на котором можно быстро проверить гипотезу, и он в принципе справляется по сей день достаточно неплохо. Естественно, это большой монолит, который активно распиливается, но при этом работу свою выполняет очень хорошо. Много компаний до сих пор используют PHP, и наверное, непонимание того, почему компании его используют, может быть навеяно тем, что в интернете всё чаще появляются статьи типа жив мёртв PHP, стоит ли его изучать и т. д. Их уже очень много стало, можно даже подрезюмировать, всё равно в них всегда одно и то же: PHP жив, и всё будет нормально.

Язык действительно до сих пор используют многие компании. Почему говорю «до сих пор» — потому что есть тенденция перехода в микросервисы, особенно если проект очень сильно разрастается. Facebook написан на этом языке, и да, они дорабатывали движок. Они очень давно на PHP, и во времена пятой версии, когда PHP был значительно медленнее, чем сейчас, им приходилось бустить его самостоятельно. Примерно то же самое делали ребята из Вконтакте. Сейчас всё намного лучше: с седьмой версии PHP очень ускорился, язык активно развивается. Годик назад вышла восьмая версия интерпретатора, которая стала ещё быстрее, там добавилось много сахара. Сахар — это структуры или какие-то инструменты, которые делают процесс написания проще, они инкапсулируют в себя какую-то логику и делают язык удобнее.

— Если сравнивать PHP с другими языками, у него есть отличительные преимущества?

— Самое главное преимущество языка, на текущий момент (потому что конкуренция очень высокая), это низкий порог вхождения: начать писать на PHP действительно можно очень быстро, прям в кратчайшие сроки. Проще становится и поиск специалистов, и вход в профессию. В плане выбора среди интерпретируемых языков, наверное, сильной разницы нет. PHP сейчас чуть-чуть побыстрее, чем Python или Ruby, но не настолько, чтобы полностью ставить на это. При этом, поскольку язык всё-таки развивается преимущественно в направлении веб-разработки, он чувствует себя там поувереннее, чем тот же Python, который и в веб, и в нейронке, и в аналитике, и везде. Python очень крутой, но PHP удобен как раз за счёт того, что весь путь хорошо виден, все хорошие практики на ладони. Скорее всего, проект не останется на PHP — такая практика есть.

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

— С чего начать изучение PHP?

— Как человек, который кучу граблей нашёл своими ногами и лицом, я скажу, что здесь надо подойти достаточно избирательно. Начинать стоит с курса — я думаю, это в любом случае. Что тянуло назад меня в самом начале — как раз отсутствие окружения, отсутствие наставника и отсутствие мнения со стороны. Когда ты не работаешь в какой-то классной айтишной команде, ты не получаешь никакого фидбэка от людей из твоей же области. Например, когда когда работаешь на фрилансе, ты делаешь проект, отдаёшь и ничего не получаешь, кроме денег (в лучшем случае).

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

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

Освоить профессию PHP-разработчика на курсе GeekBrains. Что и в какой последовательности предстоит изучать, вы можете узнать из пошагового плана, составленного Ильёй Зобенько.

 


17 сен, 15:41
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

По следам происшествия: как логировать эффективно

Людям свойственно ошибаться. Это относится не только к разработчикам, но и к пользователям. В ходе разработки мы контролируем процесс и можем разобраться в неправильном поведении программы простой отладкой. А вот расследовать случай, который произошёл в production-окружении, не всегда просто. В таких ситуациях на помощь приходят журналы. И чтобы от них действительно была польза, их нужно вести правильно.

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

В этой статье разберёмся, как правильно организовать ведение журналов в PHP-приложении, как эффективно с ними взаимодействовать и какие библиотеки и инструменты могут быть полезны.

Стандарт PSR-3. Уровни логирования

PSR — это свод рекомендаций для PHP-разработчиков. Он содержит советы по оформлению кода, некоторые интерфейсы и другие рекомендации. Один из его документов (PSR-3) посвящён реализации логера.

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

<?php
 
namespace Psr\Log;
 
class LogLevel
{
   const EMERGENCY = 'emergency';
   const ALERT     = 'alert';
   const CRITICAL  = 'critical';
   const ERROR     = 'error';
   const WARNING   = 'warning';
   const NOTICE    = 'notice';
   const INFO      = 'info';
   const DEBUG     = 'debug';
}

PSR-3 определяет 8 уровней сообщений. Если их использовать правильно, искать ошибки станет проще и получится оперативнее реагировать на инциденты. Давайте разберёмся, как выбрать уровень:

  • DEBUG — отладочная информация, подробно раскрывающая детали события;
  • INFO — любые интересные события. Например, когда пользователь авторизовался;
  • NOTICE — важные события в рамках ожидаемого поведения;
  • WARNING — исключительные ситуации, не являющиеся ошибками. Например, использование устаревшего метода, неправильный запрос в API;
  • ERROR — ошибки, которые следует отслеживать, но они не требуют срочного исправления;
  • CRITICAL — критическое состояние или событие. Например, недоступность компонента, неожиданное исключение (Exception);
  • ALERT — ошибка или событие, требующие срочных действий. Например, когда база данных недоступна;
  • EMERGENCY — ситуация, когда программа или система полностью выведены из строя.

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

[2021-01-01 12:10:35] website.INFO: User has changed his password

На уровни ALERT и EMERGENCY часто ставят дополнительное информирование, например по SMS. По INFO можно легко восстановить последовательность действий пользователя, по DEBUG — узнать точные значения переменных, результат работы функции в определённом месте и прочее.

PSR-3. Интерфейс для класса-логера

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

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

Для начала загрузим код стандарта PSR-3 с помощью Composer.

composer req psr/log

В загруженном пакете содержится несколько классов, трейтов и интерфейсов. Среди них — LogLevel, который мы разобрали выше, и интересующий нас в данный момент LoggerInterface. Давайте создадим новый класс, реализующий этот интерфейс. Важно: убедитесь, что у вас подключён класс-автозагрузчик (vendor/autoload.php).

<?php
// index.php
 
// Автозагрузчик Composer
require_once 'vendor/autoload.php';
// Наш новый класс-логер
require_once 'src/FileLogger.php';
<?php
// src/FileLogger.php
 
// Если `use` не добавился автоматически
// - обязательно добавьте его самостоятельно
use Psr\Log\LoggerInterface;
 
// Наследуем интерфейс логера от PSR-3
class FileLogger implements LoggerInterface
{
   // ...
}

Класс мы создали. Но чтобы он удовлетворял требованиям стандарта, нужно написать все методы, описанные в интерфейсе. Самый важный из них — log. В нём будет указана основная логика записи в файл.

class FileLogger implements LoggerInterface
{
   // ...
   public function log($level, $message, array $context = []): void
   {
       // Текущая дата в формате 1970-12-01 23:59:59
       $dateFormatted = (new \DateTime())->format('Y-m-d H:i:s');
 
       // Собираем сообщение, подставив дату, уровень и текст из аргумента
       $message = sprintf(
           '[%s] %s: %s%s',
           $dateFormatted,
           $level,
           $message,
           PHP_EOL // Перенос строки
       );
 
       // Пишем в файл gb.log
       file_put_contents('gb.log', $message, FILE_APPEND);
       // FILE_APPEND - позволяет добавлять записи к существующим,
       // не затирая старые логи
   }
   // ...
}

Для полного удовлетворения интерфейса LoggerInterface нам осталось написать реализацию для методов emergency, alert, critical, error, warning, notice, info и debug, которые соответствуют уровням (их мы разобрали выше). Их реализация сводится к очень простому принципу: мы вызываем метод log, передав в него необходимый уровень.

class FileLogger implements LoggerInterface
{
   // ...
   public function emergency($message, array $context = []): void
   {
       // Передаем уровень из класса LogLevel
       $this->log(LogLevel::EMERGENCY, $message, $context);
   }
 
   public function alert($message, array $context = []): void
   {
       $this->log(LogLevel::ALERT, $message, $context);
   }
   // и так далее
   // ...
}

Использование логера

Теперь, когда наш класс реализует интерфейс, предложенный стандартом PSR-3, мы можем легко задействовать его в любом месте. Например, в файле index.php:

<?php
// index.php
 
// Автозагрузчик Composer
require_once 'vendor/autoload.php';
// Наш новый класс-логер
require_once 'src/FileLogger.php';
 
$logger = new FileLogger();
$logger->debug('Message from index.php');

Обратите внимание: в качестве типа аргумента конструктора мы указываем не конечную реализацию (FileLogger), а именно интерфейс стандарта PSR-3. Это удобно, потому что позволяет легко заменять применяемый логер на любой другой, поддерживающий этот интерфейс.

Контекст

Вы могли заметить, что все методы интерфейса LoggerInterface содержат аргумент $context. Зачем он нужен?

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

Чтобы применять этот аргумент, нам нужно поддержать его в методе log. Давайте доработаем его, учитывая, что $context — массив.

<?php
 
class FileLogger implements LoggerInterface
{
   // ...
   public function log($level, $message, array $context = []): void
   {
       $dateFormatted = (new \DateTime())->format('Y-m-d H:i:s');
 
       // Преобразуем $context в формат json
       $contextString = json_encode($context);
       $message = sprintf(
           '[%s] %s: %s %s%s',
           $dateFormatted,
           $level,
           $message,
           $contextString, // Добавляем контекст к строке лога
           PHP_EOL
       );
 
       file_put_contents('gb.log', $message, FILE_APPEND);
   }
   // ...
}

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

<?php
// index.php
//...
 
$userName = 'GeekBrains';
$userEmail = 'user@gb.ru';
 
$logger = new FileLogger();
$logger->debug('Message from index.php', [
   'user_name' => $userName,
   'user_email' => $userEmail,
]);

В результате мы получим запись следующего вида:

[2021-09-02 13:00:24] debug: Message from index.php {"user_name":"GeekBrains","user_email":"user@gb.ru"}

Касательно контекста действует одно простое правило: любая динамическая информация должна передаваться в нём, но не в сообщении. То есть, если вы формируете сообщение в лог с помощью sprintf или конкатенацией строчных переменных, — скорее всего, эту информацию можно вынести в контекст. Соблюдая это правило, проще искать что-то в журнале, потому что не приходится предугадывать (или вычислять) значения переменных.

Библиотека Monolog

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

Здорово, что всё это уже реализовано в большинстве библиотек. Одна из самых распространённых – monolog.

Среди весомых преимуществ этого пакета:

  • полная поддержка PSR-3;
  • поддержка разных принципов обработки логов в зависимости от уровня;
  • поддержка имён каналов (имена логеров);
  • очень широкая поддержка фреймворков.

Чтобы начать использовать этот прекрасный инструмент, установим его с помощью Composer.

composer req monolog/monolog

Использование Monolog

Работа библиотеки monolog основывается на обработчиках. Они позволяют задавать конкретное поведение в ответ на события логирования. Например: запись в файл — это специальный обработчик, который называется StreamHandler. Давайте заменим использование нашего класса на загруженную библиотеку.

<?php
 
// index.php
 
use Monolog\Logger;
use Monolog\Handler\StreamHandler;
 
// Автозагрузчик Composer
require_once 'vendor/autoload.php';
 
// В качестве аргумента передаем имя канала
$logger = new Logger('gb-demo');
// Подключаем обработчик. В качестве аргумента у StreamHandler - путь к файлу
$logger->pushHandler(new StreamHandler('gb.log'));
 
// Далее все оставляем, как было
$userName = 'GeekBrains';
$userEmail = 'user@gb.ru';
$logger->debug('Message from index.php', [
   'user_name' => $userName,
   'user_email' => $userEmail,
]);

Если мы запустим этот код, в файле gb.log появится запись следующего вида:

[2021-09-02T13:16:14.122686+00:00] gb-demo.DEBUG: Message from index.php {"user_name":"GeekBrains","user_email":"user@gb.ru"} []

Очень похоже на то, что было у нас ранее, кроме добавления имени канала (gb-demo).

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

<?php
 
// index.php
 
use Monolog\Handler\StreamHandler;
use Monolog\Logger;
use Psr\Log\LogLevel;
 
// ...
$logger = new Logger('gb-demo');
$logger->pushHandler(new StreamHandler('gb.log'));
$logger->pushHandler(new StreamHandler('errors.log', LogLevel::ERROR));
 
// ...
$logger->emergency('It is not even an error. It is EMERGENCY!!!');

Подключённый на уровень ERROR обработчик будет принимать на себя все записи уровня ERROR и выше. Поэтому вызов метода emergency попадает в оба файла: gb.log и errors.log

Такое простое разделение записей по уровням значительно упрощает для нас реагирование на ошибки. Ведь больше не нужно искать их среди всех записей в журнале. Это простая и полезная функция.

Все записи от одного запроса

Когда мы разрабатываем проект, журналы читаются очень просто, они последовательны и ясны. Но когда продуктом пользуются несколько человек, логи могут перемешиваться и больше запутывать, чем помогать. Для решения этой проблемы есть простой трюк. Вместо имени канала (логера) используйте уникальный идентификатор сессии. Получить его можно с помощью встроенной функции session_id(). При этом сессия должна быть обязательно запущена с помощью session_start()

Рассмотрим пример реализации такого приёма:

<?php
// index.php
 
// Запускаем сессию
session_start();
 
// ...
 
// Передаем id сессии в название канала
$logger = new Logger(session_id());
// ...

Что нам даёт такая простая доработка? Важную возможность — группировать все записи запросам пользователя.

// Это записи от первого запроса
[2021-09-02T13:35:54.155043+00:00] b30m8k1fvmf638au7ph0edb3o5.DEBUG: Message from index.php {"user_name":"GeekBrains","user_email":"user@gb.ru"} []
[2021-09-02T13:35:54.156800+00:00] b30m8k1fvmf638au7ph0edb3o5.EMERGENCY: It is not even an error. It is EMERGENCY!!! [] []
// А это записи от второго запроса. У них отличаются названия каналов
[2021-09-02T13:36:03.528474+00:00] u7fi04mn99h0timg148rles1um.DEBUG: Message from index.php {"user_name":"GeekBrains","user_email":"user@gb.ru"} []
[2021-09-02T13:36:03.529421+00:00] u7fi04mn99h0timg148rles1um.EMERGENCY: It is not even an error. It is EMERGENCY!!! [] []

Что дальше?

Monolog поддерживает множество полезных готовых обработчиков, на которые стоит обратить внимание:

  • TelegramBotHandler — отправляет записи в Telegram от имени бота. Пригодится для высоких уровней логирования;
  • SlackHandler — похож на предыдущий, но отправляет записи в Slack;
  • SwiftMailerHandler — позволяет отправлять записи по email;
  • ChromePHPHandler – даёт доступ к журналам прямо из браузера Chrome в режиме Live.

Заключение

Логирование поможет исправлять ошибки на ранних этапах разработки и быть уверенными, что ничего не сломалось в новой версии кода. А ещё расследовать случаи ваших пользователей и иметь общее видение проекта.

Главное — помнить простые правила:

  • Следование PSR-3 позволит легче заменять классы-логеры в вашем коде и использовать внешние библиотеки.
  • Разные уровни логирования помогут сосредоточиться на важном.
  • Отделение динамической информации в контекст упростит поиск по журналам.
  • Библиотека Monolog реализует практически все возможные хотелки. Обязательно изучите её.
  • С помощью идентификатора сессии можно разделить записи в журналах по каждому запросу.
  • Лучше писать много лишних логов, чем не дописать один важный.

 


16 сен, 10:00
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

«Чтобы войти в профессию, надо с ней подружиться»

Как попал в дизайн

Мне повезло: я родился в семье художников. Мой ближайший родственник — директор Московского Дома Художника — Казаков Сергей Васильевич. Атмосферу искусства и дизайна я впитывал с детства, постоянно посещал выставки. Получил образование также в сфере искусства, хорошо разбираюсь в жанрах и стилях изобразительного искусства. До сих пор я регулярно посещаю выставки и музеи, участвую в лекциях и семинарах ведущих площадок в разных странах и городах.

У меня не было ситуации во взрослом осознанном возрасте как такового выбора профессии. На тот момент я уже был дизайнером: все школьные и студенческие годы параллельно с учебой всегда что-то создавал и проектировал. Со временем это переросло в веб-дизайн.

Первый заработок

В начале профессионального пути я работал в небольшой, на тот момент, сети ресторанов. Они выпускали на рынок приложение самообслуживания для клиентов — меню в приложениях на IPad, которые располагались на столах в ресторанах.

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

Первая крупная работа

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

Первый компьютер и начало пути

Первый компьютер у меня появился, думаю, как и у многих, когда в России стали продавать домашние компьютеры. Сначала я пользовался фотошопом того времени, делал первые картинки для себя — никакого коммерческого интереса тогда у меня не было. Я просто рисовал, чтобы выработать стилистику и «набить руку». Фотошоп освоил достаточно быстро за год или два. Тогда обучение отнимало много времени: учебных материалов было мало, а сервисов, кроме европейских форумов, где люди выкладывали статьи на английском, криво переведенные на русский язык, толком ничего не было. 

Продолжение обучения

Я активно пользуюсь онлайн-курсами Стэнфордского и Гарвардского университетов. Конечно, там дорогое обучение, но информация очень полезна, а сама система онлайн-образования интересно построена.

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

Выбор наставника

Я бы в качестве наставника выбирал тех дизайнеров, которые нравятся. И познакомившись с ним, попросил бы ментора оценить мой уровень и по возможности подсказать развитие и направление деятельности: например, 3D-дизайн, анимационный или продуктовый дизайн. Также обязательно попросил бы у него список литературы и курсов, по которым я бы мог достичь желаемого результата максимально быстро.

Выбор оборудования для работы

Специализаций в дизайне достаточно много, от них часто зависит и выбор оборудования. Например, текущие топовые дизайнеры пользуются IPad Pro. Для 3D-дизайна стоит обзавестись техникой помощнее. Я лично пользуюсь на работе IMac 27’. Дома, если нужно прокомментировать решения по дизайну, работаю на MacBook Pro.

Как получить первого клиента

Можно придумать легенду о себе: создать портфолио, разместить там работы для выдуманных клиентов. Другой вариант — участие в конкурсах. Даже если вы проиграете, так вы сможете заявить о себе. И, вполне возможно, к вам напрямую обратится потенциальный заказчик. Также много учебных заведений, курсов и университетов помогают трудоустроиться. Молодой специалист может на заказах получать в месяц от 15 до 50 тысяч рублей стабильно. Коллеги и я, которые вышли на топ уровень, личными проектами делают около 50-200 тысяч евро.

Актуальные проекты

Первый проект — образовательная площадка GeekBrains. Очень интересно было принять предложение. Сейчас активно разрабатываем мобильное приложение

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

Вторая — финансовая компания, ведущая всю финотчетность 50 тысяч американских компаний. Это крупный долгий проект: в команде я восьмой год. 

Мир через 20 лет

Давайте помечтаем. Сегодня дизайнеры помогают машинам подружиться с людьми. Было бы здорово, чтобы через 20 лет была такая машина, которой уже не нужно дружить с человеком. Она бы и так знала все проблемы и потребности людей и самостоятельно решала их. А пользователю оставалось бы только получать удовольствие. 

Как войти в профессию

Подружиться с профессией, даже если сначала не получается. Если возникают сложности в обучении, советую всегда менять ментора. Если в итоге с профессией ничего не получилось, а это обычно ясно через 1-2 года, рекомендую не унывать и сменить ее, найти себя в чем-то новом. Иначе вы просто потеряете много времени и денег.

Мотивация дизайнера

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


У вас тоже получится

Разработчик — первая Программа обучения для осознанного выбора специальности и карьерной траектории в сфере информационных технологий от GeekBrains при участии Skillbox.

Получите востребованную профессию или откройте бизнес в сфере информационных технологий.

 


15 сен, 13:31
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

Кодстайл CSS – правила хорошего тона при вёрстке

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

Оформление классов

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

Некорректно:

Корректно:

Используйте нижний регистр. Также в названиях классов принято использовать только строчные буквы. А вместо пробелов, как правило, — дефис (символ “-”).

Некорректно:

Корректно:

Пользуйтесь популярными тегами. Среди разработчиков уже сложился список общепринятых имён для классов. Например, для картинок используют img (сокращение от англ. image – картинка), а для кнопок — button (в переводе с английского «кнопка»). 

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

Некорректно:

Корректно:

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

Некорректно:

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

В примере ниже можно избавиться от селектора button-2, используя класс button для размеров и white-color для цвета. Так мы сможем потом гибко переиспользовать второй селектор. 

Корректно:

Один проект — одна методология. Если вы решили использовать методологию в своём проекте, например, БЭМ или атомарный CSS, то стоит придерживаться единого подхода на протяжении всего проекта. Смешение подходов ломает структуру. Стоит упомянуть, что иногда в БЭМ для общих стилей подмешивают атомарный подход — например, для обнуления стилей у списков. Но это скорее исключение из правил, чем само правило. 

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

Некорректно:

Корректно:

Использование отступов и пробелов

Как и в HTML, у CSS есть свои правила оформления отступов и пробелов.

Начинайте свойство в классе с отступа, равному 2 пробела или 1 таб.

Некорректно:

Корректно:

Между свойством и значением ставьте пробел.

Некорректно:

Корректно:

Между селекторами ставьте пустую строку.

Некорректно:

Корректно:

Между селектором и открывающей скобкой ставьте пробел.

Некорректно:

Корректно:

Оформление свойств

В CSS нет каких-либо строгих правил и рекомендаций относительно порядка свойств. Но есть несколько подходов к этом вопросу.

Упорядочивать свойства по алфавиту. 

  

Упорядочивать свойства по определенной логике. Вот пара примеров использования таких правил: 

И несколько правил хорошего тона

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

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

Некорректно:

Корректно:

Корректно:

Если пишите 0 у свойства, то не указывайте единицу измерений.

Некорректно:

Корректно:

CSS также можно проверить на валидность при помощи онлайн-валидатора.

 


14 сен, 18:48
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0
Темы с 1 по 10 | всего: 1136

Последние комментарии

нет комментариев
Читать

Поиск по блогу

Люди

6 пользователям нравится сайт lena2018.mirtesen.ru