KSDaemon

27 июля 2015, Россия

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

Всем привет! На этой неделе ведущим буду я, @KSDaemon, разработчик, архитектор, Oracle OCP, подкастер, активный участник разных сообществ.

12:15

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

12:17

Поскольку я живу на стыке frontend<=>backend, интересно обсудить вопросы взаимодействия, коммуникаций, технологии обмена данными и прочее.

12:18

Не стесняйтесь задавать интересующие вас вопросы! Ну что, погнали!

12:19

Для разогрева, предлагаю начать неделю с новостей. Как и откуда вы черпаете новую информацию? Если раньше её не хватало, то сейчас слишком

12:20

Для себя я остановился на твиттере, как основном источнике инф-ции. Читаю многих разработчиков и активных ИТ деятелей. На блоги нет времени.

12:22
@backendsecret фолловлю в твиттере кучу разного народа, в ленте как правило все что нужно пролетает:)
12:23

Да,у всех есть тви.И даже у интересных блогов. Короткий заголовок легко и быстро прочитать, если зацепило — перешел, прочитал статью целиком

12:24

А как вы относитесь к восприятию аудио-информации? ;) Например, подкастам? Кстати, я (со)автор двух подкастов: SDCast & RadioJS.

12:25
@backendsecret читаю ЛОР, твиттер, хабр (и отпочковавшиеся от него ресурсы). RSS с подписками на англоязычные ресурсы не прижилась :(
12:27

.@fat0troll фрагментация хабра, имхо, не дала какого-то положительного эффекта. Да и все меньше и меньше там интересного проскакивает…

12:28

Вот сейчас появилось много разных чатиков (gitter/slack/и тд). Но мне всегда было больно от того, что нужно миллион приложений.

12:31

Всегда мечтал об одном приложении для всех чатов :) И вот услышал про sameroom.io от создателей kato im. Кто-нибудь пробовал?

12:32
@backendsecret но большинство подкастов водой болтовни ни о чем заливает, при этом длина выпуска растет
12:35

.@mktoid Да есть такое. Поэтому вопрос: какой формат/длина подкастов вам наиболее интересны?

12:36

В продолжение темы подкастов. Судя по ответам, никто не любит выпуски >часа. Я, кстати, тоже :) но это не всегда получается.

13:39

.@raxpost @mktoid короткие выпуски могут быть только новостными. В них не поместятся дискуссии и интервью.

13:40

@anton_davydov:что посоветуешь начинающим подкастерам?” Главное - желание,приличный звук,хороший контент! Остальное-мелочи. Могу подсказать

13:43
@backendsecret Для меня «идеальным» подкастом было «Свободное радио Компьюлента» (compulenta.podster.fm/511), 10—15 объёмистых статей за час
13:43

@listochkin: Хороший подкаст часа на 2-2.5 - это очень ок.” Если интересная дискуссия - да. Но все же это редкость, и можно разбить на два

13:46

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

13:51

Давайте поговорим про OSS. Был вопрос про мое отношение, вклад и будущее.

14:40

Open Source — это интересная концепция, и я положительно к нему отношусь. Но не все так просто, как про это обычно говорят →

14:44

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

14:45

И если его не будет,скорее всего проект просто загнется.

14:46

Было интересное исследование на эту тему:оценка bus factor для open-source проектов lwn.net/Articles/65136… посмотрите на числа — это единицы

14:47

У меня тоже есть несколько небольших проектов на github’е. Они так или иначе касаются WAMP. Это такой протокол с Pub/Sub и RPC.

14:49

Активно участвую в разработке самого протокола. Кстати, делал про него доклад на одном из @moscowjs. Вот презенташка blog.ksdaemon.ru/2014/09/para-s…

