dronmdf

7 марта 2016, Worldwide

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

Эту неделю с вами буду я, Андрей Валяев. @Dronmdf.
Я работаю в компании Код Безопасности @Security_Code, в группе разработки Континент.

10:14

Эту неделю мы будем говорить про Agile. Поскольку эта тема мне наиболее интересна.

10:16

Что касается языковых предпочтений - основной мой язык C++, от веб разработки я далек. И собственно разработка у нас хардкорная, серверная.

10:18
@backendsecret что создаете?

Пишем Континент. Это VPN решение. Достаточно популярное в отечественных государственных компаниях и в банках. twitter.com/Onotoly/status…

10:29

В моем представлении слово backend почему-то ассоциируется с web разработкой. Не знаю откуда у меня возник такой стереотип.

10:34
@backendsecret а веб-разработке ни хардкора, ни серверов, ага

Специфика своя.. у нас весь смысл в ядре, а то что выше ядра - служит для поддержки ядерных модулей... twitter.com/Fodoj/status/7…

11:17
@backendsecret а веб-разработке ни хардкора, ни серверов, ага

А в веб разработке все ради web... twitter.com/Fodoj/status/7…

11:18
@backendsecret почему именно эта тема вам наиболее интересна?

Давно уже практикую SCRUM, и сейчас все больше отдаляюсь от разработки в сторону руководства. twitter.com/Fodoj/status/7…

11:19
@backendsecret почему именно эта тема вам наиболее интересна?

Пора задуматься о том, как правильно вести проекты. Укладываться в сроки. Это потихоньку вытесняет программинг... twitter.com/Fodoj/status/7…

11:20
@backendsecret вопрос с порога: как выбрать свой путь джедая и понять, где искать литературу? Хочу стать бэкендером - не знаю, что учить.

Смотря, что подразумевать под backend... :) twitter.com/1_uc1ph3r/stat…

11:21
@backendsecret можно, конечно, просто выбрать язык и писать Backend под конкретную задачу, изучая новое, но вряд ли это лучший путь.
11:21
@backendsecret front-end может быть что угодно - терминал, консольная утилита, десктоп аппликация, ну и страница в браузере, конечно ;)

В свете того, что приложения плавно перемещаются в браузеры, это так. Здесь можно говорить абсолюьтно обо всем! :) twitter.com/lisovskyvlad/s…

11:23
@backendsecret что скажешь, о последних тенденциях в С++? Куда развивается язык, развивается ли он, и нравится ли тебе это?

Мне нравится. В КБ переходим на c++14. Новый код выглядит гораздо более лаконичным, чем раньше. Это большой плюс. twitter.com/axique/status/…

11:25
@backendsecret расскажи за user/kernel space стеки tcp/ip (и там вопрос про плюсы в целом был от кого-то, тоже низобудь)

Основной вопрос с юзерспейсом - скорость. Надо сказать несколько гигабит нормально тянет. Вопросы начинаются >10. twitter.com/strangeqargo/s…

11:27
@backendsecret расскажи за user/kernel space стеки tcp/ip (и там вопрос про плюсы в целом был от кого-то, тоже низобудь)

Мы серьезно думаем над юзерспейсом, позволит юзать плюсы... Ядерные модули это скучно. :) twitter.com/strangeqargo/s…

11:28

SCRUM мы практикуем давно. Помоему больше 10 лет. где-то в 2005 году @scrumtrack проводил у нас один из своих первых тренингов.

11:34

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

11:35
@backendsecret я вот впечатлился, после того как на графики shader.kaist.edu/mtcp/ вот тут посмотрел. жуть.

Я не верю, что юзерспейс может обогнать ядерный уровень, но зависит от... twitter.com/strangeqargo/s…

11:39
@backendsecret я вот впечатлился, после того как на графики shader.kaist.edu/mtcp/ вот тут посмотрел. жуть.

Если юзерспейс терминирует трафик, то это возможно. У нас чаще встают задачи по обработке проходящего трафика. twitter.com/strangeqargo/s…

11:40

Кстати про #agile. Через неделю в Москве проходит #agiledays agiledays.ru. Я там буду.

11:45
@backendsecret а, ну если у вас само приложение в ядре крутится, плюс оптимизированный стек, то да.

Сейчас у нас трафик полностью обрабатывается в ядре, не попадая в US. Через US скорее всего будет медленнее. twitter.com/strangeqargo/s…

11:47
@backendsecret веб обычно просто обертка вокруг хардкора и серверов
11:55

Какие методологии вы используете?

12:19
@backendsecret @strangeqargo ну тогда понятно, что в юзерспэйс нехер что-то тащить :)

В юзерспейсной обработке есть свои плюсы. Тот же анализ трафика в ядре - это извращение... twitter.com/ivanenok/statu…

12:55
@backendsecret @strangeqargo ну я так понимаю траф сквозной в кернеле пролетает, а стата льется в юзер и там процессится уже?

Просто зашифровать или расшифровать - думать особо нечего. Но всякие системы предотвращения в ядре не пилят... twitter.com/ivanenok/statu…

13:05
@backendsecret да у вас похоже backend для backend'а :)

Наша работа вообще обычным пользователям не видна. :) twitter.com/ipronix/status…

13:06

Наша служба и опасна и трудна...
И end-юзерам обычно не видна...
:)

13:07
@backendsecret а вот придет железячник какой-нить и скажет что вы со своим высокоуровневым C/++ фронтендщики для настоящего хардкора

Или хуже того... придет и скажет, что здесть программить, это все в железе надо делать, а ядерный уровнеь - фронтенд twitter.com/ipronix/status…

13:13
@backendsecret точно точно. особенно с трафиком.
13:21
@yevvers очень распространенное явление. безопасник который защитил правильно себя - явно без работы сидит :) @backendsecret @Security_Code
14:08

Почему-то существует стереотип, что SCRUM нужно делать точно по рецепту, иначе это не SCRUM. Скрам, но...

16:59

... Джефф Сазерленд так не считает. mann-ivanov-ferber.ru/books/scrum-a/… @mifbooks. SCRUM это такой же адаптивный процесс, как и другие agile методологии

17:02
@backendsecret deadline-driven

Времени всегда не хватает. И это нормально. Главное тратить время с максимальной пользой, делать самые важные вещи. twitter.com/vassilevsky/st…

18:54

... У нас всегда пожеланий, идей, или багов больше, чем мы можем сделать. Да у нас старый проект и в нем много багов, мы работаем над этим.

18:55

Сколько в ваших проектах зарегистрированных багов?

18:57

Хочу поинтересоваться у тех, у кого нет багов, как вы этого добиваетесь?
Я не верю, что в процессе не возникает и не обнаруживается ошибок.

19:00
@backendsecret ниче не делаю.

А кто нибудь использует продукт? :) twitter.com/blia/status/70…

19:02
@backendsecret да, куча таких же бездельников.
Вот продукт.
github.com/blia/zenify
Хотя и в нем 1 ишью висит, но мне лень закрыть.

Да, это возможно... размер продукта тоже имеет значение. :) twitter.com/blia/status/70…

19:06

А вот у кого больше чем сотни багов. Тысячи? Проект большой?

19:31
@backendsecret У всех. Просто не у всех достаточно хорошие тестировщики.

Ну ненайденные баги считать - занятие вообще безнадежное. Есть такой метод - когда баги вносят специально. twitter.com/webholt/status…

20:28

На мой взгляд - 80% багов - это просто потенциальные доработки в беклог. Они не мешают жить. Торопиться с их исправлением - вредно.

20:30

Идет обсуждение нового стандарта c++, многое из того, что все хотят не входит.
usingstdcpp.org/2016/03/05/tri… модули, корутины, рейнджи, концепции

21:33

На мой #agile взгляд, это тоже нормально. :) Что-то новое они определенно включат в c++, и язык становится лучше. Будет хуже, если испортят.

21:38

Всем привет! Меня зовут Пётр и на этой неделе я расскажу все секреты разработчика бэкенда, которые знаю!

9:38

Секрет1: меньше кода = лучше! Но это не про заковыристые однострочники или фанатичное DRY...

10:45

Меньше кода=лучше-это про выбор простых решений,простых абстракций,простых реализаций, достаточных для 90% пользоват habrahabr.ru/post/153225

10:47
@backendsecret Не всегда, если абстракция сложная, лучше написать чуть больше простого кода, чем перемудрить sandimetz.com/blog/2016/1/20…
13:43

Секрет2: выбор подходящей технологии. Зачастую говорят: "каждой задаче - свой инструмент для решения" - не совсем так...

14:14

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

14:16

Выбрать _наиболее_ подходящий язык/СУБД/Фреймворк из десятка вполне подходящих поможет опыт и интуиция - это работа для CTO/Тимлида

14:18

Секрет3: хороший инструмент - обычно, это популярный инструмент. Следствие хороший тулинг, много документации/статей, жить становится проще!

14:21

Есть нишевые исключения, но для типового программного продукта выгодно выбирать популярные технологии (выгода в сроках/качестве/стоимости)

14:23

Например, для web лучше выбрать PHP/Node/RoR, легче поддерживать, будет меньше ошибок, чем, допустим, при использовании Yesod (Haskell)

14:25

Знаете сколько в Yesod ошибок/недоделок/шероховатостей? Мало кто знает, потому что мало кто использует, а на что-то вы натолкнётесь впервые

14:27

С Yesod на одной чаше весов у вас будет пуленепробиваемая система типов Haskell, а на другой ОГРОМНЫЙ НАПИЛЬНИК,придётся всё доводить до ума

14:28

Это не был наезд на Haskell, лишь пример "популярная технология vs не очень". Безусловно, у Haskell есть свои узкие ниши.

14:29

Продолжая про выгоду выбора популярных технологий. Хотел я однажды сделать реактивное full stack приложение. Взял Clojure+ClojureScript...

14:59

Сам язык Clojure классный (судя по книге), функциональный, имутабельный, JVM экосистема на серевере=много готовых Java библиотек если что...

15:03

На деле куча подводных камней и вопросов, которые НЕ гуглятся и даже не стековерфлокаются (какое слово придумал!)

15:06

На Meteor (full stack nodejs) всё заработало практически без вопросов из коробки. Хуже масштабируется,чем Clojure, но в целом выгодный выбор

15:10

