KELiON

14 декабря 2015, Самара, Самарская область

# Понедельник 22 твита

Всем привет! На этой неделе с вами @KELiON.

8:38

Я — фулл-стек из Самары, в данный момент я в Питере, удаленно работаю в Барселонской компании Redbooth, пока офомляю документы для переезда

8:40

. @Savroff пока нет, но начал учить. В компании все говорят на английском, так что мотивации учить особо нет:)

8:44

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

8:50

На меня в 10 классе повлиял одноклассник, у которого уже было 2 игровых сайта и он прилично зарабатывал. Тогда меня веб и заинтересовал

8:53

Я начал изучать html. В этом мне очень помог сайт postroika.ru — там были крутые уроки (не могу гарантировать, что сейчас так же)

8:53

Сейчас с обучением онлайн всё проще, есть codeschool, hexlet и еще много подобных сайтов

8:54

На первую работу, верстальщиком, устроился за месяц до поступления в универ. Начал изучать js и php, ушел больше в программирование

9:00

Потом наступили тёмные времена и я был пхпшником.

9:00

Еще полтора месяца проработал в огромной компании джавистом

9:02

Но после маленьких компаний я там не выдержал и ушел обратно в веб-студию

9:03

Ну а потом меня позвали в @cloudcastler и я перешел на руби

9:05

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

9:07

А кто тут из Самары? Где вы работаете?

9:08

. @dcromster скорее наоброт — любой опыт полезный. Если сразу начинать с хорошего языка, не оценишь, насколько он крут.

9:09

. @dcromster так же с фреймворками. Я работал с zend, cakephp, symfony. Когда изучал symfony 2 считал его идеальным

9:10

. @dcromster пока попробовал рельсы и не понял, что большинство идей были оттуда

9:10
@rubyunderhood понятно)) традиционно: rubyMine, Vim, Sublime, Atom, Emacs?

До недавних пор sublime, сейчас atom. Но пока подбешивает иногда) twitter.com/Savroff/status…

9:25
@rubyunderhood что спрашивали при собеседовании в испанскую компанию, влияла ли вышка на решение компании?

Вышка скорее влияет на разрешение на работу. Вопросов было мало, почти сразу дали тестовое twitter.com/_sashashakun/s…

9:33
@rubyunderhood какими методами качаете новичков?

Методом броска в воду:) Сразу сажают на проект, несколько недель читаешь книги/статьи и изучаешь реальный проект twitter.com/vassilevsky/st…

9:44
@rubyunderhood 5 лет C/C++, потом стал уставать от указателей, тут Ruby был глотком воздуха )...
13:09
@rubyunderhood начинал с железа, микроконтроллеров, С, С++. железо оказалось неприбыльным, вспомнил как весело ставил редмайн и заверте...
13:10

# Вторник 29 твитов

@rubyunderhood Дизайнер => системный администратор => php-разработчик => ruby-разработчик :)
7:32
@anton_davydov @rubyunderhood не писал на PHP – не видел жизни и боли
7:32
@rubyunderhood, Basic/VBA/VB/ASP/Perl/PHP/FoxPro/C#/Ruby :-)
7:32
@rubyunderhood горнорабочий поверхности -> грузчик -> продавец моб.телефонов -> сисадмин -> дизайнер -> программист -> техдир
7:32
@rubyunderhood а, еще контент-менеджера забыл, ну и между этим еще по мелочи всякое
7:32

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

7:34

Мое личное мнение — код вообще никому не нужен. Главное продукт, который получают конечные пользователи

8:23

Поэтому необходимо знать все смежные области, связанные с продуктом: фронтэнд, вёрстка, дизайн, ux, аналитика. Даже типографика

8:24

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

8:26

Кодер с пониманием дизайна, ux и аналитики для продукта полезнее, чем тот, который знает ruby, go, erlang и ждёт, где бы их применить

8:27
@rubyunderhood идеальный программист - как идеальный слесарь)) сильно зависит от контекста)

Согласен, но большинство (рубистов) делают веб-приложения и именно про таких я говорю twitter.com/rainrb/status/…

8:44

Теперь немного детальнее.

10:15

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

10:16

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

10:24

Иногда систему лучше сделать менее расширяемой, уменьшить количество конфигов, но проще в использовании

10:26

Типографика: начните различать длинное тире и дефис,
форматировать списки, ставить правильные кавычки («»)

11:25

Спустя какое-то время вы привыкните к хорошему стилю текста и плохо отформатированный код будет бросаться в глаза.

11:26

Чтобы не запоминать хоткей для кавычек я использую такую автозамену: take.ms/MosB9

11:29
@rubyunderhood а как же рубокоп? по-моему он отлично помогает держать код в порядке в части форматирования, стиля и т.п.

