flex_ferrum

23 апреля 2018, Kyrgyzstan

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

Здравствуйте. Меня зовут Сергей и я ал..., пардон, архитектор. На этой неделе буду вашим ведущим в backendsecret. П… twitter.com/i/web/status/9…

10:22

Последние почти десять лет я тружусь в "Лаборатории Касперского", пять из них занимаюсь архитектурой проектов, связ… twitter.com/i/web/status/9…

10:30

То же относится к вопросам, отвечая на которые может возникнуть риск нарушения NDA. Прошу понять правильно. И, наде… twitter.com/i/web/status/9…

10:30
@skv_nskv Да здесь была дичь с НДА и камерами над рабочим местом.

Про предыдущего ведущего. twitter.com/backendsecret/…

10:37

Ну а темой этой недели будут различные вопросы контрацепции. В смысле, поделюсь своими знаниями и опытом о том, как… twitter.com/i/web/status/9…

10:51

Сначала поговорим о проблеме как таковой. А потом пойдём по нарастающей: какие средства предохранения могут применя… twitter.com/i/web/status/9…

10:59

Если останется время и силы - закончим общефилософскими вопросами и, по традиции, гендерными проблемами. Возможно...

10:59

Сразу оговорюсь: истиной в последней инстанции я не являюсь и, безусловно, в чём-то могу ошибаться. Кроме того, я л… twitter.com/i/web/status/9…

11:05

Но, ближе к теме. Фронтенды и бэкенды бывают разные. Бывают такие: pic.twitter.com/hWde6byTGK

11:51

А бывают такие: pic.twitter.com/G4aq9cUWie

11:51

Но и те, и другие испытывают проблемы с безопасностью. Только если в первом случае результат взлома может быть таки… twitter.com/i/web/status/9…

11:51

То во втором (в пределе) - таким. И в этой шутке только доля шутки. pic.twitter.com/D2YpLzg5yU

11:51

Проблема в том, что разработчики вот этих вот бэкендов (софт и железа) начали разрабатывать их тогда, когда хакеры… twitter.com/i/web/status/9…

12:05

И получилась такая вот картинка по угрозам взлома и найденным (и опубликованным) уязвимостям. Это по состоянию на 2… twitter.com/i/web/status/9…

12:05

Рост найденных уязвимостей в системах управления промышленностью, ровно как и само их наличие, связано с двумя осно… twitter.com/i/web/status/9…

14:05

В этой области несложно найти системы, работающие чуть ли не под DOS. Ещё проще - работающие под Win2000/XP. До сих… twitter.com/i/web/status/9…

14:05

Таким образом, основные усилия направлялись (и направляются) на минимизацию импакта от возможной аварии, но риски,… twitter.com/i/web/status/9…

14:05

Но есть ещё один, третий, важный фактор. Разработка ПО с учётом требований безопасности - более дорогая. И результа… twitter.com/i/web/status/9…

14:54

В конце 2000-ых Microsoft выпустила документ (на самом деле, набор требований и рекомендаций) под названием SDL - S… twitter.com/i/web/status/9…

14:54

Как можно увидеть, безопасность (её требования) влияет на всё - и на сам процесс, и на архитектуру, и на разработку… twitter.com/i/web/status/9…

14:54

Но делать "и так сойдёт" становится всё сложнее. И даже не с точки зрения хакеров и исследователей, которые находят… twitter.com/i/web/status/9…

15:05

... не говоря уже о промышленных системах. Европейский GDPR, российский закон о защите персональных данных, и т. п.… twitter.com/i/web/status/9…

15:05

Кроме этого, существют ещё два аспекта, связанных с безопасностью: надёжность и доступность. Первый определяет то,… twitter.com/i/web/status/9…

15:05

Пример прошлой недели как раз показывает, что такое системы, у которых всё хорошо с проработкой аспекта доступности… twitter.com/i/web/status/9…

15:05

Подводя предварительный итог. Три кита безопасности решения:

19:46

Конфиденциальность - механизмами надёжного разграничения доступа, моделями безопасности, шифрованием как данных, та… twitter.com/i/web/status/9…

19:46

Доступность - схемами и архитектурой развёртывания, надёжностью каналов связи, балансировкой нагрузок, фильтрами, с… twitter.com/i/web/status/9…