На Meteor (fullstack nodejs) всё заработало почти без вопросов из коробки.Хуже масштабируется, чем Clojure, но выгоднее(сроки/качество/цена)

15:14

Продолжая историю Clojure->Meteor, если отказаться от требования реактивности, тот проект ещё проще и быстрее было бы сделать на PHP!

15:27

В итоге, делаю так: свои web проекты на интересных технологиях (например Clojure, Elm), серьёзный бизнес на популярных (PHP, Node)

15:30

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

15:33

С другой стороны, у go слабоват пока инструментарий: IDE, дебаггер, пакетный менеджер - на фоне PHP/Node всё плохо, трудно быть продуктивным

15:38
@backendsecret а как же командное принятие? CTO не пишет код, откуда ему знать?

Конечно, если CTO не пишет код, или вся команда достаточно опытная - мнение каждого будет ценно! twitter.com/borovikov/stat…

16:55
@backendsecret Что скажешь насчёт применения популярного ЯП (Ruby/PHP), но непопулярного фреймворка? Та же история? Мне кажется, чуть лучше
21:26

Отличный вопрос от @AlexWayfer про выбор web фреймворка: практичнее выбрать что-то популярное: Symfony/Laravel/Yii, RoR/Sinatra,Django/Flask

21:32

Но это не столь критичный вопрос,в отличие от выбора языка/платформы. Крутые эффективные проекты на самописном фреймворке+пакеты не редкость

21:39

Выбор фреймворка, в том числе, зависит и от размера команды/амбициозности проекта. У крутых вообще всё своё (типа Badoo).

21:43

По фреймворкам для большинства web проектов я бы выбирал Laravel: простота+батарейки+очень позитивная атмосфера вокруг, хорошо развивается

21:52
@backendsecret а что думаешь по поводу "тяжелых" штук типа ASP.NET (C#) и Spring (Java)?

ASP.NET когда-то казался перспективным, особенно когда они выпустили первую версию своего MVC... twitter.com/anroypaul/stat…

21:55

Шли годы, а ASP.NET так и выстрелил. Нам обещали золотые горы ASP.NET vNext, теперь обещают 1M RPS .NET Core

22:01

Есть, конечно, ниши ASP.NET - корп. приложения полностью завязанные на стеке MS + одна история успеха от StackOverflow

22:03

ASP.NET напоминает WindowsPhone,который с каждым релизом обещает всех порвать, но популярны почему-то Android/iOS (PHP/Node)

22:07
@backendsecret и чтобы считать дотнет "не выстрелившим"

Если сравнить с тем, как выстрелил Nodejs за несколько лет, то ASP.NET выглядит бледно twitter.com/retran/status/…

22:11

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

22:18

Спрашивали про Spring(Java). Spring Boot позволяет очень быстро запустить проект/сервис на любой вкус-удобно, но как там дальше? Поделитесь!

22:24

Всегда любил Yii, но как-то он сдал :( Зайдите на сайт, документация по виджетами Yii 2.0 почти вся TBD, даже по гридам! Сравните с Laravel

22:31
@backendsecret tiobe.com/tiobe_index - не вижу выстреливания, особенно если учесть, что основная ниша шарпа сейчас как раз веб-бэкенд

Ценное упоминание, кстати, что на бэкенде тоже бывает разделение бэкенд-бэкенд и бэкенд-фронтенд twitter.com/retran/status/…

22:34

Признаюсь в странном: пару лет назад продал свой MacBook Pro и купил Sony Vaio Pro 11" - не пожалел! А с Windows 10 совсем удобно стало.

22:39
@backendsecret производительность тоже хорошая? то-то я смотрю, все крупные проекты с миллиардом уников в день на нем... ;)))

Производительность рантайма .NET - отдельный вопрос. Читал, что где-то +/- на уровне JVM (сам не тестировал) twitter.com/nmatuhin/statu…

23:01
О, еще понедельник, а что-то у людей пригорает уже от @backendsecret :D кажись все плохо)

Разве же это плохо?) twitter.com/kotchuprik/sta…

23:32

Всем привет! На этой неделе тема - браузеры и всё, что с ними связано. Буду отвечать сам, если не смогу - уточню у девелоперов Vivaldi :-)

11:38

Интересное наблюдение: самые жаркие споры среди девелоперов возникают по поводу какой-нибудь мелочи, которую изменить - пара минут :-)

12:09

Баян, но прикольный: потратив годы и миллионы баксов, учёные научились копировать двух пьяных мужиков, несущих диван pic.twitter.com/VcLPZB0gx9

13:03
The @chriseidhof effect? pic.twitter.com/y8h0sYS2d5

Интересное наблюдение: зависимость обильности растительности на лице программистов от используемого языка :-) twitter.com/morqon/status/…

13:29

Интересное наблюдение: Аутсорсинг - очень удобный стиль работы, вот только за недельную поездку в офис успеваешь сделать гораздо больше...

13:58

Надо тортик сходить купить - у Твиттера, оказывается, юбилей сегодня, 10 лет...

15:24

По просьбе @anton_davydov попробую рассказать вкратце про процесс разработки и тестирования Vivaldi.

16:59

Тесты, естественно, есть, как самописные, так и сторонние. Многие тесты работают в автоматическом режиме.

17:01

Особая проблема - тестирование после выхода каждой новой версии движка. Без этого тестирования всё отвалится при первом же обновлении.

17:02

Код в Chromium меняется оперативно, и, порой, значительно. В итоге, например, несмотря на все усилия, при переходе с 48 на 49 - куча багов.

17:04

К счастью, между 49 и 50 не так много изменений, обновление проходит легче. Но всё равно - гемор. Впрочем, как у всех Chromium based.

17:05

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

17:06

Патчи - принимаем, когда по делу и грамотно. Но это - редкость. Лично помню патч от пользователя для исправления установки в Mandriva.

17:08

На самом деле - 98% это код Chromium, так что патчи шлют в основном туда. Но - общие, не для Vivaldi конкретно.

17:09

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

17:10

Ветки ведём две. Одна - тестовая (еженедельки), другая - "стабильная" (беты). В стабильных отключаем неготовое - например, почтовик M3.

17:11

В общем, вкратце - как-то так.

17:12

Из языков - в основном HTML/CSS/JS, но есть и девелоперы на C++ - они колдуют с кодом Chromium и с функциями, которые мы берём из него

17:16

Как зарабатываем :-) Довольно популярный вопрос. Как все: контракты с поисковиками, с онлайновыми сервисами и магазинами.

17:32

В России партнёры - Яндекс, OZON.ru, AliExpress, несколько игровых сайтов. Также работаем с eBay, Booking.com, и т.д.

17:33
@backendsecret сервисами и магазинами - можно подробнее? Неужели хвататет?

Нет, конечно :-) Там пока очень небольшие суммы идут. Но растут - и это обнадёживает :-) Живём на деньги Йона пока. twitter.com/dcromster/stat…

17:40
@backendsecret а нода что делает?

Node.js - в основном для внутренней разработки, а вообще - модули NPM. В Vivaldi открыть vivaldi:credits и глянуть ) twitter.com/dcromster/stat…

17:48
@backendsecret ок. Но не превратится ли браузер в монстра со всеми возможными фишками и лишь 10% из них будут пользоваться люди?

Фишки - скрываются/отключаются по желанию. А собрать по 10% на каждую фичу - вот и userbase :-) twitter.com/dcromster/stat…

17:55
@backendsecret планируются рекламные баннеры а-ля древняя Опера (или уже есть O.o)?

Нет конечно. Эту фичу оперную мы реанимировать не будем :-) twitter.com/dcromster/stat…

17:55
@backendsecret странно, я думал раби/джаваскрипт-хипсторы будут в топе с 6+ )

:-) twitter.com/strizhechenko/…

17:57
@backendsecret а ты только по России или всемирно? Если только по Рос то почему Россия? Чем был продиктован такой выбор?

О, Хакер подоспел очень вовремя :-) Вот здесь - подробно, обо всём: xakep.ru/2016/03/21/5-y… twitter.com/dcromster/stat…

18:01

Оказывается, Хакер теперь платный. Статья доступна полностью только подписчикам. В общем, живу и работаю из России, т.к. здесь лучше :-)

18:31

Работаю не только по России, но и по миру. На мне локализация вся, более 50 языков, 216 переводчиков. Тестирование, репорты, и т.д.

18:32
@backendsecret много от вас патчей к хромиуму?

Честно - не в курсе. Но явно немного пока. twitter.com/dcromster/stat…

18:33
@backendsecret как вообще попал к Йону в Вивальди? Работаешь на полной ставке?

С Йоном дружим ещё с 2005 года, работаю на полной ставке. Но за троих - задач очень много. twitter.com/dcromster/stat…

18:34
@backendsecret сорри если вопрос байн. вдруг вы в курсе почему опера выкинула свой движок и охромела?

Вот здесь в доступной части статьи всё есть: xakep.ru/2016/03/21/5-y… twitter.com/oleg_antonyan/…

18:35
@backendsecret если не секрет магазин много приносит (в % от всего дохода) ?

Магазин только недавно открылся - рано говорить о результатах. Но магазин - не для прибыли. Для узнаваемости бренда. twitter.com/dcromster/stat…

18:36
@backendsecret... разработчик бэкенда... на этой неделе всё о браузерах... пиар очень нужного всем браузера... ни одного твита про бэкенд...

Ну, какие вопросы, такие ответы :-) twitter.com/Nicklasos/stat…

18:37
@backendsecret у вас до сих пор хорошее отношении к Хокону? Создаваемый им новый браузер предназначен для защиты аудитории Opera от Vivaldi?

К Хокону - ну, да. В общем хорошее :-) По защите аудитории - не знаю точно. Но возможно. twitter.com/itrew_ru/statu…

19:00

OK, появилась полная версия статьи: issuu.com/farsenvo/docs/…

19:20
@backendsecret как сделать чтобы вкладки открытые на старте загружались в бэкграунде,без того чтобы на них переходить? Не нашёл в настройкаx

Пока нет такой опции. twitter.com/mwotaji/status…

20:07

# Вторник 72 твита

Всех девушек спешу поздравить с 8 марта! Процент девушек среди читателей наверное невелик, но вы есть!

9:44

Думаю о чем повести сегодняшний разговор?

9:52

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

9:59

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

10:01

