dsimonov

10 августа 2015, Россия

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

Привет! @dsimonov с вами! Уважаемый @dcromster предложил подежурить тут недельку на правах perl бекенд-дева с некоторым опытом.

3:33

Рецепт отделения опытных дев-ов от неопытных - FizzBuzz test (гуглите!). Предлагаю желающим написать решение для него, умещающееся в твит.

3:39

.На бумажке, @iamale_ru!

3:41
@backendsecret (1..100).each do |i|
s = []
s << 'Fizz' if i % 3 == 0
s << 'Buzz' if i % 5 == 0
puts s.join unless s.empty?
end
4:00
@backendsecret f="Fizz"
b="Buzz"
p=print
for i in range(1,100):
if i%3==0 and i%5==0:p(f+b)
elif i%3==0:p(f)
elif i%5==0:p(b)
else:p(i)
4:24
@backendsecret d={1:"Fizz",3:"Buzz",4:"FizzBuzz"}
for i in range(1,100):
j=0
if i%3==0:j+=1
if i%5==0:j+=3
print(d.get(j,i))
еще:))
5:44
@backendsecret
f='Fuzz'
b='Buzz'
p={println it}
1.upto(100){i->
if(!(i%3+i%5)) p f+b
else if (!(i%3)) p f
else if(!(i%5)) p b
else p i
}
5:55
@backendsecret на прошлой неделе @jsunderhood обсуждал как взаимодействовать в удалённой команде. Расскажи свой опыт,plz // @freiksenet
7:13

.@dcromster @jsunderhood @freiksenet 5л опыта управления distributed russian teams помогли разобраться в бОльшей часть возникающих проблем.

7:18

.@dcromster @jsunderhood @freiksenet Мне проще отвечать на то, как решались конкретные проблемы. Жду описания проблем, - буду отвечать.

7:18
@backendsecret @dcromster @jsunderhood @freiksenet Именно команды были разделены или люди в командах тоже не были в офисах?
7:23

.@freiksenet_ru @dcromster @jsunderhood @freiksenet Все сотрудники сидели у себя дома в разных часовых поясах с рассеянием не более 3х часов

7:24
@backendsecret @dcromster @jsunderhood @freiksenet А сильно разделенные по часовым поясам команды были?
7:30

.@freiksenet_ru @dcromster @jsunderhood @freiksenet Рассеивание по часовым поясам составляло не более 3х часов.

7:31
@backendsecret давай сразу о боли:наша совместная работа, взаимодействие в команде, долгие ответы...
7:35

.@dcromster Боли, как таковой не было. Команда действовала в том максимуме эффективности, в каком вообще могла действовать.

7:35
@backendsecret не переходя на личности: как же с этим (долгими ответами) бороться?
7:39

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

7:40

Тема дня - "задолбали!". Кто и в чём разочаровался в работе? Язык? Технологии? Менеджерьё? Стиль работы? Офис? Дом?

7:59
@backendsecret #!/usr/bin/python3
for i in range(1, 100):
print(("" if i%3 else "Fizz")+("" if i%5 else "Buzz") or i)
9:43
@backendsecret были ли у вас регулярные совместные обсуждения кроме рабочих? Чтобы разработчики лучше друг друга узнавали
11:49

.Срачики, @gusevr, у нас постоянны - в чатика, в утренних скрамах, ретроспективах и других созвонах. Задача: семь пудов соли вместе съесть!

11:53

.Это лучший способ получить сплочённую команду, @gusevr, в условия рассеянности по стране. Но я подумываю про некоторые методики от Steam.

11:55
@backendsecret В компании много небольших команд работающих над разными проектами/технологиями. Как собрать всех вместе? Hangouts или slack?
12:06

