Рубрика «Блог компании «Evil Martians»»

Привет, меня зовут Андрей Ситник, и я — фронтенд в Злых марсианах. Хочу пригласить вас на брейнвошинг по Ruby on Rails, который пройдет 29, 30 марта и 1 апреля в Москве.

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

А в конце рассказа — пара способов получить скидку на следующий мартовский Брейнвошинг.

Курс по Ruby on Rails от Злых марсиан
Равиль и Лёша объясняют практическое задание по Rack

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

На курсе мы углубляем понимание работы Rails, делимся опытом, который мы получили в крупных проектах, даем полезную выжимку знаний и развеиваем популярные заблуждения. Иными словами, за короткий срок «прокачиваем» разработчиков на Ruby on Rails, тимлидов и технических директоров Rails проектов.Читать полностью »

25, 26 и 28 мая пройдет четвертый московский курс «Интерфейсы для айфона», а летом мы проведём первый курс в Питере. Даты и место проведения питерского курса уточняются, но записываться можно и нужно уже сейчас.

Brainwashing «Интерфейсы для айфона» 25, 26 и 28 мая

Читать полностью »

Автопрефиксер — утилита нового поколения для добавления префиксов к экспериментальным свойствам из CSS 3. Она берёт с Can I Use последние данные о префиксах и популярности браузеров, читает ваш файл стилей, находит свойства и значения, которым действительно нужны префиксы и добавляет их.

Вы просто пишите обычный CSS:

a {
    transition: transform 1s
}

Автопрефиксер сам заменит нужные (и только нужные) свойства и значения (обратите внимание на -webkit-transform):

a {
  -webkit-transition: -webkit-transform 1s;
  -ms-transition: -ms-transform 1s;
  -o-transition: -o-transform 1s;
  -webkit-transition: transform 1s;
  -o-transition: transform 1s;
  transition: transform 1s
}

Проблема

К сожалению текущие инструменты плохо решают задачу:

  • Писать вереницы свойств руками — очевидно плохое решение. Такой код невозможно читать, легко забыть поправить остальные свойства при редактировании.
  • В Sass и LESS вам нужно самому следить за актуальностью префиксов и копировать примеси из проекта в проект. К тому же примеси могут решить проблему только у свойств, а не у значений (например, calc()).
  • Compass или Bourbon уже лучше, там список примесей хранится централизовано и его легче держать актуальным (но практика показывает, что обычно в примеси добавляют все префиксы не следя за актуальностью). Проблема значений всё так же не решена.
  • Самая главная проблема Sass и LESS, что вам всё равно нужно постоянно думать «из CSS 3 это свойство или нет?» — и в зависимости от этого использовать примесь или нет. Это проблему немного решил Stylus — у него синтаксис примесей не отличается от обычных свойств, так что префиксы добавляются невидимо. Впрочем, проблема актуальности и значений всё равно остались.
  • Есть ещё скрипты добавления префиксов прямо в браузере, например Prefix Free, но лучше всего обрабатывать стили на этапе разработки и выкладки, а не повторять обработку каждый раз в браузере клиентов.

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

Мы снова проведем курс «Интерфейсы для айфона». Уже на этих выходных, 1, 2 и 4 декабря в «Коворкафе».

Brainwashing «Интерфейсы для айфона» 1, 2 и 4 декабря
Читать полностью »

Практика TDD/BDD на примере JavaScript: TDD и BDD

Введние

Это продолжение цикла «Практика TDD/BDD на примере JavaScript». В первой, вводной статье, я попытался убедить разработчиков в необходимости, если не писать тесты на всех своих проектах, то хотя бы свободно владеть темой и знать зачем это им нужно.

Сегодня я расскажу что такое TDD (test-driven developement) и на простом примере покажу как это работает. Во второй части будет расмотрено BDD (behaviour-drive development) в сравнении с TDD и на практике.

TDD

Что такое TDD

Разработка через тестирование выражается в простом правиле: сначала тесты, а потом код.

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

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

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

Введение

В своей прошлой статье "Readme-driven development" я немного затронул тему разработки через тестирование. Комментарии продемонстрировали, что немало людей неверно понимают истинную роль тестов в процессе написания кода.

Этой статьей я начну цикл в котором раскрою тему test- (TDD) и behaviour- (BDD) driven development и покажу на практике как разработка через тестирование может помочь писать качественный и надежный код. Познакомлю со всеми основными терминами и подходами.

Цикл будет полезен и интересен всем, кто интересуется темой TDD/BDD, тем кто еще сомневается в необходимости тратить свое время на написание тестов, тем кто пишет, но не уверен что делает это правильно. И даже тем кто уверен. А так же JavaScript разработчикам желающим сделать свой код лучше и надежнее.

Не смотря на то, что в данном цикле статей в качестве примеров используется JavaScript, приобретенные опыт и знания могут быть легко проецированы на ваш любимый язык программирования. Да и кто сейчас не знает JavaScript, надежного друга и кровного врага любого web-разработчика?
Читать полностью »

На днях я зарелизил новую версию своего gem Gon – 4.0.0 и решил привести пару примеров его возможностей и использования. Данная библиотека служит для упрощения работы с данными в MVC архитектуре. Она позволяет работать с данными контроллера из JS пропуская шаги перекидывания этих данных через вью. На сегодняшний день существуют реализации гона для RoR приложений, sinatra-like приложений (sinatra, padrino, etc.) и для .Net MVC.

Карта в админке

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

Читать полностью »

Таня Мисютина (lazytanka), Юрий Подорожный (Inspire) и Антон Ловчиков (object) проведут курс «Интерфейсы для айфона» во второй раз 9 – 12 августа в Москве, в помещении Дизайн-бюро Артёма Горбунова!

Учебный курс «Интерфейсы для айфона» в августе

Читать полностью »

Не все работодатели инвестируют в кадры, а найти деньги на хорошие учебные курсы самостоятельно под силу не каждому разработчику. Решение есть — грант на Brainwashing Rails от проекта Aviasales. Отправьте анкету и станьте одним из 5 стипендиатов, а после курса пройдите собеседование в Aviasales и улетайте работать в Тайланд. И попрощайтесь с недальновидным работодателем.

Стипендия на Brainwashing Ruby on Rails и шанс работать на берегу океана
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js