Есть два основных направления в сериализации - поменьше объем, или поменьше напряга. На чъей стороне ты?

10:03
@backendsecret а чего вы там изобретали, все уже было изобретено в то время

Помоему в то время все изобретали... Не, мы использовали либы. ACE может кто помнит? boost тогда еще только появился twitter.com/ivanenok/statu…

10:15

У бинарного протокола есть схема. Для текстовых протоколов тоже можно сделать схемы, но обычно это лишние телодвижения. (схемы снаружи)

10:22

Схемы помоему полезны, спасают от глупых ошибок.

10:23
@backendsecret Текст + gzip

text+gzip это удобно, если все происходит через http. twitter.com/subzey/status/…

10:25
@backendsecret хз, я в то время ковырялся с CORBA, там вполне себе сериализация была. интероперабельность кривенькая была, но работала.

В Windows использовался COM, там тоже что-то было. COBRA мы не смотрели. Я честно говоря не знаю, откуда велосипед. twitter.com/ivanenok/statu…

10:29
@backendsecret хз, я в то время ковырялся с CORBA, там вполне себе сериализация была. интероперабельность кривенькая была, но работала.

Возможно кастомный протокол возник потому, что взаимодействие между Windows и FreeBSD... twitter.com/ivanenok/statu…

10:30

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

12:16

Это риск проекта. Что решение окажется не таким удачным, и не взлетит. Микросервисы борятся с этим путем локализации взаимодействия.

12:23

Если мы говорим про более-менее монолитный проект, то #agile помогает. #agile заранее настраивает нас на неокончательность решения.

12:25

Неокончательность решения заставляет нас реализовывать гибкую архитектуру. В отличии от неитеративных разработок, где все делается "навсегда

12:27

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

12:31
Чому авторы @backendsecret так не любят писать твиты тредом?

Не хватает места, чтобы закончить мысль :( twitter.com/strizhechenko/…

13:38
@backendsecret это когда руками собираешь что-то, практически в классическом виде header|body и тд :)

Не, ну ООП мы использовали давно :) так что хеадеры вручную собирать не приходлось. :) но боди по полям набивали... twitter.com/ivanenok/statu…

14:03

Есть две стороны медали - использовать библиотеку для сериализации объектов, или просто набивать json/xml и тд.

14:05

Билиотека для сериализации объектов - это жестко. :) Хотя в плане командного взаимодействия и фиксированного API - это правильно.

14:06

В гибкой разработке удобнее менять API по мере необходимости. Жесткие контракты тормозят разработку.

14:09

Кстати вот #protobuf... Его тоже приходится руками набивать, я не вижу большой разницы по сравнению с ручной набивкой json.

14:11
@backendsecret но все равно proto поддерживать, как то версионировать. Простой json/xml кажется проще

API нужно поддерживать и версионировать. Это сложность, за нее надо платить.. Без всего этого гибче и быстрее. twitter.com/crashkin/statu…

14:20
@backendsecret делать это вручную плохо, в haskell и scala используют generic derivation. Так что схема тоже есть просто она в ADT.

Ну это не везде доступно. twitter.com/notxcain/statu…

14:21
@backendsecret тот кто хоть раз делал оптимизации для сильносвязного графа, понимают какой в этом профит и риски.
14:50
@notxcain @backendsecret вопрос не в поддержке, а в простоте наверное. Json проще - protobuf сложнее:)
14:51
@backendsecret @crashkin любое API это контракт, не понимаю как можно его не поддерживать? Есть же клиенты.

Контракт может быть разной степени жесткости. При наличии клиентов, которых нельзя обновить, модификация усложняетя twitter.com/notxcain/statu…

14:53
@backendsecret @crashkin любое API это контракт, не понимаю как можно его не поддерживать? Есть же клиенты.

Чем меньше обещаний, тем проще их соблюдать. Можно пообещать json, а дальше пусть опирается на значения по умолчанию twitter.com/notxcain/statu…

14:58

Вопрос к тем, у кого итеративный подход к разработке. #agile
Какова у вас длина спринта?

20:24
@backendsecret неделя, как-то успеваем (хотя некоторые важные задачи не успеваем в пределах одного спринта решить)

Чем короче, тем, на мой взгляд лучше. Ограниченные сроки лучше мотивируют, не дают расслабляться. twitter.com/b3ard0m/status…

22:15
@backendsecret 2-2,5 недели

Разной длины? Если не успеваете, накидываете несколько дней? :) twitter.com/last_khajiit/s…

22:15

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

22:18

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

22:20

Фокусировка на демо вообще очень помогает еще при планировании. @henrikkniberg советует на обороте карточек заранее писать план демо.

22:22
@backendsecret неделя, как-то успеваем (хотя некоторые важные задачи не успеваем в пределах одного спринта решить)

Немного странно звучит. Вы же сами должны строить свои планы на спринт. Слишком много берете? Это демотивирует. twitter.com/b3ard0m/status…

22:25

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

22:28

Размер задач - стандартная отмазка. У нас же эпическая фича, мы работаем над этим, на демо нечего показывать. Это может долго продолжаться..

22:30
@backendsecret ну, будет решена куча мелких подзадач, от которых толку нет без остальных.

Не подзадач. А историй. :) Каждая история должна нести пользу. Каждый спринт должен нести пользу. Пусть небольшую. twitter.com/strizhechenko/…

22:35
@backendsecret ну, будет решена куча мелких подзадач, от которых толку нет без остальных.

Если по отельности подзадачи бесполезны - где уверенность, что они могут сложиться во что-то полезное? Туда ли идем? twitter.com/strizhechenko/…

22:37
@backendsecret а если история - перепилить по всему коду что-то (оказалось, что сделанное в начале разработки предположение - неверно)?

Для этого и нужны спринты. Чтобы вовремя понять что не так. Для этого нужно каждый спринт демонстрировать результат. twitter.com/strizhechenko/…

22:41

На демо можно показывать технические вещи. Если заказчик видит пользу, то проблем нет. Покажите ему пользу. #agile

22:59
@backendsecret постоянно работаем в пределах 1 недели/спринт и редко остается 1 задача не завершенная. ПМ мастер декомпозиции!
23:01
@backendsecret в конце спринта всегда чек лист - как задачи помогут пользователю/бизнесу
23:02
@backendsecret при недельном спринте слишком много времени уходит на сам скрам. Три дня на кодинг по сути.

Чем короче спринт, тем меньше нужно планировать. Может быть вы СЛИШКОМ детально планируете? Получается ли по плану? twitter.com/borovikov/stat…

23:05
@backendsecret при недельном спринте слишком много времени уходит на сам скрам. Три дня на кодинг по сути.

Это вопрос на ретроспективу. А почему демо и планинг съедают два дня? У нас пробовали таймбоксить демо... twitter.com/borovikov/stat…

23:07
@backendsecret во-первых много времени уходит на организацию митинга, во-вторых они сильно выбивают из потока.

Я вот не понимаю, как можно тратить на планирование по два дня. Но у нас своя специфика, заказчик внутренний, проще. twitter.com/borovikov/stat…

23:11
@backendsecret ещё на ретро решили, что слишком дробить задачи плохо, продактоуер жаловался что демо на мелких задачах неинтересные

Мы тоже на своем опыте поняли, что на демо нет смысла мелочиться - три основных фичи и ок. Мелочи - скучно. twitter.com/borovikov/stat…

23:14
@backendsecret @borovikov Я предлагаю вообще спринты убрать. В стартапе каждый сам себе продукт менеджер.

Канбан. Но при этом всеравно каждый должен быть нацелен на скорейшее завершение работ. Все должны понимать... twitter.com/freiksenet_ru/…

23:29

Мне кажется, что канбан может быть от лени. Нам надоело тратить столько времени на планирование - долой спринты. У нас теперь канбан. :)

23:32
@backendsecret @borovikov Я предлагаю вообще спринты убрать. В стартапе каждый сам себе продукт менеджер.

Есть еще холакратия. Это когда люди сами понимают что и зачем им нужно делать. И им не нужны никакие методологии... twitter.com/freiksenet_ru/…

23:36
@backendsecret при холократии, 2-3 чувака, не умеющиеся договариваться, но дико звёздных, убивают проект весьма быстро :)

При SCRUM они тоже могут весьма сильно попортить все дело. :) Я думаю холакратия на ровном месте не появляется. twitter.com/ivanenok/statu…

23:40
@backendsecret угу, она вырабатывается долгими тренировками не убивать друг друга за пятничным пивом и находить консенсусы :)
23:45
Тут переписали с go на rust, из-за "низкой эффективности использования памяти при больших нагрузках" @backendsecret twitter.com/opennetru/stat…
10:08

Секрет4: масштабирование. Каждый интернет-магазин мечтает стать Алибабой или Амазоном, а каждая CRM хочет продаваться как Salesforce...

11:33

Но есть реальность, бизнес план и бюджет на старт. Мастабирование по вертикали дешевле, проще, и имеет большой запас при современном железе

11:40

Чтобы писать супер-распределённую отказоустойчивую систему с самого начала, нужно точно понимать зачем вам это нужно

11:41

Выбираем СУБД: пяток MongoDB/RethinkDB (легко масштабировать в горизонт) или пару(mst+slv) надёжных и быстрых PostgreSQL (вертикально)?

11:53

Кстати, про PostgreSQL рекомендую ​SDCast #33, конкретно на тему масштабирования начиная с 33 минуты ​sdcast.ksdaemon.ru/2015/12/sdcast…

11:54
*me смотрит на заканчивающийся IBM p780 и понимает, что e850 в России тупо невозможно купить* twitter.com/backendsecret/…

Бывает и так! Хорошо когда есть рост, бизнес идёт и потребности увеличиваются. twitter.com/meowthsli/stat…

11:58

Опрос для статистики типовых проектов: для старта вашего недавнего/текущего/ближайшего проекта что бы вы выбрали?

12:19
@backendsecret CQRS + EventSourcing + Cassandra, будет и надежно и масштабируемо
12:37

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

18:26

Например, рендеринг web на PHP/Node/RoR, сложная бизнес-логика на JVM, а картинки жмём на чистом Си

18:29

Отличная статья про микросервисы от Фаулера: martinfowler.com/articles/micro… (перевод на хабре: habrahabr.ru/post/249183/ )

18:34

Но с микросервисами добавляется сложность на интеграцию и особенно на интеграционное тестирование