.Про slack, @gusevr, ничего не могу сказать, но их хвалят. У меня всё ни как руки не дойдут. Хенгаутс - точно гавно ( Телеграм хорош ещё!

12:08

.Могу ещё порекомендовать, @gusevr, тасовать народ между проектами. Также у меня есть практика сделать тематические чатики: беки, фронты...

12:10
@gusevr @backendsecret slack самое оно. Проекты разбить по channels
12:12
@dzaporozhets @backendsecret проекты по чатикам - это как раз чтобы разбить народ. А вот как всех объединить? Хотя бы на пол часа в неделю
12:35

.А всего народ сколько, @gusevr?

12:36
@backendsecret под хенгаутс больше имел ввиду вид общения: чат или видео. Стоит ли устраивать видео встречи? В рабочем процессе общения нет
13:00

.Видеовстречи показали себя отрицательно, @gusevr. Аудиосозвоны очень удобны, а видео - разочаровывает.

13:01
@backendsecret как мотивировать людей зайти на встречу?
13:01

.Проводите созвоны "ретроспективы" в контексте agile scrum, @gusevr! В них обычно заинтересованы все :)

13:02
@dzaporozhets @backendsecret вот получается, что рабочей необходимости в аудио-видео нет. Надо ли устраивать свободные темы?Как мотивировать
13:03

.А с чем вы боретесь такими встречами, @gusevr?

13:03
@backendsecret разработчиков 15-20
13:04

.При таком количестве обыкновенного созвона по скайпу хватит, @gusevr.

13:04
@backendsecret Есть традиционные каналы general/random для всех. Есть ретроспективы, но по проектам. А таких встреч пока нет. ...
14:31

.Очень хорошая тема для обсуждения, @gusevr! Давайте знакомиться с вами и вашими командами плотнее?

14:31

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

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

6:45

Таким образом product owner может развивать интерфейсы в любую сторону по мере проверки гипотез.

6:47

Задача же project manager сводится к правильному обеспечению технической инфраструктуры и слаженной работы админов, беков и фронтов.

6:49

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

6:51

В жизни все сложнее. Команды, которым проект достался готовый, тратят все силы на его познание и пере ориентирование.

6:56

Команды, стартовавшие проект с нуля (ценность, кстати! Мало, кто умеет!) подчинены главному принципы - пусть взлетит хоть как-нибудь!

6:57

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

7:00

Вторые (инженеры) превратят эту тропинку (хоть как-то работающий продукт) в широкополосное скоростное шоссе!

7:00

Работа разведчиков и инженеров отличается кардинально. Легко “сжечь” инженера поставив его на позицию разведчика.

7:02

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

7:09

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

7:21

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

7:23
@backendsecret не лучше ли искать золотую середину? Переделывать всегда дороже, чем делать с нуля
8:37

.Конечно же всегда такая середина ищется, @Borovikov. Как правило настоящая команда формируется только после 1-2х проектов.

8:37
@backendsecret ок, расскажи про управление такой командой. Ведь придется работать вместе людям с диаметрально противоположными взглядами.
8:39

.Они идут след в след друг за другом, @Borovikov. Разведчик совершил подвиг, потом приходит ворчливый инженер и всё перестраивает :)

8:39
@backendsecret разведчики ребята это вроде практикующих проектировщиков?
8:40

.Это чапаевцы, @vladimore - шашки наголо и вперёд в атаку. "Тестировать будем в продакшне, выкатывай!"

8:40
@backendsecret всегда спрашиваю питонистов: зачем Питон?Какие задачи можно решить с его помощью, которые нельзя или сложнее решить Perl'oм
8:41

.Я люблю "американо", а вот супруга предпочитает "латте", @dcromster. И то и другое - кофе. Но строго говоря, мировой тренд - это питон.

8:42
@backendsecret И потом получится silos где будут либо хаки на фронтенде, либо бакенд подогнутый под требования одного фронтенда.
8:43

.Вопрос интеграции решаются на скрам-декомпозициях, @freiksenet_ru. Объяснять, что это такое, требуется?

8:43
@backendsecret "правильному обеспечению технической инфраструктуры" это о чем? можно несколько раскрыть тему?
8:45

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

8:45
@backendsecret боюсь ситуация когда ворчун не просто переделывает, а устраивает скандал "разведчику" довольно частая. да и наоборот, бывает.
8:47

.Это проблема проджекта, @Borovikov. Как правило, после первых же побед команды, все конфликты уходят, - результат-то налицо!

8:47
@backendsecret расскажи плиз, какие видишь пути разрешения конфликтов
8:49

