# Понедельник 28 твитов
Всем привет! На этой неделе с вами я @validoll. Работаю в @adyax занимаюсь разработкой бэкендов на Drupal.
12:36Пишу на PHP, но хочу научиться еще чему-нибудь. Говорю на русском, но учу английский. Использую Ubuntu как десктоп, но... а никаких но :)
12:39В начале своей работы с PHP я работал только с Drupal, и это было прекрасно, пока проект не развалился, и я не остался на улице
13:13Я начал ходить по собеседованиям, и понял, что я ничего не знаю. Это было печально, пришлось в срочном порядке учить основы ООП и пр. теорию
13:14В это время я понял, насколько полезно ходить по собеседованиям, до сих пор иногда делаю тестовые задания just for fun, если есть время
13:17Затем я попал в веб-студию, где запилил свою CMS на Kohana. Не спрашивайте меня "зачем?" :)
13:31Своя CMS - отличный опыт для джуниора. Думаю, каждый должен это попробовать. Понимаешь, почему большие CMS устроены так а не иначе.
13:33Большая беда была в том, что когда я писал CMS то не писал тесты. Было страшно и непонятно, что это и как оно мне в конечном итоге поможет
15:29С тех пор я получил немного опыта и профита от тестов, но еще не имею привычки писать их всегда, к сожалению.
15:30А какие отговорки используете вы, чтобы не писать тесты?
15:33Выбрал “запускать тесты долго”. Твиттер-клиент закрашился. :D twitter.com/backendsecret/…15:40
@backendsecret да уж, я лет 10 так на TYPO3 убил, чтобы понять, что я ничерта не знаю. Потом связался с командой Neos и это откыло мне глаза15:44
@backendsecret "мой код идеален."16:11
@backendsecret а где же вариант "никакие, всегда пишу тесты" чтобы посмотреть ответы? ;)16:32
Т.е. половина разработчиков не знает как писать тесты, вторая - не понимает что пишет :)
16:39С тестами ожидаемо (хотя 4 неожиданно :)). 1 и 4 вариант взаимосвязаны, потому как незнание кода приводит к невозможности/сложности оценки.
16:47Единственный способ научиться писать тесты - это писать тесты.
16:48"Слишком мало времени, чтобы писать тесты!" Перевод: "Я раньше не писал тестов, поэтому не знаю сколько времени мне нужно, но явно больше"
16:52И да, написание тестов - это время, и не только на написание. Не забудьте так же, что тесты это тоже код, и тоже нуждается в поддержке.
16:56Но время, которое тратится на написание тестов окупается при рефакторинге. Рефакторить код с тестами выгоднее, а уж приятнее в 1000 раз!
16:59@backendsecret С другой стороны никто не знает сколько стоит выпустить непротестированный код хотя бы в приемлимом качестве... Баги чинить..17:01
@backendsecret есть ещё вариант "пишу самотестируемый код")17:04
@backendsecret а ваще, любой кто писал тесты, согласится, что: twitter.com/blia/status/79…17:12
Чтобы не бояться писать тесты я начал с малого: брал высокоуровневые методы и писал для них "приемочные" тесты по принципу черного ящика
17:56И тут я узнал неприятную вещь: я пишу код, который невозможно тестировать!
18:04Но тут мне на помощь пришла теория, которую я читал, когда остался без работы (DI, IoC и пр.) Картинка мира сложилась и жить стало легче
18:14@backendsecret вот на этом моя последняя попытка написать тесты и закончилась: я понял, что надо половину отрефакторить для этого18:14
На сегодня все.Завтра говорим про плюсы и минусы удаленной работы, Drupal и его использование (где его можно применять) Задавайте вопросы :)
22:15# Вторник 21 твит
@BesseIFunction @backendsecret вот поэтому я пишу тесты к коду, который неправильно работает. Ну и чтобы изучить незнакомую систему8:24
Доброе утро! Поговорим про Drupal как CMF.
9:38На данный момент в приближенных ко мне проектах используется Drupal 7, который вышел в 2011 году!
9:40При этом он вышел, как говорили, "мертворожденным", т.к. на тот момент не использовал всех плюшек ООП, которые PHP 5.3 могло дать, и хуки :(
9:42Но не смотря на это, 7-я ветка еще жива, и активно используется.
9:43Я не могу точно сказать, почему так. Возможно это тонкий баланс удачности реализации и маркетинга.
9:51Порог вхождения в Drupal всегда было достаточно высок по сравнению с другими CMS.
9:52@backendsecret у нас под капотом свой фреймворк Flow. Писали когда Symfony еще и в помине не было. Сейчас берем некоторые компоненты от туда10:00
По большей части раньше это обуславливалось отсутствием внятной документации. Ситуация изменилась. Документации много, и не только по ядру.
10:15Популярность Drupal - это его проклятие. Я множество раз видел проекты, где он используется, но где его использовать не следовало.
10:16@Sigiller @backendsecret Я сел сразу за 7 друпал. И было это году в 2011. Пока осилишь 7 друпал по мануалам к 6, всё станет понятно :D10:16
@backendsecret вот я как-то все это попытался на русском однажды написать: dimaip.github.io/2015/06/15/abo…10:32
Популярность Drupal обусловлена множеством готовых решений. Но решения эти универсальные, за что приходится часто платить при кастомизации.
10:42Согласно Эрику Эвансу в DDD, на это обречена любая универсальная система.
10:43Интересно, так ли это на практике? Есть у кого-нибудь примеры универсальных систем без боли?
10:43Для Drupal 8 порог вхождения выше за счет использования Symfony 2. Это хорошая чистка сообщества, слабые - уйдут, сильные останутся.
12:30Ну и конечно для Drupal-разработчиков будет плюсом то, что кроме Drupal придется учить и Symfony (на самом деле нет)
12:32Или другой вариант - старые говнокодеры останутся, но к ним присоединятся ковнокодеры из Symphony.
12:43@backendsecret я постоянно хожу на омское кафе vk.com/drupalomsk13:49
.@backendsecret It's another option. Drupal 7 was a proven, successful product. #BackdropCMS improves on it, a little at a time. @EAytpaev22:04
А русскоязычные разработчики всегда готовы поблагодарить @xandeadx, @Spleshka, @kalabro, @NiklanRUS , @graker_ru и др. за блоги и дайджесты
22:38# Среда 5 твитов
Доброго дня всем. Давайте поговорим о рабочем месте. Для меня это лично всегда было больной темой.
12:56Какой способ работы для вас наиболее приемлем?
13:00Большинству нравится приходить в офис когда вздумается. Иллюзия свободы :)
14:35Ситуация с тотальным контролем сложилась не спроста. С одной стороны это безответственные работники, с другой - начальники с амбициями.
14:53В конечном счете и те и другие забывают, что в работе важен результат а не процесс.
14:54# Четверг 23 твита
Доброе утро! Начнем веселье. Вчера работа забрала меня, сегодня будет веселее :)
8:59Раз уж я тут представляю Drupal-сообщество, давайте еще немного о нем поговорим.
9:00Сейчас наступило смутное время, когда D7 еще поддерживается, а D8 вовсю наступает, и возникает вопрос, что же выбрать для знакомства/работы?
9:02Рассмотрим подробнее, что нового нам дает Drupal 8, и какие задачи в нем решены лучше, и какие проблемы Drupal 7 он решает.
9:03Кто пытался сделать адекватное инлайн редактирование полей поймут. D8 предоставляет такую возможность из коробки, D7 - это почти всегда боль
9:06Views - давно, и не без оснований, мощнейший инструмент работы с выводом контента, наконец-то в ядре D8.Теперь используется и админки.
9:11В D8 конфиги наконец-то в коде. D7 хранит почти все в БД, а для кода есть модуль Features, с которым тоже бывают проблемы.
9:14В D8 появилось адекватное превью перед сохранением. В D7 лично я решал это кастомными модулями, потому как штатное превью ни к черту.
9:16Встроенный шаблонизатор Twig (ибо Symfony). Прощай логика в темплейтах.
9:19D8 заточен под мобильную разработку. Почти все темы адаптивные. Имеется REST API.
9:20В D7 прорывом было создание Entity API. Это довольно специфичная вещь, но решала многие проблемы с управлением объектами (не ООП)
9:22D8 имеет еще более навороченную Entity API, теперь можно УДОБНО создавать кастомные типы сущностей через Drupal Console,
9:23А, ну да, и Drupal Console - навороченный инструмент работы с Drupal из командной строки. Управление, генерация кода, установка и пр.
9:25В общем, и Drupal-разработчики будут теперь жить как люди :)
9:26Кто-то спросит "Зачем все это?Почему не использовать чистую Symfony?" Drupal - это CMF, где главное в данном вопросе - Content Managengement
10:33Воспользуюсь возможностью, и спрошу про оценку и планирование времени.
12:27На всех проектах где я работал оценка производилась либо разработчиком либо совместно с тимлидом, на основе предыдущего опыта.
12:28А вот есть умные книжки, где описываются другие методы, но шибко умные, без специально обученного человека и методологии не применить.
12:30Как в вашем проекте производится оценка?
12:33А те, кто выбрал методологию, поделятся с нами в чем ее суть?
13:13@backendsecret Я оцениваю сам, я тимлид. Методологии не сработали. :(13:19
@backendsecret Не выбирал пункт методология, но я, когда оцениваю, стараюсь разделить задачу на подзадачи достаточно мелкие, чтоб их можно=>14:11
@backendsecret Мы даже статью на тему оценивания написали forasoft.github.io/software-estim…
Вот это годно. Спасибо! twitter.com/arseny_vasilev…
14:31# Пятница 2 твита
Сколько времени нужно на одну задачу. Тебе и твоей команде pic.twitter.com/f78VRbC4XI
К разговору об оценке задач. twitter.com/alim_zhan/stat…
8:46@backendsecret давно хочу везде ввести правило - кто говорит что можно быстрее - садится и помогает.10:28
# Суббота 3 твита
А как у вас обстоят дела с балансом семья/работа?
9:14У меня есть правило: в выходные не приближаться к компьютеру.
9:16Кроме того, дома вообще стараюсь не работать работу. Нужно обязательно уходить на работу и приходить с не домой. Психологический триггер.
10:00# Воскресенье 3 твита
Пришло время прощаться. Это была отличная неделя. Спасибо вам!
16:23Меняйте мир к лучшему, начинайте с себя.
16:24