18:41

Впрочем, использовать несколько ЯП можно и в монолитe, как делают ребята в Рамблере с Clojure + jRuby в единой JVM youtu.be/yA8gJ_1ukY0

18:44

Учитывая, что сейчас каждый второй ЯП транслируется в JS, интересно было бы увидеть пример Node приложения собранного из нескольких языков!

18:47

Порекомендую выпуск Software Engineering Daily про историю перехода от монолита к микросервисам в SoundCloud softwareengineeringdaily.com/2016/02/04/mov…

19:35

Между тем, не так давно пробегала новость, что SoundCloud под угрозой закрытия, убытки-с consequenceofsound.net/2016/02/soundc…

19:48

К слову softwareengineeringdaily.com ежедневный (!) подкаст без бла-бла, от архитектуры и методологий до языков и фреймворков - выбирай по вкусу

20:10

Если же хотите отвлечься на холиварную тему, послушайте нашумевший выпуск Разбора Полётов про ООП головного мозга razbor-poletov.com/2016/03/episod…

20:31
@backendsecret я бы выбрал какой-нибудь slim + php-di, а потом можно легко переехать на любой фреймворк, если нужно. php-di.org/news/18-slim-b…
22:27

# Среда 61 твит

@backendsecret нет, на разных проектах по разному просто. Менять длину спринтов и докидывать стори по ходу дела - вроде как "неканонично" (:

Не просто неканонично, ритм сбивается. Делать в разных командах синхронно - тоже удобно. Демонстрация в один день... twitter.com/last_khajiit/s…

9:14
@backendsecret @strizhechenko здесь вам не тут! В Германии очень пекутся за прайваси и тишину, за стендап в опенспейсе дадут по шапке.

Если стендапы едят много времени, и коммуникации в процессе работы хватает - можно делать стендапы не каждый день... twitter.com/borovikov/stat…

9:18

@backendsecret Я знаю, что это ересь... :)

9:20
@backendsecret тем более, если демо проводится для одних и тех же людей или части проекта у разных команд сильно завязаны друг на друга
10:04

У нас SCRUM of SCRUM проходит в переговорке. Полчаса минимум. :(

12:37
@backendsecret пустая трата времени?

Тут надо модерирование. Можно было бы в 10 минут уложиться, если не чесать попусту языками... :) twitter.com/dcromster/stat…

15:18
@backendsecret теперь я знаю как это называть

Официальный термин при масштабировании SCRUM.
guide.agilealliance.org/guide/scrumofs… twitter.com/dreamx_max/sta…

15:19
@backendsecret митинги = чесать языками попосту :D

Помню на прошлом #agiledays выступал Антон Зотин. #Agile коуч в Nokia. msk15.agiledays.ru/members/profil… Очень рекоммендую. twitter.com/dcromster/stat…

15:25

@backendsecret Разработчики там настолько круты, что их учить не надо. Но при проведении встреч они нуждаются в фасилитации. Это помогает.

15:27

Вчера всплыла тема про глобальные переработки. Рефакторить по шагам - дольше, но видно результат. Все сразу - опаснее и можно зарыться.

20:35

В этом году Антон Зотин так же будет на #agiledays agiledays.ru/members/profil…. Пойду.

20:43
@backendsecret + бизнес почти всегда отказывается тратить >месяца на переписывание. По чуть-чуть и в фоне — рефакторинг становится реальным

И бизнес можно понять... Он платит деньги. А в этот месяц за что? twitter.com/Bubyakin/statu…

22:14

Рефакторинг - он всегда двигает проект в какую-то сторону. Давайте попробуем угадать, что захочет заказчик завтра. :)

22:16
@backendsecret естественно! Часто мы рефакторили в 10-20% времени с молчаливого согласия безнеса. По большей части для себя самих

Бизнес должен понимать, что технический долг копить нельзя. Но и команда должна понимать.. :) И тратить на это время twitter.com/Bubyakin/statu…

22:18

Я не очень-то верю в глобальный рефакторинг. И в переписывание с нуля не верю. Лучше обычно не становится. В постоянное улучшение верю.

22:20

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

22:22
@backendsecret переписывание срабатывает, если только за ним идет постоянное улучшение

И если первую версию не надо поддерживать.. :) Но почему нельзя применить постоянное улучшение к ней? Это дешевле. twitter.com/followalgerd/s…

22:23
@backendsecret легаси приложение, написанное другии людьми.Миграция на фреймворк с большим коммьюнити с долгим и продуманным планом развития

В любом приложении есть скрытые знания. Которые теряются при переписывании. И по граблям придется пройти снова... twitter.com/followalgerd/s…

22:28

@backendsecret Но наверное я не буду так категорично это утверждать... бывают очень старые приложения которые нужно переписывать. :)

22:29

Вопрос вот в чем. При переписывании понимают ли разработчики реальные проблемы имеющегося решения, или просто не хотят разбираться?

22:32
Типичное проявление симптомов болезни NoSQL и BigData. arbinada.com/main/ru/node/1… pic.twitter.com/E9SmEyWxou
22:36
@backendsecret самая большая засада с улучшением в том, что никому не хочется ковырятся в чужом говнокоде. Свой говнокодец улучшать можно

Но как же командная работа? Как жить с тем, что пишут другие? Я бы уж точно лучше написал! Переписать все нафиг! :) twitter.com/borovikov/stat…

22:45
@backendsecret чем хуже код, тем больше все это проявляется. если код совсем хреновый быть текучке

Откуда же ему стать хорошим, если никто не хочет ковыряться в чужом говнокоде, только в своем? twitter.com/borovikov/stat…

22:50

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

22:52
@backendsecret заставлять себя. я про то, что есть предел, после которого никто себя заставить не может и проект тухнет

Когда всем становится всеравно, проект тухнет. Но чтобы этого не было, достаточно, чтобы кому-то было не всеравно. twitter.com/borovikov/stat…

22:53
@backendsecret заставлять себя. я про то, что есть предел, после которого никто себя заставить не может и проект тухнет

По поводу заставлять себя - правильное замечание. Нужно быть терпимее, вспоминать себя прошлого и воспитывать... twitter.com/borovikov/stat…

22:55

Кто как проводит CodeReview?

22:57
@backendsecret я про те проекты на которые с самого начала всем пофиг. если есть неравнодушные, то код и вряд ли будет настолько плохим
22:58
@backendsecret непристало принцам, конюшни чистить, ибо лучше пойти на Go и NodeJS, микросервисов под Docker нахерачить, это круче :)
22:58
@backendsecret обычно со стаканом водки
22:58

gerrit замечательная вещ. У нас раньше был perforce. Садиться рядом и смотреть кто что хочет закоммитить - это вообще не вариант!

23:01
@backendsecret О Данила-стайл! Надо переписать! :)
23:26
@backendsecret А гитхаб где в списке.

Merge requests? В команде разрабатывать через мерж реквесты - тяжеловато на мой взгляд. twitter.com/freiksenet_ru/…

23:29
@backendsecret юзаем гитхаб -создается пулреквест с ченжами и ассайнится на кого-нибудь из команды

Отдельные коммиты не ревьювятся? У нас каждый коммит собирается тестируется и ревьювится до сабмита в git. twitter.com/last_khajiit/s…

23:31

@backendsecret В gerrit это временные ветки.

23:32
@freiksenet_ru @backendsecret как минимум — история засоряется мержами. Если делать ребейз, то еще куда ни шло.

Вот тут я не согласен. Точки ветвления истории - это тоже история. Это важно. twitter.com/rusgautama/sta…

23:40

Мы все коммиты сохраняем. И то, что уже внесено в основную базу - не ребейсится и не сквошится. Нам ветки и merge commits не мешают.

23:52

@backendsecret Хотя несомненно возможны и другие подходы.

23:52

Секрет6: статическая типизация против динамической и строгая против слабой. Что эффективнее и что выгоднее в долгосрочной перспективе?

14:33

Начнём с первого: static vs dynamic. Плюсы и минусы в общих чертах всем известны, но всё же обсудим...

14:35

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

14:36

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

14:36

Минусы статической типизации: слишком многословный синтаксис во многих языках, требуется больше усилий на старте pic.twitter.com/e826oZRU5i

14:37

Впрочем, не везде есть проблема синтаксиса, например, в ML языках (типа Haskell или OCaml) всё выглядит очень аккуратно благодаря...

14:38

...благодаря алгоритму вывода типов Хиндли-Милнера (объяснение алгоритма на пальцах: habrahabr.ru/post/125250/ )

14:39

На Haskell ты сначала вдумчиво проектируешь типы, а потом типы проектируют^w ведут тебя, type driven develoment, но это не для простых умов

14:39

Диаметрально противоположный пример статической типизации: язык Go - максимально лёгкая система типов, на деле выходит очень практично

14:42

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

14:45

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

14:46

Мы сначала экономили умственные усилия и нажатия кнопок на более лёгком синтаксисе, а потом пишем доп. тесты

14:49

В защиту: чувак исследовал 1,7 млн репо. - только 2,7% ошибок на Python было связано с типами, не так много, правда? vimeo.com/74354480

14:51

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

14:52

Вспоминаем TypeScript. А теперь и в официальных кругах ECMAScript поговаривают о возможном тайп-хинтинге в будущем

14:52

Ещё больше порадовал Flow, очень круто выводит типы в JS! Учитывает даже ветвления типа if (typeof x === 'string') flowtype.org

14:53

В Ruby 3.0, возможно, появится статическая типизация news.ycombinator.com/item?id=8620129

14:53

Для динамически-типизированного Clojure есть проект Typed Clojure, но с ним проблемы blog.circleci.com/why-were-no-lo…

14:54

Facebook выпустил Hack с опциональной статической типизацией, позже подтянулся и PHP 7 php.net/manual/en/func…

14:58

Всем порекомендую этот доклад: The Unreasonable Effectiveness of Dynamic Typing for Practical Programs vimeo.com/74354480

14:59
@backendsecret а кто кроме груви? Тайпскрипт там не честная типизация
15:57

Вечерняя рекомендация подкаста: changelog.com/podcast/ - хорошая редакторская работа и крутые гости в эфире, авторы языков, фреймворков...

21:43

В подкасте The Changelog побывали авторы Go, Rust, .NET Core, Vagrant, RoR (DHH), Laravel, WP и много других интересных персонажей