.Я убеждённый сторонник того, что сама работа и её результаты оздоровляют обстановку, @Borovikov. Есть результаты, - все довольны.

8:50
@backendsecret хм, чаще всего, манагеры далеко не спецы в построении процессов разработки, они по сути арбитры и ревизоры, имхо
8:51

.Менеджеры, @ivanenok, делятся на инвесторов, продактов и проджектов. Инвестор даёт бабло. Продакт - продаёт продукт. Проджект - строит.

8:51
@backendsecret я думал что нода в частности и JS в общем мировой тренд
8:53

.На фронте, @dcromster, да. Нода одна из первых. Но бек ни кто не отменял.

8:53
В @backendsecret опять говорят, что скрам работает. Как же так, на моем он исключительно не работал и был максимум поводом биллить за час.
9:00

Это просто холивор, @freiksenet_ru.

9:00
@freiksenet_ru @backendsecret которые билятся: "у нас сегодня был эстимейшн на 6ч и 20 чел, вот вам счет — у нас скрам" ну охуеть теперь
9:15

Это несвязанные вещи, @yuritkachenko @freiksenet_ru. Скрам - это итерационное улучшение работающего продукта, а не способ оценки работ.

9:15
@backendsecret @freiksenet_ru ой да ладно, а христианство это добрая религия.
9:18

Смените религию, @yuritkachenko @freiksenet_ru :)

9:18
@backendsecret ок, но у меня совсем другой опыт. у разных людей разные представления о результате.
9:19

Поделись, @Borovikov! Возможно у меня был аналогичный. Это вообще могут оказаться семейными граблями, - на них ещё мой дедушка наступал!

9:19
В @backendsecret опять со своим скрамом, тьфу
9:20

Я ещё знаю слово "канбан", @iamale_ru :) (контрольный выстрел в голову)

9:20
@backendsecret о да! Только инженер не всегда доволен постоянным переписыванием ;) @Borovikov
9:21

Меняй инженера, @dcromster @Borovikov.

9:21
@backendsecret @ivanenok а в прод эти перила не ведут?:) или речь о тестировании продакшном:) bnj.com/blog/cowboy-co…
9:31

Я ограничен в количестве символов в твите, @yevvers @ivanenok. Разумеется ведут.

9:31
@backendsecret строит девелоперов? :) очень жаль проекты, где PM насаждает процесс и инструменты удобные ему, а не команде.
9:33

Строит продукт, @ivanenok. Это очень плохая практика ради крассного словца перевирать то, что я пишу. Не все поймут!

9:33
@backendsecret получается конфликт интересов. безконфликтные комманды обычно на одной волне. все думают как менеджер или как инженер.
9:37

У всего есть общий знаменатель, @Borovikov - получаемое бабло. Введите премиальную систему Водянова, чтобы знаменатель был виден ещё чётче.

9:37
@backendsecret имхо это уже область ответственности дев-лида, а не ПМа. Ввиду его не полной компетенции в таких вопросах
9:39

Считайте, что я имел в виду дев-лида, @Xedin.

9:39
@backendsecret я там специально поставил смайл. мне сложно представить программера без чувства юмора, можно с ума сойти :)
9:40

Не вопрос, @ivanenok :)

9:40
"@backendsecret найти отдельно разведчиков и отдельно инженеров намного проще, чем универсалов". Как понять, кто есть кто, во время поиска?
10:33

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

10:35
@backendsecret гляжу на наш продакшен и вижу, что у нас одни разведчики :( как "продать" ПМу идею про инженеров? Спеть про баги в проде?
10:36

Спой, @vladimore, про Стива Джобса и клиентов. Деньги второй раз дают только хорошему сервису с их т.з.

10:39
@dcromster @backendsecret тренд - это то, для чего тебе здесь и сейчас удалось собрать команду. Есть питонисты,то и питон будет трендом.
10:40

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

10:41
@de_gis можно же искать команду целенаправленно: вот эту задачу лучше решает питон, вот эту Node... разве нет? @backendsecret
10:41

Нет, @dcromster. Опираться надо на собственный опыт. Используй свои сильные стороны!

10:42
@backendsecret хорошо, сферический пример: работаем с текстом. Перл на это заточен, Нода -нет. На ней можно сделать тожесамое, но стоит ли?
10:45

Люди, @dcromster, это тоже часть сервиса. Такая же, как оборудование или технологии.

10:46
@dcromster А я вообще не понимаю зачем всё это нужно, есть жеж Ruby :) @de_gis @backendsecret
10:49