Да, рубокоп отлично решает эту задачу twitter.com/rainrb/status/…

12:34

Кстати кроме кода это еще помогает лучше писать документацию, коммиты/пулл-реквесты

12:35
@rubyunderhood возможно не увидели вопрос :( что по литературе для новичков?

Не могу ничего особенного посоветовать, лично я начал писать на рельсах после Agile Web Development with Rails
twitter.com/pinyslutty/sta…

13:13

Если говорить о программировании и дизайне — обращайте внимание на детали.

13:58

Примеры, когда программист может улучшить что-то в дизайне приложения: определить пол юзера по отчеству,

13:58

… не переспрашивать уже введенную информацию (например email после нажатия на кнопку «напомнить пароль»)

13:59

В этом направлении на меня больше всего повлияли: @artpolikarpov с докладом "технолог тоже дизайнер" на 404фесте: artpolikarpov.ru/2012/01/10/1/

14:02

И @andrey_sitnik на брейнвошинге по фронт-энду

14:03

Из книг — похожие впечатления были от «Программиcт-прагматик» ozon.ru/context/detail…

14:04

Еще посоветовал бы всем Алана Купера «Психбольница в руках пациентов»

14:06
@ilyabirman со своими докладами там же, вот про Ангстрем: youtube.com/watch?v=1_-5mB…

Продублирую твит, т.к. он получился как реплай: twitter.com/rubyunderhood/…

14:44

# Среда 5 твитов

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

8:42

Ну и гемами, само собой, тут же рубисты!

8:42

Чтобы не плодить тонны твитов буду группировать всё в гистах. Первый — Alfred gist.github.com/KELiON/55b3cc5…. Дополняйте и делитесь в комментах

9:10

Дальше дотфайлы gist.github.com/KELiON/55b3cc5…

13:39
@rubyunderhood, ретвитни, пожалуйста: ищем в команду рубистов, которые умеют не только рельсы, но и могут в cli/bgp/cisco/react. Удалёнка.
18:39

# Пятница 19 твитов

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

10:29

Я вот люблю символы экономить, но чтобы не в ущерб читаемости. Поэтому если короткий и длинный код одинаково читаем, выбираю короткий

10:33

Из-за этого не люблю фанатов, которые в название переменной/метода весь контекст засовывают

10:33

Недавно открыл для себя obj.in?(arr) в ActiveSupport вместо arr.includes?(obj). Читается так же, но короче

10:35

С сервис объектами я всегда работаю, как написано в статье @avakhov: avakhov.github.io/blog/2014/10/3…

10:45

В какой-то момент я обнаружил что .call можно опустить и писать просто: Service.(args)

10:45

Только я до сих пор не определился, нравится ли мне эта запись, поэтому чаще использую .call :)

10:46
The Basecamp says it, so it must be true! pic.twitter.com/2aUyDpVE2x
10:48
@Shiroginne @rubyunderhood так точно. 2016 уже не год руби.

Для быстрого старта продукта еще ничего лучше рельсов не придумали twitter.com/nick_jastix/st…

11:24
@rubyunderhood мало кто знает про тип Set например
11:49
@rubyunderhood пруф?

Какой нужен пруф? Такой пойдет? take.ms/SkLtA Всё равно же разговор в срач перерастет. twitter.com/nick_jastix/st…

12:01
@rubyunderhood заметил, что при работе с ActiveRecord часто используют any? там, где достаточно exists? pic.twitter.com/Lh32aPi5DL
12:08

rails console -s (—sandbox) – сделает rollback всех ваших изменений в базе в конце сеанса

12:16

Чтобы не делить миграцию на up/down из-за одно блока, можно использовать reversible: edgeguides.rubyonrails.org/active_record_…

12:22

Вместо
x = hash.fetch(:x, {}).fetch(:y, {}).fetch(:z, nil)
можно писать
x = hash[:x][:y][:z] rescue nil

12:33
@rubyunderhood rescue = bad practice в большинтсве случаев

В данном случае я бы сказал, что справедливо только когда hash — объект, у которого переопределен метод `[]` twitter.com/mr_The/status/…

12:35

И этот метод может выкинуть свое исключение

12:36
@rubyunderhood apidock.com/rails/ActiveRe… почему-то никто не использует, хотя крайне удобная штука
14:32
@rubyunderhood Как считаешь, правильно ли в secrets.yml хранить настройки проекта? Или там лучше хранить только ключи к сервисам и api?

Нет, настройки проекта лучше в переменных окружения все хранить twitter.com/mgrachev/statu…

16:55

# Воскресенье 1 твит

Настало время прощаться. Всем спасибо, на этой неделе с вами был @KELiON, подписывайтесь! :)

21:26

other


@kaspth