21:56

# Четверг 116 твитов

@backendsecret Когда понимают - точно успех. "Вот здесь плохо, здесь могут быть ошибки, а здесь - не гибко". Тогда и новый код лучше)
0:12
@backendsecret @Bubyakin Помогает "1-3 месяца, или не сможем добавлять новые фичи". Платят за расширяемость

Почему не расширять тогда, когда у тебя стоит реальная задача? Помоему это более предметный разгово... twitter.com/AlexWayfer/sta…

0:14
@AlexWayfer бизнес идет на компромис: не 20, а 50% времени на рефакторинг, но не 1-3 месяца на 100%
И это правильно, считаю @backendsecret
0:15

@backendsecret Чем абстрактная расширяемость в вакууме...

0:16

Если стоит реальная задача - ты говоришь: мне по хорошему нужно на эту задачу месяц. Бизнес начинает ныть: сделай быстро, за неделю.. НЕТ!

0:18
@Bubyakin @backendsecret Ну, тут зависит от того, насколько ты встанешь в позу, и готов ли ковырять плохой код)

Помоему код всегда не так хорош, как мог бы быть. И всегда приходится идти на компромиссы... twitter.com/AlexWayfer/sta…

0:20
@backendsecret "НЕТ"—это неправильно. Объясни риски, обсуди объем и т.д. Может чрз месяц бизнесу будет в принципе поздно, а им надо минимум

Я утрирую. :) Все зависит от... Иногда в ущерб всему нужно за неделю.. бывает. twitter.com/Bubyakin/statu…

0:26
@SiliconBangalor @Bubyakin @backendsecret Смотри твит про разницу содержимого методов и обёртки.Плюс да,часто бизнес придумывает всё и сразу
0:27
@SiliconBangalor @AlexWayfer @Bubyakin @backendsecret странно, что мало кто относится к коду как к временному неидеальному куску дерьма :)
13:20
@AlexWayfer @Bubyakin @backendsecret или НЕТ, потому что в следующий раз будет все по-новому и с совсем другими требованиями!
13:22
@SiliconBangalor @Bubyakin @backendsecret Суть не просто в замене, а ещё и добавлении фич, изменении логики. Сэкономит часы/дни, мне кажется

Это только потенциальная возможность сэкономить часы и дни. Может удастся а может и нет. twitter.com/AlexWayfer/sta…

13:23
@SiliconBangalor @AlexWayfer @backendsecret потому что никак иначе, совсем
И тут либо ты эстет без работы,либо профи решающий бизнес задачу

Что это за профи такой, после которого все надо выкидывать и писать заново?
Настоящий профессионал ценит свой труд. twitter.com/Bubyakin/statu…

13:24
@backendsecret @freiksenet_ru если хочется промежуточный результат посмотреть, что мешает из бренча собрать?

Поясню. У нас одна репа с ветками. Все ветки собираются. Любую версию можно ставить и смотреть по каждому коммиту. twitter.com/gvsmirnov/stat…

13:25
@rusgautama @backendsecret Почему засоряется? Каждый мерж - фича. История получается история добавленных фич.
13:26

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

13:36

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

13:43

@backendsecret И если код не достаточно гибок, не достаточно понятен - я не смогу сделать это быстро. Какой же я тогда профессионал? :)

13:44
@backendsecret тогда почему "в течение недели не увижу результат"? @freiksenet_ru

Мы не пользуемся пул-реквестами. Мы работаем с ветками. И ветки у нас часто живут значительно дольше спринта. twitter.com/gvsmirnov/stat…

14:13
@backendsecret тогда почему "в течение недели не увижу результат"? @freiksenet_ru

В моем представлении, поправьте меня, пулреквесты - это как на гитхаб. Кто-то что-то где-то запилил и пушит на меня. twitter.com/gvsmirnov/stat…

14:13

@backendsecret Заставлять его пушить раньше, чем он что-то запилил? Это какая-то искуственная мера для обеспечения прозрачности получается.

14:14

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

15:24
@backendsecret Производительность можно. Например, когда (что) стоит писать не на медленном языке (Ruby/Python), а на быстром (C++/Java).
15:43
@backendsecret @AlexWayfer все стоит писать сперва на медленном, получить пруф оф концепт, понять, что МЕДЛЕННО и только тогда переписать же

Концепты нужны тогда, когда это что-то совершенно новое. И помоему быстрее писать на том языке, который знаешь. :) twitter.com/strizhechenko/…

15:57

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

15:58

У интерпретируемых языков есть большой плюс, что их не надо компилировать! Ваш КО. :) И можно быстро подгонять и фиксить...

16:00

Я вот хотел обратиться к web программистам. Сейчас помоему модно распаралеливание. Важна ли для вас производительность отдельных приложений?

16:01

@backendsecret Конечно это наверное вопрос цены. Но ведет ли кто нибудь, кроме google, борьбу за такты?

16:02
@backendsecret А ещё у интерпретируемых языков есть большой минус, что их не надо компилировать (=

Для чего нужно компилировать? Времена когда производители боялись что их код стащут, помоему уходят в прошлое... twitter.com/webholt/status…

16:04
@backendsecret разве все люди на свете не знают идеально по 2 медленных и 2 быстрых языка подходящих для каждого конкретного случая? :)

Я знаю go, rust, java и много других страшных слов... :) A использую только один быстрый и один медленный... :( twitter.com/strizhechenko/…

16:06
@backendsecret Качество работы? Компилятор и на ошибки укажет, и оптимизирует в нужную сторону (ясно, что сейчас и интерпретаторы компиляют)

О, да... новые плюсы (clang) в этом плане сильно рулят, если не забивать на предупреждения. twitter.com/webholt/status…

16:07
@backendsecret ну вот у нас отчёты долго считаются. Но речи о распарралеливании не идёт.

Нужно чтобы считались быстро? Или и так всех устраивает? twitter.com/dcromster/stat…

16:07
@backendsecret а зачем вообще писать что-то старое?Оо

Ну помоему 80% работы - это дописывать что-то к существующим решениям. Выбор языка при этом не стоит. twitter.com/strizhechenko/…

16:10
@backendsecret Когда БД переваривает запрос 10 секунд — такая производительность часто будет не важна?

Помоему это не очень зависит от языка... Важнее правильно готовить БД. Хотя я в БД не очень то силен, не знаю.. twitter.com/webholt/status…

16:11

Бывает так, что было все быстро, а потом допилили пару фич и стало медленно... Как люди с этим борятся? тесты на скорость?

16:18
@backendsecret Качество работы? Компилятор и на ошибки укажет, и оптимизирует в нужную сторону (ясно, что сейчас и интерпретаторы компиляют)

Статический анализ бывает и для интерпретируемых языков. Помоему это тоже не проблема. twitter.com/webholt/status…

16:20
@ivanenok @backendsecret Ладно тебе, фронтэндэры ж тупые, нам линтеры сразу в редакторы встраиваются, чтоб мы о них знали.

Не знаю про фронтендеров, но помоему современные IDE java или C# реально отупляют. :) Она ж все за тебя делает... :) twitter.com/webholt/status…

16:28
@indieloki @backendsecret Так скоро и программисты не нужны станут.
16:40

@backendsecret Это конечно шутка. Мозг надо экономить... Чтобы думать о важном.

16:42
@backendsecret @webholt у меня был случай: китайцу написал скрипт на ноде и он так и не смог поставить ноду :) пришлось на го переделать.
17:20
@backendsecret ... вынести как отдельный микросервис на более подходящем инструменте (ЯП)

Микросервисы - тема. Хотя она с нашим суровым серверным ПО не очень то кореллирует, но думать о разделении полезно. twitter.com/AlexWayfer/sta…

17:22

@backendsecret Тут даже не столь важно - отдельный ли это сервис, отдельный модуль или отдельный класс... Важна область ответственности. SRP

17:23
@backendsecret угу, не устану повторять, что микросервисы придумали сто лет назад, тем кто не знает, гуглить component based engineering
17:28

Кстати хорошая тема - SOLID. Кто применяет? Знаю, что некоторые даже не слышали такой аббревиатуры. Это не про чистоту, про ясность кода.

17:32

Почему эти ваши модные NoSQL решения не так уж хороши eax.me/avoid-nosql/ с помощью @afiskon

17:36
@backendsecret Мне кажется, суровость серверного ПО не имеет большого значения, если грамотно выбрать место связи и саму связь. Дробится всё
18:34
@backendsecret да, есть тесты на производительность критичных частей. и не только скорость: память, кол-во запросов к бд..

А вот мне интересно, как определяются критерии для производительности. Приходят сверху? Или сами как-то смотрите? twitter.com/Onotoly/status…

18:36

У нас бывает, при проработке решения - никто про скорость не вспоминал. А потом - у-у-у, тормозит, давайте перепиливать... :(

18:37

@backendsecret Иногда правда бывает, что действительно тормозит... Надо бы думать заранее, могло бы помочь...

18:38
@backendsecret сами. после добавления фичи, если производительность улетает на порядок - сделать тест-ограничение, ориентируясь на прошлое
18:39
@backendsecret @webholt чтобы тратить меньше времени на написание тестов

Не уверен, что интерпретируемые языки как-то ускоряют тестирование. Django тестируется долго... там база... :) twitter.com/meln1k/status/…

18:44
@backendsecret компилируемые языки с хорошей системой типов позволяют писать гораздо меньше тестов в сравнении с интерпретируемыми языками
20:16
@meln1k @backendsecret а при чем тут типизация и тесты?

Типизация просто повышает корректность ПО. С тестами это наверное никак не связано. Тесты наверное сложнее писать. twitter.com/anton_davydov/…

20:23

Что вот неудобно, в C++ с моками достаточно непросто... завидуешь java с ее рефлексией...

20:25
@anton_davydov @backendsecret не нужно писать тесты для проверки инвариантов которые могут быть проверены компилятором
20:25
@meln1k @backendsecret да, только ты такие тесты пишешь для внешнего API твоего класса/функции и этих тестов не так много, как остальных

Есть отдельная категория рефакторинга - рефакторинг с упором на компилятор. В плюсах хорошо работает. twitter.com/anton_davydov/…

20:30
@anton_davydov @backendsecret Это не только правильность API, но и бизнес-логики тоже. Например не перепутать id заказа и id пользователя.
20:52
Открыли новую парадигму - костыльное программирование. Основные понятия: костылирование, поликостылизм и инкостыляция. (Juu|away)
20:57