Разумеется, @POS_troi! Если есть в наличии рубисты, пиши на нем! @dcromster @de_gis

10:49
@backendsecret не соглашусь,это больше ф-ции техлида.А PM он управляет РЕСУРСАМИ,в т.ч.и людскими.PM в теории м.б. бараном в разработке
10:52

Есть и такой подход, @de_gis ) В этом плане все верно!

10:53
@backendsecret, как применить этот афоризм на практике? ;) Какой ключевой вопрос / ответ на собеседовании?
11:35

Инженер будет рассказывать про внедрённых технические фишки, -много и с упоением, @meAmidos. Разведчик - про достигнутые бизнесом победы.

11:35
@backendsecret и распри из-за денег только ухудшают отношения в коллективе, это уже проверено.
12:37

Почитайте тут, @Borovikov: megamozg.ru/post/1736/

12:37
@backendsecret @Borovikov Программисты таки не ямы копают. Обьективно оценить качество работы программиста сложно.
12:44

Возьмите 2х программеров, @freiksenet_ru, о они совершенно точно определяться друг с другом, кто из них мастер, а кто подмастерье @Borovikov

12:44
@backendsecret эм, ужас какой-то )) Я скорее согласен с Джоэлем, все это от лукавого:
local.joelonsoftware.com/wiki/%D0%9C%D0…
12:50

Джоэль, разумеется авторитет, @Borovikov. Но какие из этих методов вы тестили в реале? Я вот делюсь своим опытом. А вы?

12:50
@backendsecret особенно страдают "инженеры". их вклад долгосрочен и не очевиден. в итоге весь куш у "разведчиков"
12:57

Хороший аргумент, @Borovikov. Буду думать.

12:57
@Borovikov @backendsecret такая проблема возникает когда команда разношерстная в плане опыта и сами отношения ы тиме нездоровы.
13:13
@backendsecret @Borovikov мы устраивали занятный эксперимент. оценивали задачи как в planning poker, и соответсвенно делили деньги проекта.
13:13
@backendsecret @Borovikov надо заметить что эффект был весьма занятным. оценки стали несколько точнее и браться стали за доступные задачи.
13:13
@backendsecret @Borovikov но дело было в начале 00х и концепт был далеко не аджайловским. простое доморощенное изобретение оч понраивлось.
13:13
@backendsecret очень интересный поток мыслей был :) А я из какого лагеря? )))
15:17

Ты, @xuntaka, отдельный класс под названием "Охуенные Байбара Егор" :)

15:17

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

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

6:56

Берите леваки, подработки, шабашки, все, что угодно, расширяющее ваш рабочий кругозор. Кроме того, лишняя работа принесет много контактов.

6:57

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

6:59

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

7:01

Не имеет смысла писать: я программист, архитектор и очень крутой. Имеет смысл рассказывать про косяки, которые всплывали на этих ролях.

7:02

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

7:04

Делитесь опытом решения косяков, “палите” темы, рассказывайте о своих неудачах. ЭТО всем интересно! Но чтобы оно было, - нужна практика.

7:05

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

7:06

Гуру зарабатывают на книжках, а не на разработке. Иначе у них не было бы времени публиковаться. Берите пример с Марка Лемана (автор EV).

7:08

Его ценник - около 1 килоевро за один день работы. Ему не надо публиковаться. Ему не надо следить за фигурой. Он просто ебашит!

7:09

Посмотрите на Монса! Он преподает перл в МГУ, пишет облако для Мейла и заботится о 12ти кошках) Разве он кричит о том, какой он крутой?

7:12

Он просто крут и охуенен! Кто про вас так скажет? Ни кто, если не будете каждый день работать на разных ролях, набирая практику.

7:14