19:46

Надёжность - качеством кода, характеристиками железа, операционной системы, архитектурой развёртывания, схемами рез… twitter.com/i/web/status/9…

19:46

Нюанс здесь в том, что обо всём этом нельзя думать "потом". Не существует универсальных рецептов сделать произвольн… twitter.com/i/web/status/9…

19:57

Возможность сломать/взломать что-либо ограничивается только суммой денег которую готов на это потратить злоумышленн… twitter.com/i/web/status/9…

19:57

В свою очередь подходы исключительно в стиле security through obscurity или охраны периметра эту сумму значительно… twitter.com/i/web/status/9…

20:13

Всем привет. На этой неделе я с вами из солнечной Калифорнии. Мы решили мое дежурство совместить с моей поездкой на… twitter.com/i/web/status/9…

19:46

Я сам не очень подхожу по формату, как мне кажется, потому что вообще не программист. Но работаю с программистами у… twitter.com/i/web/status/9…

19:49

Сейчас я нахожусь на евенте Global Google Developer Group Leaders Summit. На сцене CEO Meetup.com Scot… twitter.com/i/web/status/9…

19:55

Тут можно почитать про то, что такое GDG: developers.google.com/programs/commu… Если кратко – вы проводите митапы, конференции, а… twitter.com/i/web/status/9…

19:58

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

Ну вот. Пришёл новый день, и настало время продолжить разговор о мерах предохранения при разработке ПО. Сегодня реч… twitter.com/i/web/status/9…

12:37

С++ - не то, чтобы популярный язык для разработки web-бэкендов, но серверного ПО на нём пишут всё ещё в достатке. И… twitter.com/i/web/status/9…

12:43

В С++ (да, думаю, и не только в нём) безопасность кода начинается с использования корректных языковых средств и выр… twitter.com/i/web/status/9…

13:17

Google C++ coding standard:
google.github.io/styleguide/cpp…
NASA JPL C coding guildelines:
lars-lab.jpl.nasa.gov/JPL_Coding_Sta…
C++ Core… twitter.com/i/web/status/9…

13:17

Во всех этих документах и рекомендациях есть мотивационная часть по использованию или неиспользованию тех или иных… twitter.com/i/web/status/9…

13:18

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

13:24

Собираться лучше со всеми включёнными варнингами (-W4), и с опцией "warning is error". В этом случае код получится… twitter.com/i/web/status/9…

13:24

Что не выловят статические анализаторы - отловят динамические. Для C++ требуется минимум три: memory sanitizer, thr… twitter.com/i/web/status/9…

13:34

В рамках имеющихся unit- и функциональных тестов первый отловит кейсы некорректной работы с памятью, второй - прове… twitter.com/i/web/status/9…

13:34

То, что предлагает gcc и clang в этом плане - вполне подходит. По крайней мере, в случае разработки под Linux - совершенно точно.

13:37

Дальше - опции сборки. А именно:
-fPIC - позволяет грузить динамические библиотеки по разным адресам.
-fPIE - то же… twitter.com/i/web/status/9…

13:49

SafeStack (от clang) - разделяет программный стек на две части. Одну (безопасную) для адресов возврата и аргументов… twitter.com/i/web/status/9…

13:49

stack-protector - генерирует код с дополнительными проверками, что никто не проехался по стеку.
productive-cpp.com/hardening-cpp-…

13:49

Есть ещё несколько опций, про которые можно прочитать, например, здесь:
security.stackexchange.com/questions/2444…

13:49