Сегодня на работе заговорили про websockets, вспомнился WAMP wamp-proto.org Кто нибудь пробовал юзать? Идея нравится, вдохновляюсь.

21:02

@backendsecret Мы смотрели на него еще года два назад, с тех пор он обзавелся RFC и множеством имплементаций.

21:06
@backendsecret отличная штука! Сам юзаю и всем советую! И да, участвую в разработке самой спеки и автор нескольких реализаций
21:06

А кто нибудь юзает парное программирование? Есть тут XPшники? :) Думаю, что эта практика - большая редкость...

21:26
@KSDaemon @backendsecret я так понял там гейт/роутер надо обязательно использовать - доп сущность в проекте

Один роутер, который прозрачно объединяет всю систему. Правда это единая точка отказа... Есть над чем подумать... twitter.com/ruxeg/status/7…

22:08
Как же плохо, когда нет чётких бизнес процессов описанных хотя бы на бумаге... Я уже сбился со счёту сколько раз один тикет переделываю.
22:09
Разница, конечно, есть. Зато оба работают на Mac #юмор pic.twitter.com/Iyomkw1QaE

Это оно, парное программирование... :) twitter.com/ru_Parallels/s…

22:10
@backendsecret баги не запланированы vimeo.com/123181746#t=89… и вдруг vimeo.com/123181746#t=25… неконтролируемая очередь с багами и хотелками

Если фича закончена. Это значит что к ней уже не возвращаются. Все должно быть закончено. twitter.com/yevvers/status…

22:24

@backendsecret С другой стороны все понимают, что без ошибок - невозможно. Невозможно всего предугадать и все случаи потестировать.

22:25

На мой взгляд - тестировщики это зло (особенно отдельные). Разработчики расслабляются и не за что не отвечают... Мы сделали, че...

22:26

Вот еще один доклад, очень вдохновляющий. Антон Волков из АльтернативаПлатформ 2013 год. plus.google.com/+%D0%90%D0%BD%…

22:32
@backendsecret как только фитчи становятся достаточно сложными и нетривиально взаимодействующими без тестировщиков никуда.

Я знаю команды, которые обходятся без тестировщиков. Это возможно. twitter.com/Nevkontakte/st…

22:33
@backendsecret в этом зоопарке тестировщикам место есть :)

Фишка в том, что тестировщики не могут повысить качество продукта. Они могут только констатировать некачественность. twitter.com/43oN/status/70…

22:34

Антон Волков на AgileDays'13, Это нужно видеть. plus.google.com/+%D0%90%D0%BD%…

22:38

@backendsecret Правда я не знаю, как у них в АльтернативаПлатформ сейчас...

22:38
@backendsecret @43oN а разве исправление не качественности, не есть путь к качественности ? :)

Исправление некачественности порой порождает больше некачественности, чем было до этого... twitter.com/MaxBorisov/sta…

22:39
@backendsecret я тоже. но это не означает, что профессия не нужна вообще :) вспомнить ту же приёмку софта в авиации.

Когда тестировщик часть команды - это достаточно неплохо работает. Хотя время выполнения затягивается. twitter.com/43oN/status/70…

22:41

@backendsecret Хуже, когда отдел тестирования отделяют... Я не знаю как они хотят после этого добиться повышения качества.

22:42

@backendsecret Это я о наболевшем. :(

22:43
В ленту @backendsecret и @jsunderhood - рекомендую twitter.com/borisvolfson/s…
22:45
@backendsecret пушо иначе это превращается в "тяни-толкай тикет", а тестировщик отвыкает кодить
22:46
@backendsecret на 100% согласен, олсо считаю, что тестировщик должен править баги, если может.
22:47

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

22:48

@backendsecret Чтобы все думали о повышении качества!

22:49
@backendsecret а тут хрен, это зависит от менталитета команды/финансовой/личной заинтересованности

Я верю, что любой человек может приносить пользу, даже если он не умеет программировать. :) Но каждый думает о своем twitter.com/strangeqargo/s…

22:52

@backendsecret И часто усилия отдельных личностей не согласуются с интересами пользователей. И пользователи страдают. Штрафовать?

22:54

@backendsecret И эти личности искренне верят, что они тут в поте лица работают... одни...

22:55
@backendsecret @ruxeg ну например тот же bit.ly/1U5psBM умеет работать в кластере. Да и Wiola можно поднять на нескольких нодах.
23:01
@backendsecret давайте начнём с того, какого в такую команду попасть джуну. ему, что вообще код не писать? а то гляди испортит чего

Если все вокруг думают правильно, Джун тоже будет думать правильно. Он быстро это впитает. Мечты. :) twitter.com/borovikov/stat…

23:27
@backendsecret @ruxeg Зато роутер абстрагирует ресурсы — это дает большую гибкость в дальнейшем и возможность легко менять инфрастуктуру

А вот меня интересует router2router... есть какие нибудь идеи? twitter.com/KSDaemon/statu…

23:27

Секрет7: расширяйте кругозор, изучайте смежные технологии, хотя бы обзорно по видео-докладам или по подкастам в фоне(не займут доп. времени)

10:51

Посмотрите на конференцию Strange Loop о языках, библиотеках, инструментах и технологиях на переднем крае индустрии
youtube.com/channel/UC_QIf…

10:52

Иногда возникает вопрос, как не гнаться за технологиями и начать жить? Отвечает @listochkin youtu.be/xPFRUM_oDKA

10:55
В догонку: фокусируйтесь на том, что выделаете и зачем youtube.com/watch?v=Mx22Na… Гонка технологий - это фон. twitter.com/backendsecret/…
16:34

Про PHP, который последние 4 года сильно развивается, новые фичи и синтаксис в ежегодных релизах 5.4: 2012, 5.5: 2013, 5.6: 2014, 7.0: 2015

21:55

Темпы только растут! Увеличивается и скорость исполнения с каждым релизом, особенно в PHP 7 habrahabr.ru/company/badoo/… pic.twitter.com/H9ijLYPxmY

21:58

В PHP 7 также исправлено много старых недочётов, с разумной потерей совместимости php.net/manual/en/migr…

21:59

Помимо официального мануала порекомендую вот это репозиторий с подробным описанием изменений и примерами кода github.com/tpunt/PHP7-Ref…

22:04
@backendsecret большую кодовую базу достаточно трудно переводить на новые версии php, если не иметь правильных инструментов.

Я использовал github.com/sstalle/php7cc при переводе 100K LOC с 5.6, но что-то потом дополнительно вылезло в тестах twitter.com/strangeqargo/s…

22:08

В PHP 7 много сил ушло на внутренний рефакторинг и оптимизацию. Релизы PHP 7.1+ будут более насыщенными по фичам wiki.php.net/rfc

22:18
@backendsecret мне пришлось автоматическую переписывалку на 400k LOC c 5.3 на 5.6 делать. Хорошо, что тесты были, иначе б пиздец.

Да, с тестами всё становится лучше! @strangeqargo на 7.0 уже запланировали переход? twitter.com/strangeqargo/s…

22:20

Можно провести параллели в развитии PHP и JavaScript ES2015: генераторы, spread operator (...), Destructuring syntax (list в 7.1)

22:32
@backendsecret я в принципе удивляюсь, как этот весь код за 14 лет с php 3 на 5.6 переполз.
22:36

Exponential operator (ES7/2016), Arrow functions (в PHP пока планируется). Кто-то даже пишет transpiler для PHP github.com/jaytaph/Transp…

22:44

Ещё одна, уже классическая, статья на тему трансляции PHP 5.4 в более старые версии igor.io/2013/07/26/evo…

22:48

На практике, в мире PHP более актуальна другая задача: автоматизированная конвертация из старых версий в новые (в отличие от JS!)

22:50

В этом помогут упомянутый ранее github.com/sstalle/php7cc и инспекции в PhpStorm, прогоните по всему проекту: jetbrains.com/help/phpstorm/…

22:54

Рекомендую также ознакомиться с The PHP Quality Assurance Toolchain от @s_bergmann (автор PHPUnit) phpqatools.org

23:11

Чтобы держать код в аккуратном виде можно попробовать github.com/FriendsOfPHP/P… (но я отказался в пользу встроенных возможностей PhpStorm)

23:14

Не забудем про пару крутых (и платных) сервиса проверки PHP кода: scrutinizer-ci.com и blackfire.io

23:17

Чтобы держать руку на пульсе рекомендую подписаться на знаменитый PHP-Дайджест на Хабре в блоге компании Zfort habrahabr.ru/company/zfort/…

23:21

Аналогичный англоязычный ресурс с ежедневной подборкой статей о PHP: phpdeveloper.org/archive

23:25

Подкасты о PHP, которые я слушаю: soundofsymfony.com - редкий, но меткий, оценка 5/5

23:28

Voices of the Elephpant - интервью с видными участниками комьюнити, больше про конференции и соц. активность, 4/5 voicesoftheelephpant.com

23:32

PHP Town Hall - бывает бла-бла-бла, бывает и по делу, 3/4 phptownhall.com

23:34

PHP Roundtable - хорошие технические темы, но иногда страдает сфокусированность участников и качество звука 3,5/5 phproundtable.com

23:40

Lately in PHP podcast - когда совсем нечего слушать, ужасный акцент ведущего, 2/5 itunes.apple.com/ru/podcast/lat…

23:47

uWebDesign (на рус) - не совсем о PHP, больше про дизайн и WordPress, зато ребята весёлые с шутками-прибаутками, 4/5 uwebdesign.ru/category/podca…

23:53

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

Ищем Go-феров на очень интересный длительный проект. @backendsecret поделитесь pls. #Kubernetes, #CoreOS #AWS #microservices #golang
9:12
@backendsecret в компании применяют TDD?

Применяют, но надо сказать не все пишут тесты. twitter.com/dcromster/stat…

11:32

@backendsecret Я стараюсь следовать TDD. Некоторые пишут тесты раньше или позже. Уже хорошо.

11:33

В 99, когда проект стартовал - про тесты вообще никто не знал... потом, где-то 7-8 начались робкие попытки писать тесты... тормозилось... :)

12:13

Сейчас у нас есть юниттесты, интеграционные тесты, это все прогоняется на каждом коммите. Есть еще автотесты на ESX, правда они тяжелые...