Сегодня линейным программистом, завтра консультантом, послезавтра техдиром. А потом снова программистом. Таких, кто так может - мало.

7:15

Должность (роль) можно отнять. Премии лишить. Практику и опыт - нельзя. Кто кому должен завидовать? Кто без кого не обойдется?

7:16

И лично от себя добавляю еще раз: не верьте на слово ни кому. Проверяйте, практикуйте, учитесь!

7:18

Почему я это все пишу? Потому что потребность в работающих есть всегда, а работает по сути ровно 1%. Остальные занимаются сибурде!

7:23
В @backendsecret сегодня мотивационная речь и немного скрытой политоты. И любовь, обожание к перлу.
7:28

Про мотивацию специально для @freiksenet_ru pic.twitter.com/2MR6FWf61N

7:28

Про перл специально для @freiksenet_ru pic.twitter.com/wEsuukJG4t

7:29
@backendsecret Может у меня такой пузырь, где перла нет.
7:53

Поменяй слово perl на любое другое название, @freiksenet_ru

7:53

Пример правильного построения пула воркеров: i.imgur.com/3297BXb.gifv

11:17

Давайте про асинхронность. Кто что использует и как дебажит утечки памяти? Указывайте язык, plz!

18:27
@backendsecret не только беком. В последнее время у меня спрашивают: как стать девелопером, что читать… На что я отвечаю: бери и пиши код.
18:33
@backendsecret вот говоришь "фигачьте фигачтье!" а где же баланс между работой и личной жизнью?
18:33

Баланс простой, @dcromster. Работай ровно столько, чтобы денег хватало на личную жизнь)

18:35

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

Судя по “многочисленным” ответам тут мало кто занимается работой на низком уровне, а следовательно большими нагрузками. Поднимаемся выше!

5:18

Кто использует в работе какие фреймворки или CMS-ки? Какие бд? Мускул? Постгря? Монга? Redis-ка? Эластик-серч? Мемкеш?

5:20
@backendsecret только Plack, только Postgre, только хардкор! Ну и Redis еще
5:22
@backendsecret нода, монго и редис
5:25
@backendsecret так о ликах или о тредах тема? Вещи весьма себе перпендикулярные :)
5:26

Использование тредов или асинхронности, @ivanenok, влечет за собой проблемы ликов и дебага. То есть вопрос про фактическую работу.

5:28
@backendsecret в managed окружениях типа JVM и .NET с памятью все просто, треды за тобой чистят, но нужен тюнинг иногда.
5:39

А с самой памятью, @ivanenok, как там? “Хеллоу, ворлд“ сколько занимает в виде веб-сервера?

5:41
@backendsecret дебаг многопоточности еще тот геммор и потому предпочтительно тратить больше времени на проектирование.
5:44

Странный тезис, @ivanenok! Программируете сначала на доске/бумаге? Я слышал про подобные собеседования в гугле.

5:46
@backendsecret само окружение жрет память, но под задачи типа Hello World, нужно брать подходящие инструменты типа пыхи, ноды и тд :)
5:47

Это отмазки, @ivanenok. Какой размер?

5:47

И как впечатления, @Chudesnov?

6:07
@backendsecret @ivanenok подстрелить соломки в местах всяких рейс-кондишенов на этапе проектирования это всегда хорошо. И доска тут непричем
6:07
@imdefined @backendsecret я больше о проектировании. типа какие данные шарятся, что с этим делать и как минимизировать сваливание в кернел.
6:07
@backendsecret для дебага использую лимитированные очереди везде, где можно. вместо ликов - режекты.
6:08

Поясни про лимитированные очереди, @Borovikov. У нас (перл) нет такого понятия.

6:08

Про него слышал только название мельком, @freiksenet_ru. Про что эта история?

6:10
@backendsecret любая асинхронная задача выполняется через пул потоков, задачи кидаются вначале в очередь, а пул разгребает.
6:10

Это знакомо и есть аналоги, @Borovikov. И?