Редко какой проект обходится без third-party кода. Не, бывают ситуации, когда всё пишется самостоятельно с нуля (пр… twitter.com/i/web/status/9…

19:34

С обсуждаемой точки зрения в этом есть как плюсы, так и минусы. Если используемый third-party-компонент - серьёзный… twitter.com/i/web/status/9…

19:34

С другой стороны, та же история с heartbleed в openssl показывает, что и на старуху бывает проруха. В любом случае,… twitter.com/i/web/status/9…

19:34

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

19:45

Таким образом ответ на вопрос, из каких third-party компонентов в данный момент времени состоит ваш проект, может о… twitter.com/i/web/status/9…

19:45

В частности, такую ситуацию можно наблюдать на проектах на Node.JS. В какой-то момент все внешние зависимости может… twitter.com/i/web/status/9…

19:45

Но все эти приседания с харденингом сборки, чисткой кода и всем таким прочим будут неполны без качественных тестов.… twitter.com/i/web/status/9…

23:16

Понятно, что догнать покрытие по функциям и ветвлениям до 100% чаще всего невыполнимая задача. Но чем выше будет эт… twitter.com/i/web/status/9…

23:16

Необходимы негативные тесты. Для компонентов, получающих данные извне (из сети, с диска, с консоли и т. п.) необход… twitter.com/i/web/status/9…

23:16

Стресс-тестирование выявит проблемы с надёжностью, если они есть. Отдельно идут тесты на функционал, работающий с п… twitter.com/i/web/status/9…

23:16

Мир тесен. Встретил читателя этого аккаунта из Риги. pic.twitter.com/jtupRo5Sbq

2:26
@backendsecret Зачем тогдв на то поехал ?

Сорри, зачем тогда куда поехал? На I/O? Причин много: путешествие, знакомства, новые технологии. Ну и то, что я не… twitter.com/i/web/status/9…

2:43
@backendsecret А во сколько обойдется поездка? Просто интересно сколько такое приключение может стоить!?

Билет на I/O обойдется в $1350 (студентам сильно дешевле). Но его ещё надо выиграть, там лотерея.
Перелет из Бишкек… twitter.com/i/web/status/9…

3:26

Intel каждый год проводит satellite event перед I/O. Живая музыка, крафтовое пиво, street food и демо-стенды: много… twitter.com/i/web/status/9…

9:30

А ещё у нас с моим другом/наставником Олегом есть свой канал на YouTube: youtube.com/channel/UCvxfG… Там мы говорим на… twitter.com/i/web/status/9…

9:50
@backendsecret Что удивительно — этот читатель в прошлом году тоже рассказывал про то, что происходило на Google I/O 👀

Это прям вообще весьма занятное стечение обстоятельств. Кстати, не тэгнул на фото из-за бага в Твиттере - вводил тв… twitter.com/i/web/status/9…

9:55

Здесь, кстати, тоже весьма интересное поведение видеосервиса. Мы назвали канал так, что его название распознаётся Ю… twitter.com/i/web/status/9…

9:58

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

@backendsecret Тоже читаю всё это, и очень трудно не согласиться с разумными вещами как разработчику, но собственно… twitter.com/i/web/status/9…

Всё так. Всё правда. twitter.com/DonnaInsolita/…

12:02
@backendsecret Для этого уже давно есть @yarnpkg, пакетный менеджер, фиксирует точные версии всех зависимостей. Что с ним не так?
14:06
@sekogan @backendsecret @yarnpkg npm давно имел shrinkwrap, а npm v5+ и pnpm также как и ярн имеют локфайл по умолчанию
14:06

Первая половина дня выдалась нетипично напряжённой, поэтому прошу прощения за столь позднее появление.

14:31
@musuk @backendsecret Ну ладно, тесты/сканнеры, а править то все равно надо, а править работу без тестов - на одну… twitter.com/i/web/status/9…

Этот ретвит - хорошая подводка к теме ближайших двух дней. В комментариях завязалась небольшая дискуссия о крайней… twitter.com/i/web/status/9…

14:42

Причина в том, что уровень защиты (в данном случае сервиса/службы/приложения) зависит не только от наличия или отсу… twitter.com/i/web/status/9…

14:42

... задним числом может оказаться сложно. Ибо эти требования аффектят не только (и не столько) реализацию, но и арх… twitter.com/i/web/status/9…

14:42

В решении, где до сих пор был только один пользователь с правами суперюзер, реализация такого требования приведёт к… twitter.com/i/web/status/9…

14:42

Когда в требованиях появляется слово "безопасность" становиться нельзя просто так взять, и вызвать метод сервиса. Н… twitter.com/i/web/status/9…

15:01

Становится сложно взять и свалить всё в одну кучу, ибо появляются модели и домены безопасности, права доступа к объ… twitter.com/i/web/status/9…

15:01
RSA leaked all the attendees personal details via unsecured public facing API's using hard coded credentials in a m… twitter.com/i/web/status/9…

В противном случае появляются такие вот, эмм... неожиданности. Таки да - прослойка между клавиатурой и креслом - са… twitter.com/i/web/status/9…

15:01

Таким образом, всё начинается с требований и упирается в архитектуру. Архитектуру решения как такового, архитектуру… twitter.com/i/web/status/9…

15:33

Если же говорить про архитектуру вообще (и подходы к её построению) - в качестве затравки предложу посмотреть вот э… twitter.com/i/web/status/9…

15:33

Так вот, продолжаем за архитектуру вообще и ООП в частности. Я не исключаю у себя наличие стокгольсмского синдрома… twitter.com/i/web/status/9…

16:45

ООП вообще (и SOLID - в частности) - иструменты, не сильно лучше и не сильно хуже других. При грамотном использован… twitter.com/i/web/status/9…

16:45

Другое дело, что (по моей сугубо личной оценке) ООП - это типа С++ в мире архитектурных парадигм. При кажущейся про… twitter.com/i/web/status/9…

16:50

Так что наверное таки да - стокгольмский синдром. 😆

16:50
@russianlagman @ZoltanKochan @backendsecret @sekogan @yarnpkg @pnpmjs Не совсем так. С 5.1.0 до 5.4.2 нужно было ру… twitter.com/i/web/status/9…
17:51
@backendsecret выскажетесь по поводу Domain Model против Transaction Script, что вы используете

Как говориться, на ловца и зверь бежит. Длинное (на полтора часа) высказывание на эту тему. Определённо стоит дослу… twitter.com/i/web/status/9…

18:04

Кроме того, мой опыт показывает, что удержаться в рамках рафинированных подходов и парадигм (в реальной жизни, в ре… twitter.com/i/web/status/9…

18:53

На то он и накопленный опыт (и знание возможных альтернатив), чтобы понимать, что в данном конкретом случае имеет с… twitter.com/i/web/status/9…

18:53
На то он и накопленный опыт (и знание возможных альтернатив), чтобы понимать, что в данном конкретом случае имеет с… twitter.com/i/web/status/9…

Вот, скажем, в качестве примера. В декабре Егор предлагал здесь (бэкенд сикрет) отказаться от геттеров и сеттеров в… twitter.com/i/web/status/9…

19:22

В теории - интересная идея. На практике - может быть по-разному. В одних случаях - решит проблемы и сделает код про… twitter.com/i/web/status/9…

19:22

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

Мне нужно было запостить эту ссылку вчера. Но пусть будет сейчас:
youtube.com/watch?v=85fXs6…

Всем доброго дня. Сегодн… twitter.com/i/web/status/9…

12:16

Здесь - отдельно слайды с этого доклада.
slideshare.net/petegoodliffe/…

12:17

Да. Так вот. Об архитектуре с уклоном в безопасность и SOLID. Одно с другим связано больше, чем может показаться с… twitter.com/i/web/status/9…

14:39

S (Single Responsibility) - каждый класс (или компонент) должен иметь только одну ответственность, и эта ответствен… twitter.com/i/web/status/9…

14:39

O (Open-Close principle) - каждый класс (или компонент) должен быть открыт для расширения, и закрыт для модификации.

14:39

L (The Liskov substitution principle) - при замене в коде экземпляра класса (компонента) на экземпляр любого из его… twitter.com/i/web/status/9…

14:39

I (Interface Segregation Principle) - одна задача - один интерфейс. Клиентский код не должен зависеть от того, что он не использует.

14:39

D (Dependency Injection) - классы и компоненты зависят от абстракций (интерфейсов), а не от их конкретных реализаций.

14:39
@backendsecret Это общедоступная инфа о DIP. Но ни разу не видел как говоря о DIP, раскрывали что такое абстракции,… twitter.com/i/web/status/9…

Так всё просто же. :) (ну, с моей ТЗ). Компонент не работает в вакууме. Ему для работы обычно нужны те или иные сер… twitter.com/i/web/status/9…

15:05

Вариант номер раз: он может добавить зависимости на конкретные реализации читателей и писателей (ну, скажем, FileRe… twitter.com/i/web/status/9…

15:05

Вариант номер два: интерфейс читателя и интерфейс писателя передаются извне. То есть сериализатор зависит только от… twitter.com/i/web/status/9…

15:05

Есть ещё третий вариант (паттерн Service Locator) - когда сериализатор получает интерфейсы из некоего репозитория (… twitter.com/i/web/status/9…

15:05

Очевидно, что второй вариант (плюс ко всему) ещё и более тестируем, т. к. позволяет клиенту (или тестовому коду) со… twitter.com/i/web/status/9…

15:05
@backendsecret А так народ вон уже пишет что интерфейсы не нужны, потому что их надо постоянно вместе с имплементац… twitter.com/i/web/status/9…

Эм... Безусловно (то есть это презюмируется и постулируется), что интерфейс отражает и фиксирует контракт взаимодей… twitter.com/i/web/status/9…

15:13

Интерфейсы - это точки связи и взаимодействия. С одной стороны, они создают зависимости, с другой - уменьшают степе… twitter.com/i/web/status/9…

15:13

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

15:13
@backendsecret Потому что мало написать с сервису интерфейс и назвать его абстракцией. Чтобы он был путной абстракц… twitter.com/i/web/status/9…

К слову, это ко вчерашнему вопросу о "А какие критерии "освоения" парадигмы ООП?" (twitter.com/frank_snijder/…)
Когда т… twitter.com/i/web/status/9…

15:29

В принципе (чуть позже) могу показать ход мысли на конкретном примере.

15:29

При этом я не утверждаю, что написать хороший интерфейс (сходу) - легко. Чаще наоборот, это как раз таки сложно по… twitter.com/i/web/status/9…

15:32
@backendsecret Лично я понял, что есть на самом деле SOLID только когда прочел "Clean architecture" Мартина. До это… twitter.com/i/web/status/9…
16:11

Дело близится к вечеру, а я ещё даже толком и не начал. Итак, как реализация требований по безопасности может ложиться на волшебную SOLID?

18:27

Первая буква. S. Single Responsibility.
Очевидно, что максимальный вред, который может нанести компонент системе в… twitter.com/i/web/status/9…

18:47

Согласно этому принципу, компонет не должен требовать прав больше, чем минимально ему необходимо для выполнения сво… twitter.com/i/web/status/9…

18:47

Отсюда получается, что чем меньшим функционалом нагружен конкретный компонент - тем меньше привелегий ему нужно для… twitter.com/i/web/status/9…

18:47
@backendsecret Ну на S збс ложится
Хак в одном месте с меньшей вероятностью поможет открыть другое + за кодом проще… twitter.com/i/web/status/9…
18:48

O. Open/closed principle. Функционал, который реализует компонент, зафиксирован контрактом его интерфейса (и требов… twitter.com/i/web/status/9…

19:25

С другой стороны, реализация компонента может допускать легальное расширение функционала. Это расширение может быть… twitter.com/i/web/status/9…

19:25

То есть с ТЗ безопасности компонент должен быть реализован так, чтобы исключать нелегальную модификацию, и гарантир… twitter.com/i/web/status/9…

19:25

L. Тут всё просто. С точки зрения безопасности, расширение компонента путем наследования не должно нарушать контрак… twitter.com/i/web/status/9…

19:33

I. Interface Segregation. Тут, в общем, тот же подход, что и в букве S, только с другой стороны. Клиент не только н… twitter.com/i/web/status/9…

19:59

Добиться этого можно реализацией именно этого вот принципа - логической группировкой методов по интерфейсам с учёто… twitter.com/i/web/status/9…

19:59

Сюда же идут всевозможные "недокументированные возможности", как способ через интерфейс с одним контрактом получить… twitter.com/i/web/status/9…

19:59

Ну и последняя буква, D. Dependency Injection. Компоненты, спроектированные и реализованные согласно описанным ране… twitter.com/i/web/status/9…

20:30

Упомянутый ранее xml-сериализатор может тупо не иметь прав на создание файлов на диске. К примеру. Зато эти права (… twitter.com/i/web/status/9…

20:30

... уменьшать сцепленность, но и группировать функционал по доменам безопасности, чётко специфицируя как переходы ч… twitter.com/i/web/status/9…

20:30
@backendsecret Dependency Inversion this letter is.
Just leave that here:
sergeyteplyakov.blogspot.ru/2014/11/di-vs-…

Да. Прошу прощения. Меня совершенно правильно поправили. Буква D - это Dependency Inversion (а не Dependency Inject… twitter.com/i/web/status/9…

23:06
@backendsecret Часто путают D в SOLID и DI/IC паттерн
Это несколько разные вещи
В SOLID D это dependency inversion… twitter.com/i/web/status/9…

Да. Всё так. twitter.com/krems5/status/…

23:14

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

@SKapraloFF @backendsecret Ну интерфейс в D это не interface из джава
Это же просто публичный контракт, API
А inter… twitter.com/i/web/status/9…
14:42

Прошу меня извинить, но сегодня, видимо, уже ничего не смогу написать. Постараюсь компенсировать завтра.

23:47

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

Всем доброго дня. Вчера в РФ была неправильная пятница, и какая-то уж очень суровая. Сегодня - неправильная суббота… twitter.com/i/web/status/9…

12:47

И нет. Это снова был не РКН.

12:47

В черверг я много рассказывал про связь аспектов безопасной разработки и SOLID-подходов к дизайну системы. Вывод, к… twitter.com/i/web/status/9…

12:51
В черверг я много рассказывал про связь аспектов безопасной разработки и SOLID-подходов к дизайну системы. Вывод, к… twitter.com/i/web/status/9…

Для того, чтобы сделать решение безопасным надо предпринять некоторое количество дополнительных усилий как минимум… twitter.com/i/web/status/9…

16:24

Контроль доступа. Про парольную защиту (в том или ином виде) известно многим. Но, вообще говоря, в рамках реализаци… twitter.com/i/web/status/9…

16:36

Гарантии того, что субъект, описываемый теми или иными атрибутами безопасности (например, ролью в системе - админис… twitter.com/i/web/status/9…

16:36

Таких моделей - много. Например, Модель Белла-Лападулы (БЛП или "мандатка")
ru.wikipedia.org/wiki/%D0%9C%D0…

16:36

Ролевая модель
ru.wikipedia.org/wiki/%D0%A3%D0…

16:36

И множество других. Многие из этих моделей имеют под собой неслабый математический аппарат и формальные доказательс… twitter.com/i/web/status/9…

16:36

Реализация той или иной модели безопасности в своём решении может оказаться нетривиальной задачей. В каких-то (серь… twitter.com/i/web/status/9…

16:42

С точки зрения реализуемой системы у такого монитора будет две основных задачи:

16:42

2. Контроль целостности.
Функционал крайне необходимый для того, чтобы понять: поломали сервис или нет, и выполняет… twitter.com/i/web/status/9…

19:26

  • периодическое "прозванивание" функциональных цепей решения. Например, отправка на вход специального запроса и ожи… twitter.com/i/web/status/9…
  • 19:26

    Абсолютных гарантий, понятно, всё это не даст. Но некоторые риски закроет.

    19:26

    3. Аудит. Требование его наличия (как и наличие разграничения доступа) будет обязательным, если решение пойдёт на с… twitter.com/i/web/status/9…

    19:36

    Причины понятны: должна быть возможность расследовать инциденты. Причём, чем подробнее действия будут сохраняться (… twitter.com/i/web/status/9…

    19:36
    @musuk Безопасность стоит денег. Требования к аудиту, которые я видел, предполагали, что записи аудита сложно дропн… twitter.com/i/web/status/9…

    По идее, аудит должен мочь дать ответ на вопросы: "Какая сволочь стреляла?" и "Кто бросил валенок на пульт?" в случ… twitter.com/i/web/status/9…

    21:10
    @musuk В данном случае скорее соглашусь, да. Но тут ещё всё зависит от характера хранимых и обрабатываемых данных.… twitter.com/i/web/status/9…

    Тут как бы то же деление: не тех, кто ещё, и тех, кто уже. twitter.com/backendsecret/…

    21:14

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

    4. Контроль окружения.
    Вся засада в том, что как бы хорошо не была спроектирована и разработана ваша система, она н… twitter.com/i/web/status/9…

    0:25

    В идеале (или если вы готовитесь проходить сертификацию) вы должны:
    а) зафиксировать конкретные версии thirdparty
    б… twitter.com/i/web/status/9…

    0:25

    Аналогично - с операционной системой. Только тут добавляются дополнительные шаги:
    г) hardening. Отключается всё, в… twitter.com/i/web/status/9…

    0:25

    После этого у вас есть уверенность (с поправкой на zero-day-баги), что в рамках известных проблем ваше решение буде… twitter.com/i/web/status/9…

    0:25

    Всем доброго дня. Выходного дня. В РФ сегодня первый день майских праздников, за её пределами - последний день выхо… twitter.com/i/web/status/9…

    14:48

    Воскресенье подобралось как-то быстро и незаметно, и это - последний день моего ведения backendsecret. Серьёзных те… twitter.com/i/web/status/9…

    14:53

    В понедельник мне задали вопрос, чем отличается архитектор от сеньёра. На самом деле, долго думал над ответом, и к… twitter.com/i/web/status/9…

    14:59

    Итак, ответ номер раз - шутливый. Отличия (в картинках) разработчиков разного уровня друг от друга. Ну или, иначе г… twitter.com/i/web/status/9…

    15:10

    Архитектор/тимлид pic.twitter.com/fCvQ8ubDsx

    15:10
    @backendsecret интересен вопрос чем архитектор отличается от старшего (сениор) разработчика и каковы ваши обязанности?

    А теперь ответ серьёзнее и длиннее. И, как просили, для двух случаев - небольшой конторы (15-20 чел.), и большой (о… twitter.com/i/web/status/9…

    15:32

    ИМХО, основное отличие в том, что архитектор - это уже не разработчик. Как в строительстве архитектор - это не стро… twitter.com/i/web/status/9…

    15:32

    согласовать принятые решения с бизнесом и командой разработки, следить за тем, чтобы разработка шла в нужном русле… twitter.com/i/web/status/9…

    15:32

    Решать прочие вопросы, непосредственно с разработкой (написанием кода), не связанные.
    В маленьких конторах роль арх… twitter.com/i/web/status/9…

    15:32
    @backendsecret Благодаря вам, с мидл/сеньора апгрейднулся до архитектора) pic.twitter.com/0deCVI3psj
    16:41
    @backendsecret Оборудовние, фреймворки и стек технологий, архитектура приложения - вот тут сеньор может только выр… twitter.com/i/web/status/9…

    В модели с идеальным распределением ролей в команде - да. Так оно и должно быть. Хуже, когда архитектор принимает о… twitter.com/i/web/status/9…

    18:14

    А есть ли в ваших командах специально выделенные архитекторы и чем они занимаются?

    18:18

    А если специально выделенных архитекторов нет, то кто отвечает за архитектуру и как он с этим справляется?

    18:19
    А есть ли в ваших командах специально выделенные архитекторы и чем они занимаются?

    И другой вопрос здесь же: занимаются ли ваши архитекторы разработкой и, если да, то в каком объёме? twitter.com/backendsecret/…

    18:41
    @Novosilicon @backendsecret Тут всё зависит разрабатываемого приложения. Чем оно сложнее и критичнее, тем больше не… twitter.com/i/web/status/9…
    19:04

    Ну и ещё вопрос, до кучи. Учитываются ли в ваших решениях (при разработке или проработке архитектуры) аспекты безоп… twitter.com/i/web/status/9…

    19:07
    @Alex_IT_83 @backendsecret Да, иногда не хватает весомого и авторитетного ответа на вопрос, когда нет специального… twitter.com/i/web/status/9…

    О, да. Формализация бизнес-процессов способна превратить разработку в маленький филиал ада. twitter.com/Novosilicon/st…

    19:09
    О, да. Формализация бизнес-процессов способна превратить разработку в маленький филиал ада. twitter.com/Novosilicon/st…

    С другой стороны, отсутствие хоть какой-то формализации (в относительно крупных проектах) - прямой путь к факапам и… twitter.com/i/web/status/9…

    19:13
    @backendsecret Есть. Пьет и курит. @spscream
    21:40
    @backendsecret У нас команда архитекторов из трёх человек. Обязанностей несколько:
    1) Ведём технический roadmap(мап… twitter.com/i/web/status/9…
    21:59

    Моё время стояния на табуретке backendsecret'а заканчивается. Как оказалось, неделя - это не то, чтобы много. Расск… twitter.com/i/web/status/9…

    23:40

    Всем спасибо за внимание и общение. Надеюсь, моё дежурство здесь для кого-то оказалось полезным. Если хотели у меня… twitter.com/i/web/status/9…

    23:40

    other