14:50

  • написал несколько реализаций WAMPа на JavaScript (Wampy.js), Nginx/LUA (Wiola) и Pure LUA (Loowy) которые поддерживаю и развиваю
  • 14:51

    И само собой делаю PR в проекты,которые сам использую.В этом свете вопрос: контрибьютите ли вы в используемые проекты? Bugfix, new features?

    14:53

    @dcromster: я нахожу баги. Сообщение о баге считается вкладом в OS?” Если он правильно оформлен — да. Но еще лучше,сразу PR с исправлением!

    14:58

    @dcromster: не всегда это возможно. Например, программа на С, а человек глубокий ПХПшник.” Да, бывает. Тогда надо сообщить о проблеме!

    15:02

    Кстати, если интересно, могу рассказать пару слов про WAMP.

    16:06
    @backendsecret одно время слушал radiojs но отписался из-за низкой концентрации информации. В слушаемых остались ctocast и radio-t
    16:30

    .@serebro Хммм,интересно. В RadioJS мы как раз обсуждаем новости по большей части, даже если зовем гостей. Чего не хватает? Спасиб за мнение

    16:32

    .@serebro и да, почему в этом списке нет SDCast’а!? :)

    16:32

    WAMP (WebSocket Application Messaging Protocol, wamp.ws) легкий протокол, изначально поверх websocket, но уже можно и raw →

    16:34

    → в нем из коробки есть Pub/Sub и RPC. В нем несколько слоев, что позволяет использовать разный транспорт или энкодеры (JSON, msgpack) →

    16:35

    → сам по себе протокол довольно прост, и уже есть реализации на многих языках, в том числе пара моих: JS клиент для браузера, LUA клиент →

    16:38

    → и WAMP Router на базе Nginx и модуля LUA.

    16:40

    .@lisovskyvlad не, это старье судя по всему, еще v1. Актуальные реализации всегда тут: wamp.ws/implementation… и да, что-то там не видно Ruby

    16:44

    @lisovskyvlad: @backendsecret * задумался об опен сорс проекте...” Да-да! Отличный повод! ;) Готов проконсультировать по WAMP’у !

    16:46

    Кстати, про OSS: для любого проекта, потенциально интересного сообществу очень важно иметь хорошую документацию c описанием API,интерфейсов

    16:47

    И вариант, что «у меня код самодокументированный» — не работает. Первое, что видишь заходя на стр проекта — это его описание, aka README →

    16:49

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

    16:49

    Другое дело, что даже наличие хорошей документации, не означает качественную реализацию. Но тут как раз можно и в код глянуть.

    16:50

    Github, кстати, в плане развития OSS сделал большое дело! Все реже и реже можно встретить разработчиков, которые не знают что такое VCS.

    16:51

    То есть общий уровень подготовки разработчиков стал выше. И это здорово!

    16:52

    Кстати о LUA.Кажется тут не было любителей этого языка :) Мне оч нравится идея использования таких легких и быстрых языков на APP-серверах

    17:50

    Та же связка Nginx и LUA позволяет на начальной фазе запроса сделать какие-то проверки,скорректировать роутинг и прочее, не проксируя запрос

    17:52

    В этом плане так же интересен Tarantool, который и БД и APP-сервер одновременно. Но данные рядом и их легко можно достать. А вы что думаете?

    17:53

    @iamale_ru: Как насчёт luvit.io?” Да, интересный проект Тима Касвела. Посматриваю, но пока не дошли руки попробовать.

    17:55

    @iamale_ru: Как насчёт luvit.io?” →но пока что мне достаточно LUA модуля для Nginx,даже если это не просто обработка запросов

    18:00

    Кстати,есть еще язык Terra, который интероперабелен с LUA, но со статической типизацией и ручным управлением памятью. terralang.org

    18:23

    Что-то к вечеру все стихли… Давайте завтра поговорим про процесс разработки, взаимодействие и коммуникации.

    19:27

    А пока вот вам список подкастов, которые я слушаю: gist.github.com/KSDaemon/1d3c4…

    19:37

    @kspitfire7: TAOP и ТиП Звука же уже всё?” Нуу может быть и все. Хотя иногда еще в TAOP что-то проскакивает, поэтому я не удаляю пока :)

    19:39
    @backendsecret Как думаешь, дёргать публикацию в Push Stream в nginx через LUA напрямую (без http-запросов) из RabbitMQ — это хорошая мысль?
    19:49

    .@subzey если ты имеешь в виду, сразу пушить в стрим, а не через отправку в очередь — то конечно да! Или я что-то не так понял, скажи.

    19:56
    @backendsecret а примеры крутых репозиториев накидать можешь? :)
    19:58

    .@anton_davydov да таких полно. В python asyncio отличная докуменатция и примеры (кстати, мы обсуждали это с Андреем Светловым)

    20:01

    .@anton_davydov openresty/lua-nginx-module, да и свои проекты я старался оформлять как следует.

    20:01

    .@subzey такс сложно сказать по одному приложению. Попробуй обрисовать всю картину, тогда можно посмотреть и понять :)

    20:03
    @backendsecret советы по написанию документации: stevelosh.com/blog/2013/09/t…
    20:03

    .@subzey кажется, в твоем случае, брать сообщения из AMQP прямо в LUA/Nginx — должно быть гуд. Но все же, lua работает в контексте запроса.

    22:28
    В OSS кроме readme надо писать тесты! Тесты, КАРЛ! @backendsecret
    22:28

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

    22:30
    @shuvalov_anton @backendsecret можно подумать, что не в опенсорс-проектах тесты не нужны
    22:30

    .@listochkin @shuvalov_anton кажется НЕ в опенсорс мире, на тесты почти никогда не остается времени…

    22:31
    @backendsecret @shuvalov_anton поэтому главное правило OSS: будь монополистом с офигенной документацией :D
    22:36

    Кстати,в контексте OSS: а вы обращаете внимание на лицензии используемых либ/фреймворков?Соблюдаете условия лицензирования? Или взяли и все?

    22:38
    @backendsecret иногда. Один раз по просьбе юристов генерил списки лицензий всех гемов, бовер и нпм пакетов, что используются на проекте
    22:50
    @backendsecret @sudodoki GPL на сервере - не проблема в 95% случаев, +4% проблем решаются сменой текста контракта.
    22:59

    .@listochkin @sudodoki если у вас какой-то веб-сервис,да — ок.А если вы выпускаете какие-то железки с софтом? Все становится немного сложнее

    23:01

    .@listochkin @sudodoki да я ж ретвитнул вообще :)

    23:04

    @paaleksey: А как разработчик бэкенда связан с железками?” я ж архитектор) И один из наших проектов — это программно-аппаратный комплекс.

    23:10

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

    Доброе утро, товарищи! Ой, или какое там у вас время суток!) Давайте сегодня поговорим о разработке, коммуникациях и взаимодействиях.

    11:55

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

    11:55

    .@serebro основная область применения WAMP’а как я вижу и знаю — это IoT.

    11:59

    .@serebro Тобиас @oberstet Оберштейн (автор wamp) запускает python wamp router (crossbar.io) на RaspberryPI и подключает всякое

    12:00

    .@serebro я в одном своем проекте так же строю на базе WAMPа коммуникации между конечными устройствами и сервером.

    12:01

    .@serebro и еще одно, как мне кажется, удачное применение WAMP — это оповещения о изменениях в многопользовательской среде

    12:01

    .@serebro пример: есть админка, пара админов зашли и хотят поменять инфу одного и того же юзверя. →

    12:03

    .@serebro → Админка при заходе на стр. юзверя подписывается на соотв. канал. И в случае изменений — получает уведомления. →

    12:04

    .@serebro → ну и сами задачи изменения данных легко можно превратить в вызов RPC и тем самым вообще абстрагироваться от бэкенда.

    12:05
    @backendsecret как то отказался от джиквери плагинчика, который был под под лицензией некоммерческого использования
    12:26

    .@serebro по wamp есть новости на wamp.ws, неско заметок у меня в блоге (нет времени написать еще) и groups.google.com/forum/#!forum/…

    12:28

    Мне оч нравится идея использовать WAMP как основу композитных SOA-приложений. SOAP/WSDL—слишком тяжелые.Писал про это blog.ksdaemon.ru/2015/02/wamp-k…

    12:30
    @backendsecret как у тебя хватает сил и времени на всё? и OS и 2 подкаста, а ещё работа и личная жизнь...
    13:16

    .@dcromster о да! Сам удивляюсь. На все, что кроме работы и семьи, остается немного времени перед сном, когда все легли спать.

    13:18

    .@dcromster поэтому свои проектики я пилю по ночам, последнее время, правда, реже и меньше :( но как минимум пишу тестики, PR, доки и пр.

    13:19

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

    13:20

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

    13:20
    @backendsecret Что делаешь когда "ничего не идёт" ака "тупняк"?
    13:21

    .@dcromster да,это нормально.В таких случаях я переключаюсь на какую-то механическую работу,та же документация или какие-то админские задачи

    13:22

    @iamstarkov: интероперабельность это больше, чем совместимость?” Мне кажется в данном случае, это примерно одно.

    14:37

    .@iamstarkov тут смысл в том, что в одном скрипте можешь юзать и то и другое. +Как они пишут, можно на LUA метапрограммировать функции Terra

    14:39

    @dcromster: так самому спать тоже надо!” Вот именно поэтому мало времени и я не сижу до утра %) хотя иногда бывает…

    14:40

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

    14:41

    Согласен с высказыванием @bobuk: индикатор наличия творчества в профессии разработчика - если ты все еще программируешь вне работы

    14:43
    @backendsecret а у меня наоборот, вопросы к тем, кто не разделяет работу и отдых. Вы как там, не на грани перегорания и депрессии?
    14:44

    .@VasyaRomashova ой, вот у меня с этим точно проблем нет, потому как: 1) Личные проекты отличаются от рабочих,2) можно применять новые тех.

    14:45

    .@chemikadze это не важно, важно что ты читаешь, изучаешь, думаешь, мечтаешь, и в итоге делаешь (хоть и мало в силу разных причин)

    14:50
    @VasyaRomashova @backendsecret Геймдев для себя — главная страсть в жизни. Другие виды отдыха уже по вкусу. А работа близкая по духу ищется.
    15:54

    @VovanR: было время и на работе и дома прогал не для себя =)” Лучше наоборот %) Все время для себя!)

    15:55
    @backendsecret без этого никак! Нужно же поиграться с новыми технологиями, запилить небольшой проект "для души" или что-то автоматизировать)
    15:55
    @backendsecret, плагинчики под WordPress доставляют особое удовольствие. И денег приносят бонусом :-D
    16:57

    Тут спрашивают, кого из разработчиков “must follow” в тви… Попробую назвать несколько имен…

    16:58

    на самом деле этот список можно продолжать долго) вплоть до 276 пунктов))

    17:12

    Конечно же там есть @filipovskii и @bashmish (с кем мы делаем @RadioJSPodcast и @moscowjs) и @jekill (c кем мы делаем @SymfoniacsMsk)

    17:13

    Вы вот мне лучше скажите, вы участвуете в каких-то сообществах? Не в тви почитать,а реально! Встречу/конфу сделать, помочь советом и прочее.

    17:16

    @anton_davydov: пока провожу неформальные встречи в рамках moscow-rb.org.
    В будущем хотелось бы более техн встречи делать” Круто!

    17:36

    @anton_davydov: заметил странную особенность: все хотят неформального общения, но мало кто ходит :D” Все любят языком потрепать, а не делом

    17:39

    .@anton_davydov главное, что все же есть активисты, которые приходят и участвуют!

    17:40

    @anton_davydov: а сам не думал проводить какие-то реальные встречи?” Я чуть раньше писал, что организую @moscowjs и @SymfoniacsMsk ;)

    17:46

    .@anton_davydov Ну на самом деле,основной двигатель @moscowjs — это @filipovskii :) Но ты приходи в гости, пообщаемся, поделимся чего да как

    17:59

    .@anton_davydov а из советов: не опускать руки, найти единомышленников, собираться, делать доклады, расширять сообщество.

    18:00

    @anton_davydov: @backendsecret @moscowjs @filipovskii я вот 30го числа к вам хочу зайти как раз :)” Будем рады!

    18:18

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

    Да, чего-то мы сегодня так и не добрались до процессов разработки! Завтра с утра и начнем обсуждать! :)

    0:28

    Такс, давайте все же поговорим про процесс разработки и сопутствующие вопросы. Каким по вашему должен быть идеальный workflow? Методологии?

    11:30

    Сейчас эра гибких методологий. Но многие ли из вас строго следуют какой-то одной? ;) расскажу про себя сейчас.

    11:36

    У нас вотерфолл в долгосрочной перспективе и что-то эджайлоподобное на ближайший месяц/два с недельными итерациями и ежедневными стендапами

    11:40

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

    11:43

    Но даже стендапы не решают на 100% проблем взаимодействия.

    11:47

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

    11:48

    Например:есть сишный сервис.Ему потребовалась бд.Дев взял и завел себе sqlite’тик,а про осн бд системы он и не думал. Итог: задвоение данных

    11:52

    Или еще хороший пример: деву сервиса удобно хранить все данные в JSON в одном поле в табличке. Но с этими данными работают другие модули ->

    11:54

    -> и им нужна фильтрация, поиск. И тут json уже не удобен. Но дев сервиса про это не знает. Результат: переделка, доп время и ресурсы.

    11:56

    Вы скажете “Ты ж архитектор! Вот и решай!” Но я скажу, что не возможно спускаться на такой низкий уровень, иначе просто не хватит времени!

    11:59

    Еще пример: есть web-клиент,Win-клиент,пара сишных сервисов. Все работают с одними данными. Но: .NET удобно 10 курсоров из одной хранимки →

    12:07

    → веб юзает какую-ньть Doctrine, и генерит запрос сам. Сишным сервисам удобно вызывать одну хранимку с одним result-set’ом. →

    12:08

    Вопрос: как БДшнику грамотно организовать хранение данных в БД и угодить всем? %)

    12:08

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

    12:10

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

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

    .@gruz0 вот тут тоже есть пример хороший: у нас несколько разные девы разных сервисов выбрали свой формат конфига. →

    12:13

    .@gruz0 А когда это попало в руки нашего системщика, aka devops, он был в ужасе, потому что ему все эти конфиги править при развертывании

    12:14

    По поводу средств сопровождения разработки и инструментов, у нас все просто: задачи, баги, вики - redmine, ТЗ, код-ревью и код в gitlab.

    12:17

    Вообще, мы довольно не плохо выстроили процесс.Я писал серию заметок про это.Почитайте,вдруг найдете что-то полезное. blog.ksdaemon.ru/2014/02/v-pois…

    12:18
    @backendsecret Это из-за того, что не рассказывают девам про то, что их окружает и задачи.
    12:18

    .@dcromster я бы сказал наоборот: у нас большие ТЗ с диаграмками и схемами, которое лежит в gitlab в markdown’е

    12:19

    .@dcromster у всех девов есть доступ, причем и на запись, любо может сделать PR в ТЗ. Но мало кто смотрит вокруг и на систему в целом :(

    12:20
    @backendsecret, у нас методология от проекта выбирается. Каждому новичку в команде даётся персональный проект, который он сам делает с нуля.
    12:20

    .@gruz0 у нас новичок сразу попадает в команду, ему дается небольшая но завершенная задача, ТЗ/вики/схемы/соседи в помощь.

    12:21
    @gruz0 а можешь подробнее? не важно какая квалификация - все равно даете? и он сам стек выбирает? @backendsecret

    Да, все так! Товарищ @gruz0 хорошо описал про введение новых людей в проект. Почитайте, начиная с twitter.com/anton_davydov/…

    12:23

    Некоторые из стажеров к моменту окончания института превращаются в полноценных разработчиков.Это хороший способ вырастить,а не перевоспитать

    12:28

    .@dcromster @gruz0 Невозможно ДО написания кода полностью разработать и утвердить структуру БД, ибо БД — это часть процесса, как и код!

    12:56

    .@gruz0 да, у нас тоже системы безопасности, программно-аппаратные комплексы, и это совсем не инет-магазины на CMS’ках %)

    12:57
    кстати, @backendsecret расскажи, как обычному человеку стать архитектором? просто пиши код и однажды утром тебе оденут корону или что нужно?
    12:58

    Моя позиция: нельзя сразу стать кем-то крутым, архитектором, тимлидом, СЕО или еще кем. Надо знать, уметь и прочувствовать каждую ступень

    12:59

    А чтобы добиться чего-то большего,просто сидеть и качественно делать свое дело недостаточно. Это только наоборот большая радость начальнику)

    13:00

    Поэтому надо проявлять инициативу всегда, везде и во всем! И не бояться принимать решения и нести за них ответственность.

    13:01

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

    13:02

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

    13:03

    → Это дает хорошую базу и экспертизу для принятия решений. А принятие решений и инициатива выталкивают вас на новый уровень

    13:04

    Именно так я шел:админство *nix,баз данных, программирование backend, frontend.Это все расширяет кругозор. Для архитектора это крайне важно.

    13:05
    @backendsecret, а как определяется проект, куда можно и куда нельзя воткнуть разработчика? По скиллам или "этот горит, надо срочно делать"?
    13:06

    .@gruz0 нет, конечно по скиллам. Просто если видно, что он не сможет там где нужно, можно перекинуть/переиграть расстановку сил.

    13:07
    @backendsecret а ты видел серьёзные команды, которые используют YouTrack? Кругом одни упоминания Redmine и Jira... Но мы мигрировали RM ->YT
    13:07

    .@PetrMyazin нет, я пока не встречал, не слышал. Тут скорее фактор того, что: ну вот мы настроили RM и все ок, нет смысла искать новое…

    13:08
    @backendsecret, у нас для задач/багов/вики — Bitrix24, код в Gitlab, код-ревью через RSS на Vienna :-D
    13:09
    @backendsecret, разработчики поголовно хотели Redmine, но было принято волевое решение оставить всех на Битрикс24. Прижилось вполне.
    13:09
    @backendsecret, но я ни разу не пиарю этот продукт. Код там говно, мы периодически пописываем модули и опускаем руки в этот смрад.
    13:09
    @anton_davydov @backendsecret много-много-много читать. Фаулера, Мартина и прочих взрослых дядек. Практика-практика-практика :-)
    13:09

    .@dcromster в ТЗ невозможно описать все-все-все, иначе оно будет 10000 стр. и его никто никогда не будет читать даже.

    13:11

    .@dcromster в любом случае,какие-то мелкие детали ложатся на плечи разработчиков.Инач,можно набрать индусов,которые будут циклы и ифы писать

    13:12

    .@dcromster именно это отличает хороших разработчиков от кодеров (кодировщиков блок-схем) %)

    13:13

    @dcromster: чем точнее тз тем меньше проблем. Разве не так?” Все так!Но сложно охватить сразу все.ТЗ живет и развивается вместе с проектом

    13:15

    @dcromster: не все начальники это понимают :(” Плохие начальники — это печаль. Но я правда, тьфу-тьфу-тьфу, таких не встречал :)

    13:16
    @backendsecret, чтобы расти вверх качественно профессионально — надо обрасти количеством задач и разгрузить своего руководителя :-)
    13:16

    . @gruz0 это очень хорошее замечания! Оно было завуалировано в принятии решений, которые раньше принимал начальник :)

    13:17
    @backendsecret @dcromster я считаю, что ТЗ может и должно меняться из формального документа в Wiki по проекту.
    13:35
    @backendsecret, рекомендую всем прочитать "Как пасти котов", это кто пожелает вырасти из обычного программиста на "повыше".
    13:36
    @dcromster @backendsecret я раз в месяц подхожу к своему VP и говорю: "выгрузи из головы идеи на бумагу, давай их мне". Садимся и обсуждаем.
    13:40
    @dcromster @backendsecret в общем, в этом я вижу роль тимлида и управления разработкой — грамотно распределить зоны ответственности.
    13:40

    Вот!Очень важная мысль:тимлид должен максимально эффективно распределять задачи,решать архитектурные проблемы. Для начальника-он точка входа

    13:43

    .@PetrMyazin расскажи, чем YouTrack интереснее RedMine или каких других продуктов?

    14:46

    Важно понимать,что у тимлида свои обязанности,он не просто дев с большим грузом ответственности. У него свои функции [помимо/взамен старых]

    14:54
    @backendsecret а у такого тимлида остается время код писать? и вообще, реально ли совмещать код и управление людьми?
    14:54

    .@anton_davydov хороший вопрос! Я почти не пишу код. Пара небольших модулей+эпизодически код ревью, осн время: ТЗ, управление,распределение

    14:56

    .@anton_davydov именно поэтому я отрываюсь в личных проектах: пишу на чем хочу, юзая свежии версии инструментов! %)

    14:57
    @anton_davydov @backendsecret очень редко, практически не прикасаюсь к коду, но часто приходится во время код-ревью его читать и…
    14:58
    @backendsecret, часто "тимлидом" ставят, но фактически человек остаётся простым программистом. Просто нет никого другого, а назначить надо.
    14:58

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

    15:01

    Есть такое понятие как «Предел некомпетентности» aka принцип Питера, выдвинутое Лоуренсом Питером (ru.wikipedia.org/wiki/Принцип_Питера)

    15:01

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

    15:03
    @anton_davydov @backendsecret на практике код пишут дома(: очень маленьких процент людей реально желающих стать тимлидами
    15:03
    @backendsecret, стоит отдельно обсудить такую тему, как уход/увольнение текущего тимлида из команды и назначение этой роли другому человеку.
    15:03

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

    15:05

    Как верно было замечено, не много желающих/могущих быть тимлидами. Да и 2 тимлида в одной группе — не вариант. Так что тут дилемма: →

    15:06

    Или назначать кого-то старшим в группе «сверху»,что не ok,или делать рокировку и брать «сбоку».Найти на рынке и сразу в тимлида — не вариант

    15:07

    Оффтоп: на днях утекли исходники fl.ru. Для поднятия настроения посмотрите в перерыве) github.com/veryEvilMan/fl…

    15:10

    .@rastopyr_ua там мегахрень, а не мегамонстр!))

    15:44
    @backendsecret, два тимлида точно не прокатит, спрашивать надо только с одного человека, иначе начнётся метание стрел.
    15:44

    .@gruz0 именно по этой причине у любой задачи всегда ОДИН ответственный, но может быть много соисполнителей.

    15:45

    В свете обсуждения вопроса повышения проф навыков: как вы относитесь к курсам?Часто на интервью слышу от новичков вопрос по этому поводу

    15:52

    Даже перефразирую: как вы относитесь к курсам повышения квалификации и подобным и сертификации? Оно кому-то нужно? Или нет смысла?

    15:53
    @backendsecret, курсы бывают разные. Я мало прошёл в своей жизни, в основном по книгам всё. Но вот Swift на udemy.com изучал.
    18:16

    Я вот, кстати, по личной инициативе сдал много разных экзаменов по Oracle DB. И не ради кого-то или потому что надо, а для себя.

    18:17

    Но и руководством это не осталось незамеченным. И это дополнительный плюс.

    18:18
    @backendsecret, для сетевых инженеров/DBA и прочих — однозначно надо, всякие там Cisco/Microsoft. А разработчикам на их усмотрение.
    18:18

    Я вот тоже считаю, что по програмированию курсы имеют смысл только для новичков. Для мидл/сеньёр — книги, практика, дискуссии

    18:19
    @backendsecret, оплачивали обучение или сам всё? Иной раз в крупных фирмах могут затребовать возврат средств, если меньше трёх лет поработал
    18:19

    .@gruz0 поскольку мы партнеры Oracle, 2 экз в год — бесплатно :) Курсы для сертификации — контора оплачивала, самому — дорого.

    18:20

    Сейчас, кстати, подписался на бетаэкзамен по Оракловым кластерам по 12с версии. Осталось 2 недели, еще нифига не готовился %)

    18:21
    @backendsecret, экзамен ≠ курс же :-) Можно дома изучить и поехать сдавать, оплачивая только сам экзамен.
    18:21

    .@gruz0 у Оракла, для серьезных сертификаций требуется прохождение курсов. Только экзамены — для начального уровня.

    18:22
    @backendsecret, мне в Роснефти с пяток лет назад приходилось иметь дело с Oracle в .Net. Впечатления положительные, но рад, что соскочил.
    18:22

    .@gruz0 если говорить про БД: я имел дело с PostgreSQL (еще 7.x), MySQL, MSSQL, Oracle. Мой личный выбор — однозначно оракл. Он крут!

    18:23
    @backendsecret, вообще, я сторонник той позиции, что если есть возможность — лучше нанять отдельно разработчика БД. Это выгоднее в разы.
    18:23

    .@gruz0 поддерживаю. Именно по этому у нас есть отдельные БДшники и я ярый сторонник процедур и пакетов, а не SQL в коде приложений и ORM.

    18:24

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

    18:26
    @backendsecret, простой вопрос: уместно ли хранить расчёты/агрегацию и прочу числовую муть в SP? Как у вас реализовано? :-)
    18:28

    .@gruz0 мы всю агрегацию делаем на уровне БД. Она же для этого и нужна! В клиент уходит конечный рекорд-сет.

    18:29

    .@gruz0 у нас был 1 тяжелый случай,когда было много новых данных,а агрегированный пересчет затрагивал всё!—пришлось обсчет делать на сервисе

    18:31
    @backendsecret, чёрт побери! Я нашёл себе собеседника для души, комрад! :-D Спасибо тому, кто дал тебе доступ к этому аккаунту! :-D
    18:31
    @backendsecret, видел много ада раньше, когда чуваки выбирали тысячами данные из БД и потом в AR рассчитывали это, вместо того, чтобы…
    18:32

    .@gruz0 это просто ужасно!Слепость разработчиков и привязанность к своему ORM. Бить по рукам! Собственно, это одна из задач архитектора!

    18:34

    @gruz0: гоняете юнцов на вопросах о left/right inner/outer join? :-D” С join все более-менее ок, а вот group by/having — уже многие плавают

    18:37

    Коли уж мы затронули БД и код. Холиварный вопрос: как вы относитесь к ORM? Мое мнение и @gruz0 вы уже знаете. А как у вас?

    18:39
    @backendsecret @gruz0 хм, а как вы деплоите процедуры? И что вообще в бд считаете? У меня нету вообще такого опыта.
    18:59

    .@lisovskyvlad например,в хранимках у нас проверяются права юзверя на данные. Или подсчет какой-то базовой статистики по джобам или сработке

    19:01

    @rainrb: имхо дело не в орм, а в недостатке опыта” ORM — норм, если оч хорошо знать как она работает.Иначе можно крайне неэффективно делать

    19:02

    .@rainrb Знаю много примеров, когда юзали Doctrine, и писали через сущности и было много лишних запросов. →

    19:03

    .@rainrb а ведь можно было написать один метод в репозитории, который за раз собирал все и отдавал. Так что знание и опыт решают!

    19:03
    @backendsecret смежный вопрос, чего читать чтобы научиться хорошо готовить постгри в проде под нагрузкой?
    19:04

    .@rainrb ой, мне сложно сказать. Но по опыту Oracle моя мысль такая: надо хорошо понимать как работает БД →

    19:05

    .@rainrb какие процессы в БД за что отвечают,как устроено хранение, что и как хранится в памяти, как работают логи и журналы, курсоры и кэши

    19:06

    .@rainrb и в итоге самым лучшим источником знаний является официальная документация! Кстати, насколько знаю, в pg она довольно хороша!

    19:07

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

    19:08

    В Oracle с 11-й, кажется, версии, есть понятие версии схемы. Смысл в том, что у вас могут одновременно жить несколько версий структуры →

    19:09

    Вы заводите новую версию, выкатываете новую структуру/приложение. Старые сессии/клиенты дорабатывают по-старому, а новые уже видят новое.

    19:10

    Давно хочу попробовать это дело, но все времени нет.

    19:11

    @gruz0: в моей текущей деятельности пытаемся обеспечить простой при деплойменте приложения меньше секунды :-D” Круто!

    19:11

    @de_gis: а как это ТЗ в гитлабе?” ТЗ пишется в MD, и версионируется как проект в gitlab → все (dev, qa) имеют доступ к актуальной версии!:)

    19:31
    @gruz0 @backendsecret @dcromster замечу,что часто ещё ТЗ фиксируется в контракте на весь объём работ
    19:32

    .@de_gis @gruz0 @dcromster в контактах обычно общие слова и функции. А у нас уже подробное функционально-техническое.

    19:32
    @backendsecret, кстати, да — отдельно стоит обсудить постановку и приёмку задач, управление сроками. Это тоже очень интересная тема.
    21:38

    У нас процесс работы с задачами следующий: крупными мазками с руководством планируем задачи. Дальше они детализируются, декомпозируются →

    21:39

    → после чего компонуются в порядке приоритета. Затем обсуждаются в кругу разработчиков: кто что и, главное, за какое время сделает →

    21:41

    → а дальше, у каждого разработчика есть свой коэффициент :) считающийся по формуле: затраченное время/озвученное время. →

    21:43

    → в идеале, этот коэф. должен быть равен 1. Но это крайне редко. В некоторых случаях он доходит до 4х а то и больше.

    21:43

    Именно поэтому ходит поговорка: возьми время, озвученное разработчиком, умножь на 2|4|8 и получишь реальный срок :)

    21:44

    Идем дальше: приемка. Тут неско важных моментов: код-ревью кем-то из коллег, сливание PR в осн ветку, закрытие задачи и выставление статуса

    21:46

    .@marinintim а задача стрелочки всего лишь сообщить, что в продолжение мысли в следующем твите :) А при чтении их надо игнорить просто :)

    21:49

    .@gruz0 да, самое время расслабиться после рабочего дня!

    22:16

    А я пока расширил и дополнил ссылками список слушаемых мной подкастов.Удалил заглохшие больше года. gist.github.com/KSDaemon/1d3c4… Там много нового

    22:17

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

    Вчера обстоятельно поговорили про процесс разработки (и то не все обсудили). Но давайте сменим тему :)

    11:20

    Давайте поговорим об архитектуре в общем смысле. Монолит, SOA, микросервисы? Что думаете? У каждого подхода есть свои + и -. Какие у вас?

    11:21

    Многие сильно хают монолиты, что прям вот микросервисы и никак иначе! Я в корне не согласен.

    11:22

    Монолит — это быстрый старт, удобство обслуживания, возможность проверки решения и жизнеспособности проекта, выработка подхода и функций

    11:24

    Микросервисы с нуля — возможны при ооочень подробном и детальном ТЗ, когда сразу можно увидеть функциональные блоки →

    11:25

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

    11:26

    Именно по этой причине мне всегда смешно,когда в новом проекте сразу выбирается какая-ньть монга/кассандра как БД, вместо традиционной RDBMS

    11:28

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

    11:28

    Как верно замечено, если есть опыт и понимание специфики проекта, можно сразу выбрать правильный инструмент.

    12:11
    @backendsecret монга разве не проще для JSON APIs? Как минимум на серелизации экономишь
    12:11
    @backendsecret, есть нюанс — в большинстве случаем прототип становится рабочим инструментом, который потом пытаются продать. Это — ошибка.
    12:17

    .@gruz0 да, это большая проблема. И тут надо только показывать и доказывать руководству как действовать дальше.

    12:18

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

    12:19
    @filipovskii @backendsecret а если взять couchdb, то можно совсем без бекенда
    12:19

    .@somerandstring @filipovskii что подразумевать под прототипом? Если просто интерфейс—может и ок. Но работающий прототип—это и бэк и сервисы

    12:20

    Есть интересный доклад про модуляризацию систем: Nano, Micro, Mini, oh my: Modularization for sustainable systems youtube.com/watch?v=HYiLzj…

    12:21

    А еще есть такая методология 12-ци факторов для создания SaaS-приложений. 12factor.net/ru/ Там много правильных слов.

    12:23

    По архитектуре самих приложений есть оч интересный ресурс:The Architecture of Open Source Applications aosabook.org/en/index.html Крайне советую

    12:26

    Наподобие 12Factor, еще есть метод «aim42». aim42.github.io Там тоже про эволюцию, поддержку, улучшение и миграции систем.

    12:28

    .@raxpost если этот выбор осознанный — я только «ЗА»! Но если просто потому что «ну все же юзают монгу!» — то уж извините.

    13:11
    @backendsecret для некоторых стеков Mongo - база по умолчанию. На Node 90% фреймворков, BaaS, шаблонов проекта как раз рассчитаны на нее.
    16:50

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

    16:52

    .@listochkin я про то, что выбор БД для фреймворка обусловлен только личным предпочтение создателя, а не реальными потребностями

    16:53

    Хотите посмеяться? Веселый баг в MySQL: есть SQL запрос вида CREATE USER ххх ident by yyy require SSL. Так вот в старых версиях MySQL →

    16:57

    он работает очень круто: создает пользователя без пароля и говорит, что все ок!!! То есть проблем нет, но и пароль с SSL я включать не буду!

    16:58

    Сегодня, кстати, у нас мероприятие @moscowjs. Вот вы, бэкендеры, скажите, вы смотрите на мир фронтенда, чего там нового? Интересно?

    17:14
    @backendsecret @moscowjs бэкендер смотрит в мир фронтенда через REST
    17:20

    .@RusAlexander а как насчет веб-сокетов или еще каких протоколов? REST — это хорошо, но есть и другие способы взаимодействия! ;)

    17:21

    Еще интересный вопрос: есть ли кто-то, кто ушёл в бэкенд с клиентской стороны (не важно какой)? Вот наоборот знаю много случаев.

    17:33
    @backendsecret я перешел когда-то с front на back end, но стараюсь не отставать по обеих направлениях
    20:05
    @backendsecret @moscowjs Я таки full-stack, но graphql и falcor всё изменят и на фронтенде и на бакенде.
    20:05

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

    20:07

    Graphql - это новый способ общения клиента и сервера, точнее язык запросов. Когда клиент говорит чего хочет, а бэк все разруливает и дает.

    20:10

    Мне всегда нравился SOAP/WSDL за готовое описание интерфейсов. Но он оооочень тяжёёёёёлый!

    20:12
    @backendsecret я как комар между двух фонарей. И там интересно, и без бэка никуда. @moscowjs
    20:49
    @backendsecret @moscowjs это смешно, но работу найти труднее. Узкая специализация сейчас всё ещё "рулит" :(
    21:06

    .@dcromster мне кажется, сейчас в проектах нужны все категории спецов: и узкого и широких профилей. У меня в веб-команде есть и те и другие

    21:08

    .@dcromster это дает гибкость в распределении и решении задач. Всегда можно усилить ту или другую сторону.

    21:09

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

    Хелло world! :) Продолжим? :) Вчера было еще несколько вопросов, сейчас на них отвечу.

    11:49

    Да, мы обсуждали тему: «смотрят ли бэкендеры по сторонам?» :)

    11:49
    @backendsecret я вчера немного пропустил беседу про БД. У вас в хранимках обсчитывается доступ к записям для пользователей?
    11:50

    .@RusAlexander → и у нас сложная и гибкая система прав на данные, поэтому проще решать эти вопросы внутри хранимок . →

    11:52

    .@RusAlexander → пользователь БД, из-под которого работает ПО, имеет доступ только к выполнению определенных хранимок.

    11:53

    .@RusAlexander → это проще, чем настраивать доступ для БД-юзеров на уровне строк кучи таблиц и поддерживать это в актуальности.

    11:54
    .@backendsecret Redmine vs YT: в YT отличный "аяксовый" keyboard centric интерфейс, экономит время на типовых задачах habrahabr.ru/post/245065/#c…
    11:54

    @KELiON: считаю что полезно не только во фронтэнд смотреть, но и в ux/аналитику (в первую очередь) и ui (во вторую)” Поддерживаю!

    11:55

    Как я говорил, вчера был отличный @moscowjs и душевные посиделки после. Радует, что участвующих становится все больше и есть новые лица!

    11:56

    Так вот, рассказывал про @backendsecret. Обсудили много разных тем: DB, ORM, ACL, PgSQL, Oracle, Ruby, Django, Doctrine и еще много всего!

    11:57

    Это я про к тому, что даже вот на такие, вроде бы, чисто фронденд-встречи, ходят и бэкендеры и тоже участвуют в обсуждениях! И это здорово!

    11:58

    .@RusAlexander мы юзаем хранимки и в MySQL. У нас порядка 8 программных модулей (PHP/C#/C/C++), у всех свои гранты на определенные хранимки

    12:00

    @listochkin: про что говорили?” Ох, много про что: подкасты, debug, рендеринг, оптимизация, фреймворки, конференции, сорта пива :) и т.д.

    12:03

    @RusAlexander: но на самом деле столкнулся с ограничениями хранимок в MySQL.” Расскажи поподробнее!

    12:03

    Товарищи! А расскажите мне, какая у вас структура команды: сколько бэк/фронт-девов, есть ли UI/UX-дизайнеры, тестеры, архитекторы?

    12:20

    Видать пятница всех расслабила… Тишина :) все ушли в соц сети, арканоиды и солитеры?)

    13:08

    .@RusAlexander мы спокойно возвращаем один и даже неско рекордсетов из хранимок. Или я не правильно понял мысль.

    13:37
    @backendsecret , Ваше отношение к исключениям (exception) в программировании?
    13:38

    .@PZabolotniy если коротко: эксепшны нужны. Сервисы и приложения должны работать корректно по отношению к миру даже в случаях ошибок.

    13:40

    .@PZabolotniy ошибки разрабов надо ловить и собирать, но для пользователя должно быть понятное уведомление и инфа о том как быть.

    13:42

    .@PZabolotniy то же касается и АПИ. Очень раздражает, когда получаешь стэктрейс внутренней кухни, вместо какой-то вменяемой ошибки/кода

    13:43
    @backendsecret SELECT * FROM ProcName(param1, param2); Хочется такого.
    13:44

    .@RusAlexander а чем плох вариант exec ProcName(param1, param2); которая возвращает нужный рекордсет?

    13:45

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

    13:46

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

    13:48
    @backendsecret а что ты понимаешь под админом в душе? :)
    14:42

    @anton_davydov: а что ты понимаешь под админом в душе? :)” Я скорее про то, что надо уметь и любить ковыряться в настройках, конфигах и пр.

    14:43
    @backendsecret именно. Когда я моюсь в душе и моя борода превращается в мокрую и лохматую, то на вид - админ админом!
    14:43

    .@listochkin ну ты-то точно админ в душе, я уверен! А после душа — так вообще без варинатов, судя по всему!)

    14:44
    @backendsecret , разработку надо вести в той среде, в которой удобно, или в той, в которой ПО будет эксплуатироваться?
    14:44

    .@PZabolotniy Я бы сказал, одновременно и там и там :) Сейчас полно инструментов для этого: docker, vagrant и прочие.

    14:45

    .@PZabolotniy это позволяет: а) унифицировать окружение у всех девов, б) иметь одно dev/test/prod окружение, в) дать легкий старт новичку

    14:46

    .@PZabolotniy Опять же благодаря этому, можно иметь любимое и удобное окружение для работы, Mac/Linux/Win, любой редактор и прочее.

    14:48
    @PZabolotniy @backendsecret если тестирование на той же машине, что и конечная эксплуатация, то скорее да.
    14:49

    .@Kern_0 @PZabolotniy о нет! Это очень плохая идея!А что,если что-то пойдет не так?Прод просто ляжет из-за глупой ошибки. Нельзя так делать!

    14:50

    .@Kern_0 @PZabolotniy да,я тоже ЗА то,чтобы если прод на линуксе—то и разработку желательно вести на линуксе. Но контейнеры это абстрагируют

    15:11

    @RusAlexander: К нему join нельзя будет сделать.” А зачем к нему делать join потом, если его можно сделать сразу в SP?

    15:14

    .@RusAlexander Или вы динамически строите запрос с джоином с участием каких-то статических кусков запросов?

    15:15

    .@iamstarkov да, сорри, если забыл пару раз ретвитнуть перед ответом!

    15:29
    @backendsecret @Kern_0 @PZabolotniy а мы не придерживаемся такого правила. У нас все пишут на Mac OS, а продакшн-серверы на CentOS 6.
    15:30
    @backendsecret @Kern_0 @PZabolotniy но у нас для каждого приложения есть staging- и production-серверы, которые идентичны в настройках.
    15:30
    @backendsecret да, есть часть запроса которая идет по проекту. Видимо идет к тому, что запросы будут строиться динамически.
    15:30

    .@RusAlexander ну если кейсов не много, можно их же забить в SP и +1 параметр на вход.

    15:31

    .@RusAlexander если кейсов много, то да, if-else не вариант, но и dSQL можно в хранимке писать, все равно будет в одном месте.

    15:32
    @backendsecret Во имя Сети и Сервера и Резервных Копий. Админь!
    15:43

    @anton_davydov: вот ты много говорил про администрирование. поэтому, можешь посоветовать 1 самый маст рид?” Сложный вопрос

    17:11

    .@anton_davydov Я начинал с FreeBSD handbook то ли по 4.4, то ли по 5.0 версии :) ну и дальше понеслась.Но вот одной какой-то книжки не знаю

    17:12

    @truecrux: каждый из нас админ локалхоста ;)” :) Хех! Жаль, но даже это не всегда так.

    17:13
    @backendsecret да, dSQL, но не очень уж они удобные у MySQL, хотя может мне не хватает в этом опыта.
    17:13

    .@RusAlexander больше практики и изучения best practice! А так же спрашивать у старших товарищей совета и рекомендаций! ;)

    17:14

    Товарищ @23slider вот какой ресурс посоветовал: Server Admin for Programmers serversforhackers.com

    17:16

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

    17:25

    P.S. Хабр/SO/Google не предлагать! :)

    17:26

    Или может, какой доклад интересный посмотрели, что наступило прозрение, или наоборот, башню снесло! %)

    17:31

    @afiskon: мы все цепляющие статьи в #devzen обсуждаем, там куча ссылок :)” О, привет! И ты тут! :) Но все же что-то зацепило особенно! ;)

    17:31

    Вот товарищ @vyazovoi проникается emacs и org-mode: planet.emacsen.org и doc.norang.ca/org-mode.html

    17:34

    Очень интересный доклад автора Clojure, Rich Hickey «Are We There Yet?» infoq.com/presentations/… Доклад 2009 года, но актуальности не потерял!

    17:36

    @dcromster: всё тот же - 36.” О, да! Если вы еще не видели доклад Вадима Макишвили «36». Обязательно посмотрите! events.yandex.ru/lib/talks/2235/

    18:01
    @backendsecret все 5 человек full stack, отдельного архитектора нет, коллективный разум: small dream team!
    18:27

    .@zhulikgleb советует: golangweekly.com dbweekly.com postgresweekly.com rubyweekly.com Но я перестал их читать

    20:21
    @backendsecret хорошие статьи встречаются на pragmaticperl.com, например об асинхронном программировании (pragmaticperl.com/issues/21/prag…).
    20:21
    @backendsecret 2 бэкенда, 2 фронта, 1 фуллстэк. Но стараемся все в фуллстэк уйти
    21:51
    @backendsecret практичный вопрос: как правильно спроектировать API?
    21:51

    .@dcromster непростой вопрос, и конечно все зависит от задачи и специфики. Но попробую сформулировать общие рекомендации.

    21:52

    .@dcromster надо выделить сущности, определить возможные действия над ними, разложить все по неймспейсам, определить формат запросов/ответов

    21:56

    .@dcromster под форматом я имею в виду не тип (json|xml) а именно подход:как понимать что запрос успешен,определить диапазоны кодов и прочее

    21:58

    @dcromster: Есть какие-нибудь подводные камни?” Подводные камни есть всегда! Например, когда придется расширить АПИ как-то нестандартно

    22:00

    .@dcromster или когда потребуется добавить какие-нибудь распределенные транзакции. В общем может быть много вопросов.

    22:01

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

    22:02

    Товарищи! Мы обсудили много разных тем, но вдруг у вас есть вопросы — спрашивайте, не стесняйтесь! ;)

    22:38

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

    @backendsecret ваше мнение, что важней - процесс или результат? И что же делать когда хотят результат - но на нормальный процесс нет времени
    12:39

    .@kryapolov смотря для кого. Для начальства всегда важнее результат, для прогеров оч часто сам процесс.

    12:40

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

    12:40
    @backendsecret как подготовить проект к переходу на новую мажорную версию фреймворка?
    12:41

    .@m1kenobe ох.Непростой это вопрос.Если фреймворк серьезный,обычно известен роадмап,появляется новый АПИ, а старый помечается как deprecated

    12:43

    .@m1kenobe поэтому нужно не ждать релиза, а начинать переписывать deprecated кусочки, не все сразу, а по чуть-чуть.

    12:44

    .@m1kenobe тогда к моменту нового релиза уже не будет неработающего кода и не придется тестировать вообще все.

    12:45
    @backendsecret @kryapolov я, как апологет Скрама, считаю, что команда на ретроспективе должна решать, как улучшить процесс.
    17:16
    @backendsecret "звеньями".1звено=2бэк+1ui+1qa+1аналитик.Иногда: 1 аналитик на 2 звена и 3qa на 2звена.
    17:16

    @de_gis: архитектор(тимлид) и DBA над звеньями и шарятся по проектам” вот у нас точно так же! Еще QA правда тоже shared :)

    17:21

    @dcromster: @backendsecret расскажи о себе как о человеке ;)” оу.. Ну это ж будет крайне субъективно. Спросите лучше тех,кто меня знает :)

    19:45

    @dcromster: расскажи о себе как о человеке ;)” ну или что-то поконкретнее спроси(те) :)

    19:46

    Товарищи, а какие у вас увлечения помимо программирования, ну или не по профилю?) Я вот интересуюсь IoT,пытаюсь ковырять ESP8266 и все такое

    20:10

    @filipovskii: кем хотел стать в детстве? :)” В совсем глубоком - не помню, но со школы уже смотрел в электронику, =>

    20:12

    .@filipovskii @dcromster а в 12 лет, когда мне родители подарили 80386 (который работает до сих пор, кстати) выбор был сделан окончательно!)

    20:14

    .@dcromster хотя, чтобы было интереснее: вот вам несколько фактов обо мне ;)

    20:18

    Факт 1: мое первое место работы - Большой Театр. Попробуйте угадать кем? ;)

    20:19

    Факт 2: я окончил муз школу по классу аккордеона. А сейчас после каждого @moscowjs мы с @aleksisha немного дудим на гармонике :)

    20:22

    Факт 3: я был байкером, у меня был 1100 кубовый крузер Honda Shadow, косуха, кож штаны и все дела :)

    20:23

    Факт 4: я искал работу только в самый первый раз. Во всех след случаях, все получалось как-то само.

    20:25

    Факт 5: были времена, когда я ездил по стране и обучал больших дядек (директоров заводов и тп) играть в одну игру :)

    20:27

    Факт 6: я пил пиво с Томом Кайтом и Майклом Видениусом :)

    20:34
    @backendsecret не знаю, что за чуваки, но раз с тобой пиво пили, значит нормальные ребята
    22:02

    .@listochkin кажется это был сарказм :) но на всякий случай: Tom Kyte - самый известный чувак в мире Oracle DB, “Ask Tom” - это как раз он.

    22:04

    .@listochkin ну а уж Монти, создателя MySQL, кажется и так все знают :)

    22:05

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

    @listochkin: крамольное мнение: я считаю, что MySQL - очень ОК. Для меня - база по-умолчанию.” По большому счету, я с тобой согласен!

    9:39

    @a_lithium: @listochkin уже спрашивали почему не postgresql?” Я бы сказал, так сложилось исторически. Это был стандартный инстр-нт в стэке

    10:47

    .@filipovskii касательно дядек и игр: это была игра-симулятор развития нефтяной компании :) и играли в нее как начальники НПЗ :))

    10:49

    @filipovskii: уоуоуоу ты просто обязан как-нибудь со всем этим появиться на MoscowJS!” Тогда уж ВО всем этом! ;) я подумаю ;)

    12:54

    @verylazydreamer: @listochkin твиттер использует mysql, даже своя модификация есть” Многие используют и все ок, это скорее искусств негатив

    12:56

    @de_gis: виноградорство” о, круто! Результат бывает полусладким, сухим и пр?)

    17:50

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

    17:59

    Ну что, товарищи… Подходит к концу мое дежурство на посту @backendsecret. Надеюсь вам было интересно и вы узнали что-нибудь нового.

    23:27

    Меж тем, если что, вся инфа и статистика есть на backendsecret.ru

    23:28

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

    23:30

    С вами был Константин @KSDaemon Буркалев. Спасибо еще раз и до новых встреч! ;)

    23:36

    other