6:11
@backendsecret если эту очередь выбрать ограниченной, то при попытке засабмитить слишком много тасков получаем эксепшен
6:17
@backendsecret получается fail fast, и смотрим какой метод пытается переполнить пул и ищем проблему в нем.
6:17
@backendsecret ситуации там как правило типовые, например таски создаются в цикле. или забыли дожидаться окончания тяжелого вызова.
6:17
@backendsecret Язык запросов интересный, сериализуется и выполняется на сервере.
6:19
@backendsecret node, mongo, redis, postgress, lua
6:20
@backendsecret Rails + Postgres + Redis + Memcached + Sidekiq
6:20

В первый раз слышу про sidekiq, @bytecheg! В бою он под какие задачи юзается?

6:21
@backendsecret ты может и код первый день пишешь? @bytecheg
6:25

Бгг, @graff_z @bytecheg :)

6:25
@backendsecret сначала прочитал "В БД" :) Как обычно: любые, требующие много времени и/или надежности. Например, публикация в соцсети.
6:33

Очень интересно, @bytecheg! Я так понимаю она на тоже на рубях написана и имеет развесистый интерфейс функций?

6:34
@backendsecret Да, ruby. Функции: разные очереди с разными приоритетами, retry провалившихся задач,web-интерфейс для управления и статистики
6:38

Кроновский эмулятор, @bytecheg, должен быть по идее. Не пробовали все периодические задачи на sidekiq пересадить?

6:39
@backendsecret 1/2 это не совсем крон. Крон только по времени отрабатывает. А в sidekiq можно кидать задачи прямо из приложения, что удобно.
6:41

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

6:42
@backendsecret для ruby есть clockwork - легковесный ruby-процесс,аналог cron'а.Он и секунды поддерживает, и приложение загружать не надо.
6:46

Мегасупер, @bytecheg!

6:47
@backendsecret Mongo, NodeJS, SailsJS, Redis на сервере
6:54
@backendsecret раз уж пошла такая пьянка: Расскажите, сталкивались ли вы с хранением в БД данных весом в 5Тб и больше? Какая БД была?
8:38

Да, есть такая попаболь, @lopinopulos. У нас десятки миллионов мелких файлов на огромные тб. Живём на go + aerospike.

8:40

Решение по стореджу, @lopinopulos, готовил facebook.com/profile.php?id…. Стукнитесь к нему, - он расскажет много чего интересного!

9:12
@backendsecret Perl, Catalyst, Mojolicious, Postgres, MongoDB, Redis, memcached. Ansible, Docker.
9:20
@Bugagazavr @backendsecret супер, спасибо! А кто там следит за временем? Они встраиваются в процесс самого сайдкика или что?
9:49
@bytecheg @backendsecret да, оно встраивается в сам процесс sidekiq
9:49

У кого какие сисадмины? Добрые и помогающие? Заносчивые и вечно спрашивающие “Тикет есть?” Параноидальные? Участвуют ли в вашей разработке?

12:13
@backendsecret тикет есть? :)
12:52

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

Про CRUD. Данные можно сохранять сразу, но это тормоза. Можно их хранить в памяти и сбрасывать на сторедж при выкате очередной итерации.

11:20

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

11:21

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

11:22

Не надо кивать здесь в сторону мемкеша. Не поможет. Вообще.

11:24

В результате такого подхода мы получаем систему с мгновенной отзывчивостью. Согласитесь, вкусно! Чем мы за это расплачиваемся?

11:34

Есть сложности с шардингом данных. Их нельзя порезать между серверами и надо все запихивать в одну ноду. Юзеров резать по серверам целиком.

11:36

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

11:37

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

11:39

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

11:40

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

11:42

Структура процессов слоистая, - есть отдельно менеджеры данных, есть отдельно пользователи. Таким образом деплой, - сложный (комплексный).

11:44

Чтобы изменить состояние сущностей без API "самолета", его придется сажать. А это простой системы с последствиями для юзверей. Недёшево.

11:47

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

11:48

Архитектура самолета предполагает комфорт. Пассажиры (бизнес-логика) находятся в удобных креслах простых операций со структурами данных.

11:51
@backendsecret сохранять в базу асинхронно где это нужно?
12:23

Да, разумеется, @rusgautama!

12:23

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

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

16:04

other