# Понедельник 63 твита
Всем привет, на этой неделе с вами Стас Слесарев @shutyourprogram
11:30В данный момент работаю Fullstack JS Developer
В стеке хипстерские Node.js, Koa2, React, Redux = )
Целевая аудитория - SMM, маркетологи и обычный широкий пользователь, который любит создать мемасик
11:34Ссылку на нас пока что не кину, потому что мы в процессе релиза еще)
11:34Но мы, естественно, умнее и красивее канвы, поэтому надеюсь, что к концу недели ссылочку всё-таки предоставлю)
11:35Итак, господа, расскажите-ка, кто в чём гаразд)
Ваш основной язык?
Тем временем расскажу про свой непростой путь в коммерческое программирование
Конечно же, всё началось еще в школе с Паскаля)
@backendsecret и учитывая, что математика давалась мне всегда относительно легко, вопрос выбора специальности в универе стоял недолго
12:15@backendsecret где-то в конце 2-го курса меня и еще двух одногруппников застала врасплох золотая лихорадка на iOS и мы решили попробовать
12:16@backendsecret написать, в общем-то, нехитрую игрулину. Можно сказать, что это был первый опыт предпринимательства)
12:16@backendsecret потому что приходилось и продумывать концепт, и рисовать дизайн(!!!), и кодить - это было достаточно весело)
12:18@backendsecret потом мы связались с издателями, окончательно испортили первоначальную задумку, игруха не взлетела от слова совсем
12:18@backendsecret следом, на последних курсах, были какие-то шатания в сторону SEO, простых сайтов на вордпресс и даже CPA-маркетинга
12:20@backendsecret в сфере CPA тоже довелось настряпать парочку проектов, какие-то для внутреннего использования нашими миньонами,
12:21@backendsecret а какие-то даже хотели отдать на вынос. Но разработчик из меня тогда был никакой, более опытных разрабов находить
12:22@backendsecret не получалось, и к тому же, сфера CPA надоела окончательно и бесповоротно. Было решено сосредоточиться на том, вокруг чего
12:24@backendsecret был наибольший хайп на тот момент - Ангуляр и Node.js. Где-то три месяца я штудировал основы JS, Angular, Node и наконец
12:25@backendsecret не без огромного везения попал в замечательный стартап @cluise_stylist (разработка на данный момент приостановлена, но
12:27@backendsecret аппка рабочая и доступна в Аппстор и Гугл плэй)
12:29@backendsecret по просьбам трудящихся)
12:47Как вы относитесь к поговорке "В программировании есть всего две сложных вещи: инвалидация кэша и название сущностей?"
13:14@backendsecret вот в случае с @strizhechenko как раз вторая проблема стоит остро 😅
13:15Итак, план на неделю примерно следующий
13:20@backendsecret тем, на самом деле, достаточно, просто не все получается сгруппировать красиво, поэтому более подробно уже походу дела
13:54@backendsecret @notxcain @hisohito специально для вас 😇
14:38Мне кажется, у нас слишком мало опросов, поэтому вот еще один(просто люблю их 😍)
Сейчас работаю в
14:56Возможно на прошлой неделе здесь уже обсуждалась эта новость (newscientist.com/article/mg2333…), но меня она настолько
15:00@backendsecret зацепила/встревожила/замотивировала, что грех не перестраховаться, вдруг кто пропустил)
Исходя из этой новости, верно ли, что
@backendsecret в ближайшем будущем Machine Learning станет New Programing/Development/Engineering?
15:01Итак, начнем-с - для чего Node.js хорош?
Если мы используем #nodejs в scheduler'a задач - идем верной дорогой
@backendsecret уточним, что в данном случае задача - это некие вычисления/манипуляции/расчеты/whatever, что выполняются в другом процессе
18:34@backendsecret а если еще проще, то любая input/output операция.
важно заметить, что все i/o-задачи должны быть обязательно асинхронными.
@backendsecret то есть если #nodejs получает запрос, вытаскивает из базы данные, отправляет их на другой микросервис, потом еще раз
18:36@backendsecret апдейтит базу, пишет что-то на диск(ну мало ли, иногда нужно 😌), и отдает ответ - всьо чотинько 👌
18:38как можно юзать #nodejs неправильно?
вспомнив в очередной раз главный постулат "Node.js однопоточен", можно прийти к выводу, что запускать
@backendsecret вычисления, которые будут загружать CPU и занимать времени больше, чем 50-100мс - то мы свернули на скользкую дорожку
18:43@backendsecret возможно, для вас не секрет, чем это обернется, но давайте рассмотрим простенький пример в случае REST API
18:44@backendsecret два endpoint'a:
18:46@backendsecret предположим, REST API не отмасштабировано и у нас крутится один #nodejs инстанс на одном ядре.
18:49@backendsecret Заходят запросы
- /user,
- /process
- /user
Кто угадает, сколько времени займет ответ для 1 и для 3 ?
18:51итак, перейдем к callback hell, а точнее, разберемся, как от него уйти
иллюстрация для непосвященных:
image.slidesharecdn.com/promisesandcha…
@backendsecret а уйти от него можно четырьмя способами:
20:44@backendsecret либа async была хорошим решением еще на самой заре распространения #NodeJS, сейчас её использование ограничивается только
20:45@backendsecret только древним legacy кодом (очень-очень-очень надеюсь, что на ней никто не стартует новые проекты 😬)
20:46@backendsecret промисы - отличный вариант, если нет желания заморачиваться, кроме того даже при использовании generators или async/await мы
20:48@backendsecret чаще всего yield/await'им именно промисы в итоге. Соотвественно, переезд в будущем на async/await не составит труда
20:49@backendsecret generators - уже работают из коробки начиная с Node.js v4, код становится похож на нормальный синхронный как в других языках
20:52@backendsecret минусы generators - подружить их со стримами достаточно сложно. кроме того, они изначально предназначены для других задач
20:53@backendsecret вот мы и добрались до самого вкусного - async/await 😋
20:58@backendsecret тот самый момент, когда серверный JS перестал быть страшным 😍
i.gyazo.com/f4034eb06b255d…
@backendsecret самый большой минус этого подхода - на данный момент, придется подключать к проекту #babeljs и транспайлить код, но
21:00@backendsecret уже где-то в мае появится #NodeJS 8, где async/await будет из коробки
опять же напомню, что await кушает не только async func
@backendsecret но и promises, так что, например, все методы нативного #Mongodb драйвера можно и нужно await'ить
ну сочно же, согласитесь 😛
21:03Подходит время прощаться!
Сорри, что последние два дня был не слишком активен - улетел на выходные в Минск, было немного времени на тви
@backendsecret спасибо большое за ваше внимание, поддержку, критику, советы и колкости - это был приятный и интересный опыт 😄
6:49@backendsecret искренне надеюсь, что вам было тоже интересно и неделя под моим руководством не прошла мимо вас 😁
6:50@backendsecret Асталависта, бэйби)!
И до новых замечательных встреч 🐥
# Вторник 45 твитов
Вообще, сейчас конечно золотой век для сильных инженеров - нас хотят везде и всюду) а мы воротим носом, перебираем,… twitter.com/i/web/status/8…
10:17@backendsecret что-то по душе/техстеку/деньгам
Вполне возможно, что в будущем в IT будут трансферы как в футболе)
итак, продолжим про фишки #NodeJS
пожалуй, единственная вещь, которую сложно испортить - это Streams
@backendsecret но очень просто испортить перформанс своего приложения, отказываясь от их использования там, где возможно)
12:17@backendsecret простой пример, у вас под ногами лежит архивчик размером 100МБ
Есть два способа его прочесть - readFile и createReadStream
@backendsecret в случае большого спроса на этот файл и чтения при помощи readFile - потребление RAM у nodejs инстанса вырастет до небес
12:26@backendsecret опытным путем было проверено, что при ~10 запросах в случае readFile - RAM потребляется около 800МБ, а в случае readStream -
12:27@backendsecret RAM не выходит даже за пределы 100МБ, используется всего лишь ~70-80МБ
конечно, в первом случае рано или поздно
12:29@backendsecret оперативка всё-таки высвободиться, но в случае высокой нагрузки некоторые пользователи получат отказы
12:31Еще один классический кейс - это получение Stream от базы
например, мы хотим на клиенте отобразить ленту из 50 записей, и тут снова есть
12:33@backendsecret два способа (в случае нативного #Mongodb драйвера) - cursor.toArray() и cursor.toStream()
в случае toArray все 50 записей
12:34@backendsecret снова запишутся в RAM и раздуют её, и только потом будут отправлены на клиент
в случае же stream'a
12:36@backendsecret данные будут уходить небольшими порциями, что определенно легче, как для БД, так и для #NodeJS инстанса
12:37У #Java тоже вроде бы есть стримы, да, джависты?)
Используете ли вы их так же, как и мы в #NodeJS ?
Hi, I'm James. I'm one of the original maintainers of Babel, & I can never remember how to setup Babel's runtime lib
twitter.com/sarahmei/statu…
В англоязычном твиттере уже пару дней идет флэшмоб, где мэтры программирования признаются, что они тоже люди, и не… twitter.com/i/web/status/8…
14:17@backendsecret или, например, создали слишком сложную технологию, что сами забывают, как ей пользвоваться)
СЛИШКАМ СЛОЖНА (с)
14:19Hi, my name is Nate. I've been coding JavaScript for years and I still have to Google how to send ajax requests. twitter.com/otfrom/status/…
вот, о наболевшем 😂 twitter.com/nathggns/statu…
15:38Hi, my name is Magnar. I've been doing ops work for years, and I always have to google how to redirect stderr to st… twitter.com/i/web/status/8…
о, это вообще топчик) twitter.com/magnars/status…
15:40@visualwatermark @backendsecret Вот, чтобы был точнее понятен объем данных. И это с сетевыми задержками pic.twitter.com/XgvHeZB3Hu16:23
коротко для тех, кто не трогал #awsLambda вообще
смысл - мы кладем какую-то функцию, со всеми зависимостями(npm-пакеты, бинарники, файлы)
20:27@backendsecret и получаем возможность вызывать её по каким-либо событиям/триггерам
при этом доступные нам существенные настройки - это
@backendsecret ограничение #Lambda по RAM (128, 256 etc) и установка таймаута(работает больше секунды - прерываем)
20:31@backendsecret какие же триггеры в нашем распоряжении?
например, можно настроить #CloudWatch, чтобы запускал лямбду через интервал
@backendsecret такой способ использования очень похож на создание cron-задачи, только, как по мне, более удобный - по сути, cron в облаке 🌥️
20:34@backendsecret еще пример триггера - API Gateway
настраиваем полноценное API, и на все запросы отвечаем при помощи Lambda функций
@backendsecret если прикрутить к Lambda еще RDS, то получается тотальный #Serverless
20:39@backendsecret вот неплохая статья для знакомства medium.com/@emckean/creat…
20:39кстати, #NodeJS'ники, все же знают, почему делать конструкции типа pipe().pipe().pipe()... плохо?
21:02#aws #s3 is down! @cloudfront is down! The world is burning! pic.twitter.com/EhYhGIy2Qq
BREAKING NEWS! ШОК! twitter.com/SzybkiSasza/st…
21:41@backendsecret апдейт - лежит только S3 US-EAST-1, спасибо @dronoff1989 за инфу
22:02@backendsecret еще немного по теме vc.ru/n/amazon-crash
22:14Looks like internet is not as reliable as it was just few months ago... pic.twitter.com/kI8kZu5nAC
22:33отвлечемся от S3 обратно к Lambda
наша тима тот случай, когда глаза очень горели поскорее заюзать Lambda, но руки столкнулись с суровой
22:41@backendsecret реальностью
выражалось это в следующих паре моментов - высокая стоимость при хайлоаде и отсутствие поддержки streams для Node
@backendsecret например, подсчитали, что функция работающая со 128мб RAM и временем ~200ms при хайлоаде в 5000 req/sec обойдется нам дороже,
22:44@backendsecret чем самый дорогой сервак EC2
поэтому результатом рисерча стало понимание, что Lambda просто супер дешева для небольших сайтов
@backendsecret например, нагрузка порядка 10000-20000 посещений в месяц обойдется дешевле, чем micro EC2 инстанс
22:47@backendsecret а вот для хайлоада-противоположная ситуация, получился как бы экспоненциальный рост стоимости по отношению к кол-ву запросов
22:49ладно стоимость, еще пол-беды
но когда вы сделали в Lambda функции наложение watermark'и поверх картинки, и не может отдать stream в ответ,
23:01@backendsecret то это был тот самый момент "Да что ты знаешь о боли!?!?"
23:02@backendsecret кстати, интересно же, какие языки поддерживает #lambda
а список невелик:
@backendsecret зачем-то засунули туда еще Edge NodeJs 4.3 - но стоит он дороже, да и стримы всё равно не поддерживает 🙄
23:05кстати, интересный проект - janhuenermann.com/projects/learn…
нейронка водит 🚗🚕🏎️ в браузере, а мы можем усложнить ей жизнь, нарисовав препятствия🚫⛔️📛
The moment the presenter realizes S3 is down. #AWS #S3 #Amazon pic.twitter.com/S8gY1J9lrH
ладно пол интернета положили, но зачем людям спичи-то срывать!?
совести у них нет 😄 twitter.com/ian_surewould/…
23:38# Среда 45 твитов
@backendsecret разные, есть например трансформеры которые сабскайбятса к динамодб и потом перегоняют данные например в эластик и денормализ0:21
@backendsecret есть, которые сабскайбятса к разным СНСам и делают трансформации на файлов на С30:21
@backendsecret есть которые в старые в старые времена по времени меняли провиженинг динамо рида и врайта0:21
@backendsecret так же можно лямбды по сути как крон запускать :)
Именно) тоже считаю это одним из главных удобств
Но что еще приятнее - запуск по интервалу менеджит CloudWatch, а… twitter.com/i/web/status/8…
0:27@backendsecret всякого разного, не только Лямбду
Например, может запускать ваши скрипты на ваших же EC2 инстансах)
0:28@backendsecret мое мнение, запускать скалу в ламбде прикольно, но для трансформирование данных с одного представлкение в другое -лучше (1/2)0:36
@backendsecret лучше брать динамический язык :) меньше кода поддерживать (2/2)0:36
Окей, всем спасибо, наш наполненный экшеном вечер подошел к концу)
Всем спокойной ночи 🌙💤
Завтра с утра рубанём про #NodeJs фреймворки ☀️
0:42Итак, какой framework юзаете?
12:18@backendsecret про лубпек интересны фидбеки. Пока не видел ни одного живого человека, у кого он в продакшене на большом проекте
и мне, и мне 😃 twitter.com/raxpost/status…
13:08так вот, как я уже упоминал, мы используем Koa 2, и на момент старта проекта async/await был недоступен даже под флагом --harmony
14:05@backendsecret но учитывая, что нам всё равно нужен был #Babel для фронтенда, мы решили транспайлить и бэкенд тоже, а при внедрении
14:18@backendsecret в будущем async/await в #NodeJS - отключим транспайлинг для бэкенда (в общем-то скоро это случится, ура-ура 🎇)
14:19как по мне, все фрэймворки для #NodeJs представляют из себя +/- одно и то же, но как всегда есть нюансы
14:20@backendsecret откровенно похожие минималистичные фрэймворки - это Express, Restify, Hapi, Koa
Как минимум, у Express и Koa один создатель)
@backendsecret если мы хотим что-от типа #RoR или #Laravel, то можем выбирать между #Sails и #Meteor
15:07@backendsecret как помне, #Sails идеальное решение для начинающих, или когда нужно быстро накидать Rest API - класть и доставать из базы
15:07@backendsecret но при использовании больших фрэймворков, мы становимся менее гибкими
например, Meteor версии 1.4.x использует #NodeJs 4.4.7
@backendsecret получается, что с выходом async/await в core ноды ничего не поменяется для использующих #Meteor - async/await им по-прежнему
15:14@backendsecret будет недоступен
подскажите, если кто знает, #Sails тоже привязан к какой-то #NodeJs версии?
15:15@backendsecret я не так давно на Meteor набрасывал из собственного опыта, возможно, читателям будет интересно toster.ru/q/313761?e=490…
если кратко - #React убил #Meteor ☝️ twitter.com/PetrMyazin/sta…
17:07@backendsecret Я как-то раз посчитал, что примерно с 75 запросов в секунду Lambda становится дороже, чем on-demand инстанс.17:48
Как вы уже могли догадаться - опросы наше всё 😃
Поэтому, какую базу используете у себя на проекте?
18:16@backendsecret forums.meteor.com/t/start-using-… в 1.4 (мб даже 1.3, не тестил) уже встроенный есть async/await. полифилл, конечно
неплохая попытка, #meteor почти отыграл одно очко, но потом я увидел эти обертки
Meteor.call('myFuncti… twitter.com/i/web/status/8…
18:38@backendsecret await Meteor.callPromise('myFunction', <arg1>, <arg2>);
no, #Meteor, are you serious?
хотя, как для января 2016 - попытка ок
@backendsecret хотя всё равно нет - тогда уже можно было использовать generators с 4 Нодой, поэтому такой код писать - увольте 👎
18:41как и ожидалось, доминирует SQL и убойная смесь "всего понемногу" = )
расскажу, как мы дважды выбрали #NoSQL #Mongodb и
18:44@backendsecret в одном из случаев получилось очень больно, а второй раз - в самый раз)
18:44@backendsecret мне кажется, это антипаттерн в метеоре. метеоровские методы можно оставить для апи, а сами сервисы выносить вне методов и ..18:49
@backendsecret возвращать промисы. тогда не придется ничего врапить через wrapAsync. это мое личное мнение18:49
@backendsecret Говорят изначально Loopback был выбран для быстрого старта, из коробки ORM и генерация REST API endpoints по модели.
Летом тоже щупал #Loopback, но не пошло от слова совсем
Собственно, всё кроме коа2, не зашло)
Но если из коробки O… twitter.com/i/web/status/8…
Итак, где же мы прогадали с Mongo - представим, что у нас есть сложная сущность, которая содержит в себе много простых
19:48@backendsecret пример - экипировка в целом, и отдельные её элементы
У роллера и байкера могут быть шлем, защита одни и те же, но налокотники
@backendsecret будут отличаться.
В принципе, это не было бы проблемой (коллекция equipments, у каждого дока поле elements), если бы каждый
@backendsecret из element'ов не мог быть обновлен сам по себе
А ведь это логично - можно редактировать производителя, цвет того же шлема
19:52@backendsecret и тут начинается песня - каждый док в equipments уже содержит только массив айдишек в поле elements, и в случае получения
19:54@backendsecret списка экипировок - нужно еще параллельно доставать эти элементы из соседней коллекции
19:56@backendsecret и ладно, если бы такая сложная сущность была одна на проект, но у нас их было несколько и выглядело это так себе
19:58@backendsecret на текущем проекте такая сложная сущность одна - и элементы в ней не обновляются
20:13@backendsecret ну и плюс async/await сделал код в разы читабельнее и понятнее)
20:14Как раз в тему про базы сегодня попал на митап от нашей киевской продуктовой компании @Grammarly
20:43@backendsecret @Grammarly рассказывают, почему выбрали MariaDB + Galera Cluster, вместо MySQL, Postgre и Cassandra
20:44@backendsecret если коротко, изначально у них был "rule them all" MySQL с репликацией, и они хотели решить две проблемы:
20:50# Четверг 48 твитов
Что еще есть хорошего в #Mongodb ?
Например, aggregation framework, который представляет из себя pipeline, в котором мы сами выбираем в
@backendsecret каком порядке мы будем фильтровать, группировать, трансформировать и сортировать данные
11:42@backendsecret важно, что в одном из обновлений прилетел новый оператор $lookup, который позволяет сделать left outer join ☝🏻️
11:54@backendsecret минусы - по нашим тестам, aggregation работает несколько медленнее, чем хотелось бы
11:55И последняя интересность касательно #MongoDB, да и баз в целом - индексы и RAM
До недавнего времени был уверен, что создавать индексы
@backendsecret относительно дешево.
Но допустим у нас есть коллекция 1кк записей, и у нее обязательно будет дефолтный индекс по _id, который
@backendsecret мы никак не можем удалить. Оказывается, что для 1кк записей дефолтный индекс будет весить ~20mb
А как мы все прекрасно знаем,
@backendsecret база выгружает индексы в RAM для ускорения поиска
Тут возникает архитектурный нюанс - если создать много разнообразных
@backendsecret индексов, и не просчитать, сколько для них понадобиться оперативки, то база начнет писать эти индексы в SWAP - следовательно,
12:51@backendsecret для коллекций со свопнутыми индексами производительность упадёт
ну и вообще, это если у нас просто 20 коллекций по 1кк, то
@backendsecret со старта база захочет ~400mb RAM только под индексы, жирненько 🥓🍗🍖
12:54Кстати, если у кого-то есть опыт с шардировнием #MongoDb - поделитесь, пожалуйста🙂
что и зачем шардировали, такое ли поведение, как ожидали?
Если бы в будущем вам сказали, что останется только два типа разработчиков, какой путь вы бы выбрали ❔❔❔
13:18@backendsecret во-первых, индекс на _id все же можно не создавать (см. docs.mongodb.com/manual/referen…). Но в целом, Монге нужно много памяти.
Только что очень обрадовался, но не надолго - autoIndexId опция уже deprecated, и в 3.4 Монге ее уберут вообще twitter.com/qwestua/status…
18:53Многие набрасывали всякое в течение недолгих трёх дней, а теперь соя очередь!
Вжух! И везде #microservices
(выдохните, на самом деле нет)
21:26@backendsecret не могу сказать, что являюсь ярым противником оных, но и в сторонники точно не возьмут, а то и палкой выгонят
21:27@backendsecret в целом, отношусь к ним с большой осторожностью и считаю, что юзать их надо в меру
21:28@backendsecret вообще, есть три подхода:
- приложение монолит
- микросервисы
- гексагональная архитетура
Последнее - это как раз серединка
21:30@backendsecret на половинку, что-то между монолитом и микрос, на мой взгляд - самый здравый подход, где есть основное приложение и несколько
21:31@backendsecret небольших сервисов под конкретные задачи (можно даже на других языках, ого!)
21:32@backendsecret да и вообще, интересный термин микросервисы - а кто определяет, достаточно ли этот сервис микро?)
21:35@backendsecret в этом году на #LvivItArena это была самая хайповая тема для докладов - целых четыре спикера за три дня вещали)
21:36@backendsecret самое интересное, что получилось очень гармонично - один ярый сторонник, один ярый противник и двое непредвзятых, объективных
21:38@backendsecret пример хорошего применения гексагональной архитектуры - основная апиха, и микросервис - генерация html в pdf
21:49@backendsecret основная идея в том, чтобы основное api и вспомогательные сервисы были на разных машинах, ибо если генератор пдф выжрет всю
21:52@backendsecret cpu - это никак не повлияет на работу основного api
А еще, таким образом мы можем избавить других разработчиков от
@backendsecret необходимости ставить все зависимости, которые нужны сугубо для этой задачи(а это могут быть сложнокомпилирумые бинарники)
21:56И раз уж вспомнил про #LvivItArena, то вот один из самых интересных докладов - как всё устроено в @Spotify
22:02А вот доклад по нашей теме - как @Twitter переписали свою #RoR махину на микросервисы #jvm
youtu.be/tlPkM0lxMKc
@backendsecret а значит и вся система будет проще для понимания и изменения.
Это классический аргумент сторонников)
То, что микросервис отвечает за одну вещь - не делает систему проще и понятн… twitter.com/i/web/status/8…
@backendsecret классический контр-аргумент - если вы не можете написать простой и понятный монолит, то микросервисы вам не помогут)
22:14@backendsecret а вот дебажить систему из микросервисов станет сложнее, а вот мониторить её тоже станет сложнее, чем монолит
22:15@backendsecret то есть нужно понимать, что одну и ту же задачу в большинстве случаев решить монолитом будет дешевле
22:17@backendsecret и доклад от твиттера косвенно подтверждает эти мысли - у них штат 1к разрабов, у которых ушло 4 года на то, чтобы полностью
22:19@backendsecret выпилить монолит и заменить его микросервисами
Тут внезапно мы пришли к отличному постулату - monolith first.
22:19@backendsecret А если еще и команд более 100, то монолит становится тесен.
Вот тут не поспоришь) twitter.com/meln1k/status/…
22:25@backendsecret микросервисы для маленьких команд/компаний - это оверинжиниринг.Поддержка и мониторинг требует много инфраструктуры и времени
Истина! twitter.com/pvoznenko/stat…
22:34Привет ведущему @jsunderhood этой недели 👋🏻 pic.twitter.com/tZmd0Xc1bO
22:38@backendsecret микросевисы в свою очередь даёт хорошую автономию командам, архитектурные решения и ответственность22:50
@backendsecret что бы автономия не превратилась в хаос на макро архитектурном уровне команды должны договорится о правилах либо принципах22:50
@backendsecret например "Share Nothig", "You build it - you run it", "infra. as code", etc. Наши принципы как пример github.com/AutoScout24/sc…
О, это однозначно уходит в избранное 🌟 twitter.com/pvoznenko/stat…
22:54@backendsecret ну и вообще если интересно, как говорится we are hiring! ;) github.com/AutoScout24/hi…
Заслуженный ретвит 👍🏻 twitter.com/pvoznenko/stat…
23:12@backendsecret У нас классный стэк, лояльный менеджмент, полное отсутствие бюрократии, нет легаси кода и интересные задачи)
23:29@backendsecret добавляй еще и наши :) github.com/zalando-incuba…
Отличные гайдлайнес, приятно читать, есть что почерпнуть 👌🏻
Вопрос по пункту "Move legacy code to AWS whenever poss… twitter.com/i/web/status/8…
@backendsecret @meln1k в плане, понятна задача, но интересен её контекст)
23:43# Пятница 25 твитов
#AWS отчитались, что вообще у них происходило - прямо-таки закон Мёрфи в действии
А на этом сегодня всё 🌙💤
1:24Давайте подобьем итоги дня вчерашнего
Микросервисы - отличный инструмент, чтобы увеличить эффективность работы в большой компании, где
15:06@backendsecret множеству команд будет тесно на одном монолите.
Для небольших команд и стартапов - микросервисы === over engineering
сегодня хотел бы поговорить про всевозможные источники информации - конференции и записи с оных, local communities, каналы в телеграме и тд
15:10@backendsecret так и исторически сложилось, что был на самой первой #LvivItArena еще в 2014 году, и теперь езжу туда ежегодно, традиция)
15:12@backendsecret вообще, It Arena 2014 была первой моей крупной конференцией, поэтому, естественно, она впечатлила и понравилась 🎇🎆
15:13@backendsecret в том году в тренде была #BigData, а из спикеров больше всего запомнился @asebrant (здравствуйте и спасибо😌)
15:20@backendsecret особенно понравилась часть доклада под названием "оцифрованная романтика" - youtu.be/zsUKYfXjpvo?t=…
обязательно посмотрите,
@backendsecret если хотите получать больше матчей в #Tinder 😅
15:21@backendsecret А я ни одного #AgileDays в Москве не пропустил. Тоже традиция у меня такая...
это же прекрасно!✌️ twitter.com/Dronmdf/status…
15:22а вот в 2015 году ИТ Арена уже не впечатляла, и даже наоборот, показалась тухлой, настало время проанализировать ошибки в подготовке к
15:24@backendsecret крупным конференциям, ведь одно дело, если приходишь на митап с одним потоком, где нужно встать только один раз на кофебрейк,
15:25@backendsecret и совсем другое - быть на конфе с 4-5 параллельными потоками, и еще успевать переходить из зала в зал по стадиону, когда
15:26@backendsecret к тому же между докладами вообще нет перерывов, когда в твоем зале в 11:00 заканчивается доклад, то в другой части стадиона
15:28@backendsecret в 11:00 он уже начался)
поэтому, приготовления сводятся к следующему:
@backendsecret по желанию, можно еще добавить не приоритетных спикеров, на которых можно ходить, если успеваешь)
15:33Собственно, что это я всё про Львов да про Львов..
В Киев тоже интересных событий хватает!
Ежегодно проводится несколько @fwdays конференций
Если бы в будущем вам сказали, что останется только два типа разработчиков, какой путь вы бы выбрали ❔❔❔
такое равновесие с одной стороны удивляет, с другой - я бы и сам разрывался между первым и вторым)
Хорошо, что в то… twitter.com/i/web/status/8…
@backendsecret эти дела совмещать)
И раз так много выбрали МЛ, то вот вам канал всё того же @asebrant - telegram.me/techsparks
Куча новостей по технологиям и их применению, развивает кругозор)
17:11Кстати, помимо МЛ и микросервисов в 2016 был еще один сильный тренд - это боты в мессенджерах
17:59@backendsecret в продакшене их, к сожалению, еще не запускал, но на #TadHack хакатоне простенького бота для #telegram написал
18:04@backendsecret благо для #NodeJS уже есть две опенсорс либы, и стартануть с ними бота занимает минут 15 от силы
18:05Поделитесь теперь вы - какие конфы любите, какой докладчик покорил сердце, какой доклад запал в душу?)
19:49# Суббота 5 твитов
@backendsecret youtube.com/watch?v=xPPCzr… 36 :)
Ух, это конечно, и жыыыыр и яяяд одновременно 😅 twitter.com/dcromster/stat…
12:52У нас тоже есть звезда среди докладчиков под именем Алексей Швайка!
youtu.be/6ys-MZsfCXI
Мы даже в честь него придумали шуточку -
@backendsecret какие, нафиг, конфы? мы тут код пишем, некогда
Это кто тут в твиттер залез!? А ну работать быстро! twitter.com/sharkman/statu…
18:18если что-то идет не так, то надо говорить "полный Швайка!"
😄
@backendsecret не в обиду Алексею, если он вдруг читает)
Мы по-доброму 😊
# Воскресенье 6 твитов
Итак, если вы вдруг захотите всё-таки упасть в #NodeJS и удариться в EventLoop, а тем более, если уже - то nodejsdesignpatterns.com
16:28Думаю, многие видели так называемые awesome list'ы по разнообразным темам
А попадался ли вам awesome список вопросов к работодателю?
Поделитесь, как часто вообще меняете работку?
16:35@backendsecret Пока не нашла ту, что нравится, меняла каждый год, а сейчас уже седьмой год работаю. Так что затрудняюсь с ответом :)19:30
@backendsecret подкинули тут достаточно полный опросник, возможно кому-то пригодится github.com/gravyboat/inte…
22:05@backendsecret Что-нибудь типа такого? :: jvns.ca/blog/2013/12/3…
Спасибо, очень даже в тему! twitter.com/webholt/status…
23:16# Ссылки
other
- http://canva.com/
- http://fed.wiki.org/journal.hapgood.net/cache-invalidation-and-naming-things
- https://www.newscientist.com/article/mg23331144-500-ai-learns-to-write-its-own-code-by-stealing-from-other-programs/
- https://image.slidesharecdn.com/promisesandchaininginangularjs-141027044455-conversion-gate02/95/promises-and-chaining-in-angularjs-into-callback-hell-and-back-again-17-638.jpg?cb=1414385382
- https://i.gyazo.com/f4034eb06b255dcdd55d02ba9459d869.png
- http://www.drdobbs.com/jvm/lambdas-and-streams-in-java-8-libraries/240166818
- https://github.com/brianc/node-pg-query-stream
- https://github.com/yagop/node-telegram-bot-api/blob/master/README.md
- https://github.com/gravyboat/interviewee-questions/blob/master/questionnaire.md
- http://stackoverflow.com/questions/29013477/using-streams-in-mysql-with-node
- http://www.hostingadvice.com/blog/nodejs-vs-golang/
- https://www.reddit.com/r/golang/comments/1ye3z6/go_vs_nodejs_for_servers/
- https://medium.com/@emckean/create-a-simple-free-text-driven-twitterbot-with-aws-lambda-node-js-b80e26209f5#.d7er8t1rl
- https://vc.ru/n/amazon-crash
- https://vc.ru/n/amazon-crash-typo
- https://www.trek10.com/blog/lambda-cost/
- http://janhuenermann.com/projects/learning-to-drive
- http://meteor.call/
- http://www.techpaste.com/2016/04/limit-mongodb-memory-usage/
- http://youtu.be/S2x51oidwhE
- http://youtu.be/tlPkM0lxMKc
- https://youtu.be/zsUKYfXjpvo?t=33m34s
- https://youtu.be/6ys-MZsfCXI
- https://jobs.dou.ua/companies/depositphotos/vacancies/37807/
- https://www.youtube.com/watch?v=1tfQIKini4Q
- https://telegram.me/techsparks
- https://www.nodejsdesignpatterns.com/