12:15

@backendsecret Надо отметить, что продукт в сборе - это целый инсталлируемый дистрибутив.

12:15
@backendsecret а лучше вообще без багов писать, да?

Не все баги являются косяками разработки. Если что-то выглядит или работает не так как хочется - у нас это тоже бага twitter.com/Chudesnov/stat…

18:27

@backendsecret У нас их несколько сотен... :)

18:30

Иногда бывает что один тестировщик пишет башу, исправляем. А потом другой тестировщик пишет - багу - верните обратно. Не хватает согласия.

19:04

@backendsecret Мы используем требования, у нас довольно тяжеловесный процесс. Но в требованиях тоже всегда чего-то не хватает. там тоже баги

19:09

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

19:42

@backendsecret У меня в команде по разработке перевес. Очень хорошая для разработчиков возможность заняться улучшениями.

19:43
@backendsecret TDD лучше BDD ? и чем они отличаются от DDD?

Честно говоря не особо представляю, про BDD, DDD. Но наверное так или иначе использую это. :) twitter.com/ipronix/status…

21:03

@backendsecret на мой взгляд в юниттестировании недостаточно просто тестировать на результат. Как этот результат влияет на продукт в целом?

21:05

@backendsecret Стоит почитать Эванса, но пока руки не дошли.

21:06
Тесты - это докумментация. Как-то глупо писать докумментацию, если она не кореллирует с основным поведением продукта.
21:09
@backendsecret Это не баг , это фича :)

Фича - это когда ты уже придумал, что с этим делать... Система не отображает 100500 объектов? А надо? twitter.com/POS_troi/statu…

21:15

Я всех на работе достаю с формулировками. Чтобы в багах писали проблему. А то любят требования писать. Добавьте кнопку. Нафига?

21:17

@backendsecret Иногда правда проскакивают дурацкие баги, которые и исправить тольком нельзя. Ну пусть пылятся в беклоге. :) беклог большой.

21:18
@backendsecret Это уже не фича но и не баг, это "Ой как интересно получилось" :)

Бывают непонятные проявления. Тестировщики не всегда могут по регламенту все расписать. Они тоже лежат до выяснения. twitter.com/POS_troi/statu…

21:21

Меня не напрягает большой беклог. Наоборот, он дает мне, как продуктовнеру в какой-то мере, возможность выбора самого важного. :)

21:24

У нас роли выделены не четко. Руководитель проекта считает, что менеджер продукта есть PO. Но тот не хочет заниматься беклогом. Что за PO?

21:26

@backendsecret Поскольку план спринта у моей команды свой, и беклог свой, и порядок там интересует только меня, я и PO и SM одновременно. :)

21:32
@backendsecret а тесты помогают хоть как-то это понять.

Я имел ввиду, что тесты, даже на самом низком уровне, должны быть полезны продукту в целом. twitter.com/strizhechenko/…

21:35

@backendsecret Если вдруг существует какой-то код, старательно протестированный, но не используемый в продукте - это зря потраченное время.

21:36

@backendsecret С тестами сложнее. Если ты протестировал что-то сверх необходимого. Твой код зарегулирован. Его сложнее менять. Это тормоз.

21:38
@backendsecret а тесты помогают хоть как-то это понять.

Понимай через призму функциональности продукта. Какую роль этот код играет в продукте? И пиши тесты, играет или нет. twitter.com/strizhechenko/…

21:40

При тестировании существующего кода - интересно исследовать. Я думаю (ну по логике) что код должен вести себя так-то. Тест. Нифигажсебе...

21:46
Most JS/Python/Ruby apps... pic.twitter.com/hkDkjdxpFH
22:05

Must have плагин для PhpStorm: Php Inspections (EA Extended) - много дополнительных инспекций, очень помогает plugins.jetbrains.com/plugin/7622

9:36

А в чём вы разрабатываете на PHP?

9:43

Говорят, к предыдущему опросу не хватает варианта ответа "Не разрабатываю на PHP" - давайте сделаем перекличку!

11:21
@backendsecret, а давайте поговорим о хайринге? Как проводить технические собеседования? Что лид должен сделать, чтобы соискатель не слился?

Хороший вопрос! Хайрингу новых, как и мотивации текущих разраб., помогает использование современных технологий... twitter.com/Spellful/statu…

11:27

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

11:28

Если на собеседовании кандидат увидит, что в вашей команде он сможет развиваться, узнать что-то новое и актуальное - это большой плюс

11:30

А какие у вас бывали классные вопросы на собеседовании, которые понравились и особо привлекли ваше внимание к вакансии? Поделитесь!

11:32
@backendsecret «Привет. Вопросы есть какие-нибудь? Нет, ну ок, в понедельник выходи тогда»
11:54
@backendsecret "сколько было истребителей, сука?"

Это вопрос для поехавших :) А покушать на собеседовании вам не приносили? twitter.com/fckngmagic/sta…

12:58
@olololenka @Dronmdf @backendsecret зачем такие вопросы на собеседовании? Можно и про уход в запой тогда спрашивать, про самоубийство.

Был один кандидат, про уход в запой я у него не спросил, а потом на испытательном сроке он таки забухал на недельку! twitter.com/chikiro_twi/st…

14:57

Возвращаясь к теме подкастов, я тоже веду один: "Пятиминутка PHP" 5minphp.ru - зимой был перерыв, сейчас возобновляю выпуски!

15:00

Эксперимент: переходящий подкаст! Формат 5-10мин, расскажи о своём опыте, интересных случаях, новостях. С меня монтаж, расшифровка, хостинг

15:04

Отвлечёмся от PHP и сравним С++, Rust, D и Go: авторы языков о прошлом, настоящем и будущем youtu.be/BBbv1ej0fFo

19:48

А один чувак на столько отвлёкся от PHP, что для своих веб проектов перешел на Rust medium.com/@eugeniyoz/res…

20:40

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

@backendsecret как Вы считаете, для полного новичка какой язык надо первым учить? Go подходит для этого дела?

Я сам не пробовал go, и мне трудно судить. Я бы порекоммендовал python. На нем можно написать почти все, что угодно. twitter.com/kretsu87/statu…

9:07

Голосуем, какой язык лучше всего подходит для обучения?

9:13

Не думаю что go хорош для обучения. Заточен на конкурентность, а это даже для профессионалов та еще тема. Корутины в c++ - мозг уже сломал.

9:15
@backendsecret хаскель и потом живи с этим

Да, если начинать с хаскеля, потом уже никогда не сможешь думать как нормальные люди. :) twitter.com/2j2e/status/70…

9:16

@backendsecret Обычно люди приходят к функциональщине. И то не все. Мне нравится иммутабельность, но я так и не освоил никакой функц. язык.

9:18
@Dronmdf отсутствие автоматического тестирования -- это trade-off, надо просто понимать, ради чего делается, или почему его делать нельзя.
9:22
@backendsecret конечно питон! там очень мало скобочек! а го... вы знаете, хомяки живут всего 2 года!

lisp точно не подходит. :) twitter.com/SheVasya/statu…

9:26

Я не знаю... помоему с питона на плюсы проще, чем с си на плюсы. Сишников надо учить ООП. twitter.com/bleazerr/statu…

9:27

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

9:40

Где-то был прикольчик, что C++ выглядит как питон, за счет форматирования. Не могу найти...

9:47
@backendsecret в MIT на Computer Science сначала учат пайтон судя по видеокурсам
10:22
@backendsecret список не полный, не хватает Java, C

К сожалению голосовалка только на 4 пункта. :) twitter.com/ztaaz/status/7…

10:23
@backendsecret @bleazerr вот да, я сам сишник, но часто использую питон и ООП я там очень редко применяю, хотя местами он был бы уместен.

Я начал программить очень давно, в 87, с бейсика, паскаля. Работать начал на си. Долгий путь к плюсам. :) twitter.com/strizhechenko/…

10:25

@backendsecret Сейчас я не считаю себя сишником. Не хочу писать на си. :) Cи не предлагать. :) Хотя могу конечно. И ассемблем могу, и что?

10:27
@backendsecret тогда уберите глупости go ruby :)

Разговор начался с go. twitter.com/ztaaz/status/7…

10:28

@backendsecret И ruby опережает js.

10:28

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

10:32

И функциональную... С чего лучше начинать программировать?

10:34
@backendsecret @strizhechenko @bleazerr доо... от сей к крестам долгий путь :)

Научиться писать на плюсах нормально, а не как на сях - это помоему весьма сложная смена парадигмы. twitter.com/ivanenok/statu…

10:56

@backendsecret По моим наблюдениям, многие просто не могут побороть в себе си.

10:56
@backendsecret эмм... ты уверен что винрарный и главный в списке Pascal не забыл?

Я не уверен, что он еще жив... :) бейсик я тоже не указал. Фортран кстати активно юзают, в определенных кругах... twitter.com/ivanenok/statu…

10:58
@backendsecret а почему нет варианта, например Standard ML? Отличный язык для погружения в эту область, если уж начинать с ФП.

Возможно моя выборка не самая лучшая. Но я не спец в ФП. Никогда не слышал про Standard ML... :-/ twitter.com/gorancheg/stat…

11:06

@backendsecret Хотя про ML что-то слышал... смутно...

11:08
@backendsecret @strizhechenko @bleazerr парадигма иная, но по стилю, можно и в сях напилить структур с пачкой поинтеров на функции, не? :)

Можно на почти на любом языке писать так, как хочешь. на сях с объектами. на плюсах функционально. twitter.com/ivanenok/statu…

11:10
@backendsecret у мeня был опыт одноврeмeнного прeподавания Си и Руби. С повышeниeм сложности у Си кода было в нeсколько раз большe.
11:11
@backendsecret это академический язык, типа Pascal, в продакшене его не встретишь, как я понимаю.Но для понимания концепций подойдет неплохо

Вопрос в том, как потом искать работу? twitter.com/gorancheg/stat…

11:11

@backendsecret Функциональный стиль очень положительно кстати сказывается на стабильности кода.

11:13
@backendsecret мне кажется это не очень корректный вопрос, никто не мешает изучать другие языки. Тут идея в изучении основных концепций ФП.

Как сказал кто-то... если работать над своими слабыми сторонами, у вас будет много сильных слабых сторон. twitter.com/gorancheg/stat…

