# Понедельник 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
В продолжение темы подкастов. Судя по ответам, никто не любит выпуски >часа. Я, кстати, тоже :) но это не всегда получается.
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:40Open 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И само собой делаю PR в проекты,которые сам использую.В этом свете вопрос: контрибьютите ли вы в используемые проекты? Bugfix, new features?
14:53“@dcromster: я нахожу баги. Сообщение о баге считается вкладом в OS?” Если он правильно оформлен — да. Но еще лучше,сразу PR с исправлением!
14:58“@dcromster: не всегда это возможно. Например, программа на С, а человек глубокий ПХПшник.” Да, бывает. Тогда надо сообщить о проблеме!
15:02Кстати, если интересно, могу рассказать пару слов про WAMP.
16:06@backendsecret одно время слушал radiojs но отписался из-за низкой концентрации информации. В слушаемых остались ctocast и radio-t16:30
.@serebro Хммм,интересно. В RadioJS мы как раз обсуждаем новости по большей части, даже если зовем гостей. Чего не хватает? Спасиб за мнение
16:32WAMP (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:50Github, кстати, в плане развития 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 надо писать тесты! Тесты, КАРЛ! @backendsecret22:28
.@shuvalov_anton да, тесты крайне важны! Никому не хочется юзать либу, которая не покрыта тестами. Здесь важно, чтобы тесты полными
22:30@shuvalov_anton @backendsecret можно подумать, что не в опенсорс-проектах тесты не нужны22:30
.@listochkin @shuvalov_anton кажется НЕ в опенсорс мире, на тесты почти никогда не остается времени…
22:31@backendsecret @shuvalov_anton поэтому главное правило OSS: будь монополистом с офигенной документацией :D22: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 Тобиас @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 доставляют особое удовольствие. И денег приносят бонусом :-D16:57
Тут спрашивают, кого из разработчиков “must follow” в тви… Попробую назвать несколько имен…
16:58enDevs которых я читаю: @rauschma @weaverryan @creationix @agentzh @fabpot @addyosmani @AriyaHidayat @igrigorik @gvanrossum @spolsky →
17:04enDevs которых я читаю: @wycats @__DavidFlanagan @paul_irish @WebReflection @stoyanstefanov @ppk @slicknet @Souders
17:05ruDevs,которых я читаю: @DmitryBaranovsk @AntonShevchuk @sam_dark @listochkin @rdvornov @mista_k @lisachenko @dshevchenko_biz @sergeybelove
17:09на самом деле этот список можно продолжать долго) вплоть до 276 пунктов))
17:12Конечно же там есть @filipovskii и @bashmish (с кем мы делаем @RadioJSPodcast и @moscowjs) и @jekill (c кем мы делаем @SymfoniacsMsk)
17:13Вы вот мне лучше скажите, вы участвуете в каких-то сообществах? Не в тви почитать,а реально! Встречу/конфу сделать, помочь советом и прочее.
17:16“@anton_davydov: пока провожу неформальные встречи в рамках moscow-rb.org.
В будущем хотелось бы более техн встречи делать” Круто!
“@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 ->YT13:07
.@PetrMyazin нет, я пока не встречал, не слышал. Тут скорее фактор того, что: ну вот мы настроили RM и все ок, нет смысла искать новое…
13:08@backendsecret, у нас для задач/багов/вики — Bitrix24, код в Gitlab, код-ревью через RSS на Vienna :-D13: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 Спасибо тому, кто дал тебе доступ к этому аккаунту! :-D18: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 ORM - зло!18:59
@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А я пока расширил и дополнил ссылками список слушаемых мной подкастов.Удалил заглохшие больше года. 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 бэкендер смотрит в мир фронтенда через REST17:20
.@RusAlexander а как насчет веб-сокетов или еще каких протоколов? REST — это хорошо, но есть и другие способы взаимодействия! ;)
17:21Еще интересный вопрос: есть ли кто-то, кто ушёл в бэкенд с клиентской стороны (не важно какой)? Вот наоборот знаю много случаев.
17:33@backendsecret я перешел когда-то с front на back end, но стараюсь не отставать по обеих направлениях20:05
@backendsecret @moscowjs Я таки full-stack, но graphql и falcor всё изменят и на фронтенде и на бакенде.20:05
да, фейсбук задает сейчас задает тон! Появилось много новых инструментов и технологий.
20:07Graphql - это новый способ общения клиента и сервера, точнее язык запросов. Когда клиент говорит чего хочет, а бэк все разруливает и дает.
20:10Мне всегда нравился SOAP/WSDL за готовое описание интерфейсов. Но он оооочень тяжёёёёёлый!
20:12@backendsecret я как комар между двух фонарей. И там интересно, и без бэка никуда. @moscowjs20: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@backendsecret да, dSQL, но не очень уж они удобные у MySQL, хотя может мне не хватает в этом опыта.17:13
.@RusAlexander больше практики и изучения best practice! А так же спрашивать у старших товарищей совета и рекомендаций! ;)
17:14Товарищ @23slider вот какой ресурс посоветовал: Server Admin for Programmers serversforhackers.com
17:16Время ближется к завершению рабочей недели. Поделитесь, какие интересные ресурсы вы читаете? Какая статья вас зацепила в последнее время?
17:25P.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Собрались сегодня с друзьями за шашлычком, обсуждаем разные айтишные темы :) как это все работает в наших компаниях и на рынке в целом :)
17:59Ну что, товарищи… Подходит к концу мое дежурство на посту @backendsecret. Надеюсь вам было интересно и вы узнали что-нибудь нового.
23:27Меж тем, если что, вся инфа и статистика есть на backendsecret.ru
23:28Если у вас еще остались вопросы/замечания/предложения или желание пообщаться, ищите меня на в моем привычном аккаунте.
23:30# Ссылки
other
- http://compulenta.podster.fm/511
- http://lwn.net/Articles/651366/
- http://blog.ksdaemon.ru/2014/09/para-slov-pro-wamp/http://blog.ksdaemon.ru/2014/09/para-slov-pro-wamp/
- http://blog.ksdaemon.ru/2015/02/wamp-kak-osnova-kompozitnykh-soa-prilozheniy/
- http://blog.ksdaemon.ru/2014/02/v-poiskakh-optimalnykh-sredstv-soprovozhdeniya-razrabotki-chast-tretya-schaste-blizko/
- http://wamp.ws/
- http://wamp.ws/implementations/
- http://terralang.org/
- https://gist.github.com/KSDaemon/1d3c401c138e03a852c6
- http://stevelosh.com/blog/2013/09/teach-dont-tell/
- https://groups.google.com/forum/#!forum/wampws
- http://moscow-rb.org/
- https://ru.wikipedia.org/wiki/
- https://github.com/veryEvilMan/fl-ru-damp/issues/3
- http://udemy.com/
- https://www.youtube.com/watch?v=HYiLzji7MuY
- http://12factor.net/ru/
- http://aosabook.org/en/index.html
- http://aim42.github.io/
- http://habrahabr.ru/post/245065/#comment_8166591
- https://serversforhackers.com/
- http://planet.emacsen.org/
- http://doc.norang.ca/org-mode.html
- http://www.infoq.com/presentations/Are-We-There-Yet-Rich-Hickey
- https://events.yandex.ru/lib/talks/2235/
- http://golangweekly.com/
- http://dbweekly.com/
- http://postgresweekly.com/
- http://rubyweekly.com/
- http://pragmaticperl.com/
- http://pragmaticperl.com/issues/21/pragmaticperl-21-%D0%B5%D1%89%D0%B5-%D0%BD%D0%B5%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE-%D0%BE%D0%B1-%D0%B0%D1%81%D0%B8%D0%BD%D1%85%D1%80%D0%BE%D0%BD%D0%BD%D0%BE%D0%BC-%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B8-%D0%BD%D0%B0-anyevent.html
- http://backendsecret.ru/