validoll

31 октября 2016, Екатеринбург, Россия

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

Всем привет! На этой неделе с вами я @validoll. Работаю в @adyax занимаюсь разработкой бэкендов на Drupal.

9:36

Пишу на PHP, но хочу научиться еще чему-нибудь. Говорю на русском, но учу английский. Использую Ubuntu как десктоп, но... а никаких но :)

9:39

В начале своей работы с PHP я работал только с Drupal, и это было прекрасно, пока проект не развалился, и я не остался на улице

10:13

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

10:14

В это время я понял, насколько полезно ходить по собеседованиям, до сих пор иногда делаю тестовые задания just for fun, если есть время

10:17

Затем я попал в веб-студию, где запилил свою CMS на Kohana. Не спрашивайте меня "зачем?" :)

10:31

Своя CMS - отличный опыт для джуниора. Думаю, каждый должен это попробовать. Понимаешь, почему большие CMS устроены так а не иначе.

10:33

Большая беда была в том, что когда я писал CMS то не писал тесты. Было страшно и непонятно, что это и как оно мне в конечном итоге поможет

12:29

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

12:30

А какие отговорки используете вы, чтобы не писать тесты?

12:33
Выбрал “запускать тесты долго”. Твиттер-клиент закрашился. :D twitter.com/backendsecret/…
12:40
@backendsecret да уж, я лет 10 так на TYPO3 убил, чтобы понять, что я ничерта не знаю. Потом связался с командой Neos и это откыло мне глаза
12:44
@backendsecret "мой код идеален."
13:11
@backendsecret а где же вариант "никакие, всегда пишу тесты" чтобы посмотреть ответы? ;)
13:32

Т.е. половина разработчиков не знает как писать тесты, вторая - не понимает что пишет :)

13:39

С тестами ожидаемо (хотя 4 неожиданно :)). 1 и 4 вариант взаимосвязаны, потому как незнание кода приводит к невозможности/сложности оценки.

13:47

Единственный способ научиться писать тесты - это писать тесты.

13:48

"Слишком мало времени, чтобы писать тесты!" Перевод: "Я раньше не писал тестов, поэтому не знаю сколько времени мне нужно, но явно больше"

13:52

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

13:56

Но время, которое тратится на написание тестов окупается при рефакторинге. Рефакторить код с тестами выгоднее, а уж приятнее в 1000 раз!

13:59
@backendsecret С другой стороны никто не знает сколько стоит выпустить непротестированный код хотя бы в приемлимом качестве... Баги чинить..
14:01
@backendsecret есть ещё вариант "пишу самотестируемый код")
14:04
@backendsecret а ваще, любой кто писал тесты, согласится, что: twitter.com/blia/status/79…
14:12

Чтобы не бояться писать тесты я начал с малого: брал высокоуровневые методы и писал для них "приемочные" тесты по принципу черного ящика

14:56

И тут я узнал неприятную вещь: я пишу код, который невозможно тестировать!

15:04

Но тут мне на помощь пришла теория, которую я читал, когда остался без работы (DI, IoC и пр.) Картинка мира сложилась и жить стало легче

15:14
@backendsecret вот на этом моя последняя попытка написать тесты и закончилась: я понял, что надо половину отрефакторить для этого
15:14

На сегодня все.Завтра говорим про плюсы и минусы удаленной работы, Drupal и его использование (где его можно применять) Задавайте вопросы :)

19:15

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

@BesseIFunction @backendsecret вот поэтому я пишу тесты к коду, который неправильно работает. Ну и чтобы изучить незнакомую систему
5:24

Доброе утро! Поговорим про Drupal как CMF.

6:38

На данный момент в приближенных ко мне проектах используется Drupal 7, который вышел в 2011 году!

6:40