11:15

@backendsecret Это я к тому, что наверное лучше сконцентрироваться на том, чем потом будешь заниматься профессионально. Знать бы заранее...

11:18
@backendsecret Ты про это? Там джава правда, а не плюсы. pic.twitter.com/p6X0wIZwNG

Да, это оно, спасибо. На плюсах так тоже можно. :) twitter.com/PaGrom/status/…

11:23
@gorancheg @backendsecret ага, года 4 назад, притащили мне проект на оценку, как одному из тех кто помнит что такое делфяк...
11:23
@backendsecret почему? Там дается базовые понятия в простой форме

Не, тут я не возражаю... Детям обычно базовые понятия и нужны и возможности чтобы могли представить.. twitter.com/dcromster/stat…

11:25
@ivanenok @gorancheg @backendsecret Лол, у меня дядя сейчас как раз какой-то легаси проект на дельфях поддерживает в полугосушной конторе.

Поддерживать такой проект может быть дороже, чем написано с нуля. Какие-то старые программы под старые операционки.. twitter.com/PaGrom/status/…

11:26
@PaGrom @gorancheg @backendsecret не сношался в жизни с легаси - не программер, один раз сношался - джуниор :)

Предыдущая версия фреймворка - уже все, жуткое легаси. :) twitter.com/ivanenok/statu…

11:27
@ivanenok @PaGrom @backendsecret боюсь спросить, а как тогда называют тех, кто всю жизнь с легаси сношается?:)
11:28
@gorancheg @backendsecret нужно было переписать работающую хрень - одна из базовых софтин Почты России :) думаю так еще дохера где :)
11:28
@gorancheg @backendsecret так вот по их утверждению там нужен был ПРОСТО РЕФАКТОРИНГ :) теперь вы знаете всё про Почту России :)
11:29
@backendsecret ну дык брать пару языков и качать их. с конца 90 пилил на джаве и делфяке. делфяк борланд бездарно просрал, увы :(
11:43
@ivanenok @backendsecret Некоторые вещи хоть годами читай, всё равно не поймёшь, пока не набьёшь руку на использовании их.
17:30
@whoozle @strizhechenko @backendsecret @bleazerr ну дык и где логика и смысл в наличии private филдов в структурах классических?

Я предпочитаю писать class, и не экономить на модификаторах. Есть такой прикольчик, чтобы зря не писать public. twitter.com/ivanenok/statu…

17:33
@backendsecret @whoozle @strizhechenko @bleazerr тогда я еще логику везде искал, это щас уже любое гавно готов ожидать и где угодно :)

Логика надо искать шире. Вопросы совместимости... twitter.com/ivanenok/statu…

17:47

@backendsecret Люди всегда стараются продумать вопросы со всех сторон. Никто ничего не делает во вред.Даже если кажется что это идеотизм. :)

17:49

@backendsecret Иногда в тестах удобнее писать struct, чтобы было меньше буков. Кого в тестах интересует ограничение видимости?

17:51

herbsutter.com/2016/03/11/tri… Что происходит в процессе стандартизации C++

18:46
@theaspect @SiliconBangalor @Soukhinov @webholt @backendsecret угу, только после compile time checking делается type erasure

Мне вот тоже интересно, насколько это эффективно в java. type erasure это когда? twitter.com/ivanenok/statu…

18:58
@ivanenok @SiliconBangalor @webholt @backendsecret глянул, но не разбирался. Выгляит так, что в Яве это имеет рантайм-оверхед!
18:59

@backendsecret Пишут: Generate bridge methods to preserve polymorphism in extended generic types. docs.oracle.com/javase/tutoria… - не бесплатно.

19:02
@Soukhinov @SiliconBangalor @ivanenok @webholt @backendsecret а вот добавят концепты когда-нибудь, будет вообще красиво!

Не в C++17, к сожалению. twitter.com/sermp/status/7…

20:05
@Chudesnov @backendsecret @Dronmdf что значит трейд-офф?

Предмет торговли. Мы в своей работе всегда стоим перед выбором. Сделать быстрее (дешевле) или с тестами (дороже)? :) twitter.com/de_gis/status/…

20:30

@backendsecret Это я конечно утрирую. Менеджеры должны понимать, что в вопросах качества торг не уместен. :)

20:31
@backendsecret @Chudesnov @Dronmdf то, что древние русичи уже заимствовали из французского, как "компромис"?

Менеджеры должны понимать, что за качество необходимо платить. А разработчики - что через месяц никому не нужно. twitter.com/de_gis/status/…

20:34
@backendsecret @Chudesnov @Dronmdf или просто "выбор"?

Не уверен что это соответствующий синоним. Выбор стоит всегда. Но разработчик не может выбирать что нравится. twitter.com/de_gis/status/…

20:37

@backendsecret Это вопрос взаимопонимания.

20:38
@backendsecret @Chudesnov @Dronmdf хм, в глобальном смысле у нас всегда есть право выбора свалить из неподходящей конторы

Выбор - это вопрос личного плана. Он есть всегда. Но в коллективе нужно искать консенсус. Как это по русски то? :) twitter.com/de_gis/status/…

20:40
@backendsecret @Chudesnov @Dronmdf тут ещё философский момент - на каком уровне иерархии есть право выбора,а где "делай,как сказано"

Это всеравно, что директор крутого ресторана настаивает на изготовлении хотдогов, и майонез подешевле берите. Съедят twitter.com/de_gis/status/…

20:45

У кого в офисе есть бесплатные печеньки?

20:59

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

21:00

@backendsecret Почему же тогда все покупают стандартные?

21:01
@backendsecret @Chudesnov @Dronmdf в бизнесе есть только 2 варианта: диктат и колхоз.Работают оба,в разных ситуациях.
21:03
@backendsecret в одной вакансии даже видел "кресла за 200$". И кресла там и в самом деле хороши :)
22:04
@backendsecret надо понимать, что в долгосрочной перспективе с тестами и дешевле и быстрее.
22:05
@backendsecret сколько работаю — везде неудобные говнокресла. На одной из работ коллега за свои деньги купил нормальное
22:56
@backendsecret ну почему же все? :) у нас хорошие кресла например

Бывают хорошие работодатели. twitter.com/Nikitoz/status…

22:58
@VovanR @backendsecret я так тоже сделал, узнав печальное состояние моего позвоночника

У меня не очень плохое кресло, удобное. Проблемы со здоровьем тоже были, больше спорта в жизнь. :) Старый я уже. twitter.com/flamingmdn/sta…

23:06

Хочется поговорить про самосовершенствование, но не знаю с чего начать... Со спорта?

23:10

Про работу в выходные как-то не хочется. :)

23:14

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

@backendsecret спорт помогает не только нагрузиться физически, но и разгрузиться психологически.
0:11
@backendsecret да не, норм, если работа для тебя ещё и образ жизни)
0:12
Понял наконец чем меня бесит ведение @backendsecret и @abroadunderhood без использования тредов - на интересную тему не дать ссылку друзьям.
9:52
@Onotoly @backendsecret а много ли разработок имеют "долгосрочную перспективу"? Чаще MVP сделали и в корзину
9:52

Щас будет воскресный тред, по просьбе @strizhechenko. Есть вещи, которые нельзя вставить в план. Ими нужно заниматься постоянно.

9:54

Нельзя завести себе хорошую фигуру. Вот начать первого января, завести и забыть об этом навсегда. Привет @cartmendum.

9:56

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

9:57

@backendsecret Или тесты написать сразу. Или рефакторинг сделать...

9:58

@backendsecret Это те вещи, которым нужно постоянно уделять внимание. Не надо планировать рефакторинг. делайте его.

9:58

@backendsecret Не откладывайте на потом тесты. Сегодня я съем еще тортик, но завтра точно начну бегать...

9:59
@backendsecret @strizhechenko можно протаскивать задачи по рефакторингу внутри задач для бизнеса

Ну то есть ты не пишешь их в беклог, но на планировании закладываешь часть времени на улучшение кода... twitter.com/__pewpew__/sta…

11:07

@backendsecret Вообще +- 20% времени - это в пределах погрешности предварительной оценки. Помоему об этом даже говорит не надо, надо делать.

11:09

@backendsecret Это все должно быть в крови команды. Тесты пишутся. Если нужно сделать рефакторинг - делается без вопросов. Так правильнее.

11:10
@backendsecret если таки и вытяснят - ну, значит на следующей неделе будет два рефакторинга - в понедельник и пятницу.

Очень осознанный подход со стороны менеджмента. Если они в этом участвуют... приоритеты кто ставит? twitter.com/strizhechenko/…

11:17
@strizhechenko @backendsecret необходимость укладываться в собственные сроки зачастую связана с договоренностями,которые не хочется нарушать
17:10

Кто нибудь читал "Как тестируют в Google"? Они говорят - если ты выполнил 100% - ты лентяй! Прилагай усилия и стремись к 100%. 70% хорошо.

17:35

@backendsecret Это правда касается личных целей. С заказчиком так можно, если у вас хорошие отношения.

17:36
@backendsecret читали-с, занятная книженция, особенно в концепции именования тестов - большие, средние и малые.
18:24
Лайхак: для всех кто делает опенсорс. Делайте его плохим, чтобы потом можно было улучшить и показать мощные бенчмарки производительности!
20:04
Этот неловкий момент, когда тебе подарили огромный блокнот с ручкой, а ты и писать-то уже разучился #highload2015
20:16

Это была интересная неделя, спасибо. Завтра начинается #agiledays, меня можно будет там поймать.

22:01

О книгах: Кодеры за работой - серия интервью с известными программистами, интересные истории, воспоминания bookmate.com/books/SIA9aWti

10:53

Как пасти котов. Наставление для программистов, руководящих другими программистами habrahabr.ru/company/piter/…

11:06

Structure and Interpretation of Computer Programs (SICP) - классический труд об основных концепциях программирования ru.wikipedia.org/wiki/Структура…

11:16

Оригинальный SICP основан на языке Scheme, но есть адаптации на Python www-inst.eecs.berkeley.edu/~cs61a/fa11/61… и на Clojure sicpdistilled.com

11:53
@backendsecret много воды, мало толку - это не только мое мнение (отзывы на Озоне почитайте). Лучше youtube.com/watch?v=d4hUeX… посмотреть
12:02

habrahabr.ru

github.com

other