При этом он вышел, как говорили, "мертворожденным", т.к. на тот момент не использовал всех плюшек ООП, которые PHP 5.3 могло дать, и хуки :(

6:42

Но не смотря на это, 7-я ветка еще жива, и активно используется.

6:43

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

6:51

Порог вхождения в Drupal всегда было достаточно высок по сравнению с другими CMS.

6:52
@backendsecret у нас под капотом свой фреймворк Flow. Писали когда Symfony еще и в помине не было. Сейчас берем некоторые компоненты от туда
7:00

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

7:15

Популярность Drupal - это его проклятие. Я множество раз видел проекты, где он используется, но где его использовать не следовало.

7:16
@Sigiller @backendsecret Я сел сразу за 7 друпал. И было это году в 2011. Пока осилишь 7 друпал по мануалам к 6, всё станет понятно :D
7:16
@backendsecret вот я как-то все это попытался на русском однажды написать: dimaip.github.io/2015/06/15/abo…
7:32

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

7:42

Согласно Эрику Эвансу в DDD, на это обречена любая универсальная система.

7:43

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

7:43

Для Drupal 8 порог вхождения выше за счет использования Symfony 2. Это хорошая чистка сообщества, слабые - уйдут, сильные останутся.

9:30

Ну и конечно для Drupal-разработчиков будет плюсом то, что кроме Drupal придется учить и Symfony (на самом деле нет)

9:32

Или другой вариант - старые говнокодеры останутся, но к ним присоединятся ковнокодеры из Symphony.

9:43
@backendsecret я постоянно хожу на омское кафе vk.com/drupalomsk
10:49
.@backendsecret It's another option. Drupal 7 was a proven, successful product. #BackdropCMS improves on it, a little at a time. @EAytpaev
19:04

А русскоязычные разработчики всегда готовы поблагодарить @xandeadx, @Spleshka, @kalabro, @NiklanRUS , @graker_ru и др. за блоги и дайджесты

19:38

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

Доброго дня всем. Давайте поговорим о рабочем месте. Для меня это лично всегда было больной темой.

9:56

Какой способ работы для вас наиболее приемлем?

10:00

Большинству нравится приходить в офис когда вздумается. Иллюзия свободы :)

11:35

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

11:53

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

11:54

# Четверг 23 твита

Доброе утро! Начнем веселье. Вчера работа забрала меня, сегодня будет веселее :)

5:59

Раз уж я тут представляю Drupal-сообщество, давайте еще немного о нем поговорим.

6:00

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

6:02

Рассмотрим подробнее, что нового нам дает Drupal 8, и какие задачи в нем решены лучше, и какие проблемы Drupal 7 он решает.

6:03

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

6:06

Views - давно, и не без оснований, мощнейший инструмент работы с выводом контента, наконец-то в ядре D8.Теперь используется и админки.

6:11

В D8 конфиги наконец-то в коде. D7 хранит почти все в БД, а для кода есть модуль Features, с которым тоже бывают проблемы.

6:14

В D8 появилось адекватное превью перед сохранением. В D7 лично я решал это кастомными модулями, потому как штатное превью ни к черту.

6:16

Встроенный шаблонизатор Twig (ибо Symfony). Прощай логика в темплейтах.

6:19

D8 заточен под мобильную разработку. Почти все темы адаптивные. Имеется REST API.

6:20

В D7 прорывом было создание Entity API. Это довольно специфичная вещь, но решала многие проблемы с управлением объектами (не ООП)

6:22

D8 имеет еще более навороченную Entity API, теперь можно УДОБНО создавать кастомные типы сущностей через Drupal Console,

6:23

А, ну да, и Drupal Console - навороченный инструмент работы с Drupal из командной строки. Управление, генерация кода, установка и пр.

6:25

В общем, и Drupal-разработчики будут теперь жить как люди :)

6:26

Кто-то спросит "Зачем все это?Почему не использовать чистую Symfony?" Drupal - это CMF, где главное в данном вопросе - Content Managengement

7:33

Воспользуюсь возможностью, и спрошу про оценку и планирование времени.

9:27

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

9:28

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

9:30

Как в вашем проекте производится оценка?

9:33

А те, кто выбрал методологию, поделятся с нами в чем ее суть?

10:13
@backendsecret Я оцениваю сам, я тимлид. Методологии не сработали. :(
10:19
@backendsecret Не выбирал пункт методология, но я, когда оцениваю, стараюсь разделить задачу на подзадачи достаточно мелкие, чтоб их можно=>
11:11
@backendsecret Мы даже статью на тему оценивания написали forasoft.github.io/software-estim…

Вот это годно. Спасибо! twitter.com/arseny_vasilev…

11:31

# Пятница 2 твита

Сколько времени нужно на одну задачу. Тебе и твоей команде pic.twitter.com/f78VRbC4XI

К разговору об оценке задач. twitter.com/alim_zhan/stat…

5:46
@backendsecret давно хочу везде ввести правило - кто говорит что можно быстрее - садится и помогает.
7:28

# Суббота 3 твита

А как у вас обстоят дела с балансом семья/работа?

6:14

У меня есть правило: в выходные не приближаться к компьютеру.

6:16

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

7:00

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

Пришло время прощаться. Это была отличная неделя. Спасибо вам!

13:23

Меняйте мир к лучшему, начинайте с себя.

13:24

С вами эту неделю был @validoll. Пока!

13:25

other