Pull to refresh
1
0
Send message

Почему Facebook* не использует Git

Reading time8 min
Views41K

Я работаю над созданием Graphite, источником вдохновения для которого стал внутренний инструментарий Facebook. Когда я решил создать стартап с друзьями, то никогда раньше не слышал о Mercurial, хотя всегда страстно любил инструменты разработчика. Мой предыдущий опыт разработки включал в себя личные проекты, домашнюю работу в колледже, разработку для iOS в Google и развитие инфраструктуры в Airbnb. На протяжении всей моей карьеры использование git было таким же естественным, как воздух. Он настолько популярен, что лично я считал его единственным подходящим инструментом для создания изменений в коде и управления ими.

Забавно, что специалист по Mercurial Грегори Gregory Szorc работал рядом со мной в Airbnb, хотя я знал его только как приятного коллегу, но не представлял, что он контрибьютор.

В 2021 году мои коллеги по команде Томас и Ник раскрыли мне глаза. Они пришли из Facebook и, к моему удивлению, едва знали Git. Зато они имели глубокое понимание паттернов Mercurial и рабочего процесса Facebook на основе «многослойных diff» (stacked diff). Со временем они убедили меня в полезности этого паттерна и мы развернули направление развития компании, чтобы реализовать многослойные diff для разработчиков GitHub.

Но пост посвящён не нашему стартапу. Он о важном вопросе, не дававшем мне покоя последние три года. Почему фейсбукеры не пользуются Git? Зачем они выбрали Mercurial и создали на его основе собственные рабочие процессы? Я знаю что Google не пользуется Git, но это логично, культура разработки Google возникла на пять лет раньше Git. Facebook же был основан примерно в то же время, что и создан Git, около 2004 года, и ко времени, когда Facebook начал серьёзно выбирать инструментарий для управления исходниками, Git был старше и популярнее Mercurial. Так почему же Facebook не использует Git?

Читать далее
Total votes 63: ↑55 and ↓8+62
Comments299

2ГИС — опасное приложение?

Reading time3 min
Views27K

Пользователи 2ГИС на Android начали получать системное сообщение, что 2ГИС — приложение вредоносное, оно опасно для устройства и личных данных.

Если коротко — конечно же, это не так. 2ГИС всегда соблюдал все правила и продолжает это делать. Более того, в новых версиях приложения ничего принципиально не поменялось, и мы пытаемся выяснить, почему Google считает нас вредоносными.

Под катом — подробнее, в чём дело и как быть UPD от 13 января, 15:00 Мск

UPD 15 января, 11:00 Мск
Вынесли в отдельный пост-post-mortem ответы на вопросы и всё, что известно на сегодняшний день.

Читать далее
Total votes 48: ↑38 and ↓10+35
Comments132

БагБаунти с АстраЛинус или то, что нужно знать о защищённости защищённой ОС

Level of difficultyEasy
Reading time12 min
Views42K

Хочу поделиться своим опытом участия в программе баг-хантинга ГК Астра (да, да - именно той, которая недавно совершила каминг‑аут IPO) на платформе BI.ZONE Bug Bounty.

Читать далее
Total votes 106: ↑104 and ↓2+127
Comments152

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

Reading time4 min
Views81K

Тайвань усиливает защиту ключевых технологий страны. Так, правительство Тайваня обнародовало список из 22 технологий в пяти секторах производства (оборона, космос, сельское хозяйство, полупроводники и информационная безопасность), которые будут дополнительно защищены от утечки данных.

На сегодня Тайвань — производитель большей части наиболее передовых полупроводниковых чипов в мире, которые используются во всем — от смартфонов до электромобилей. Правительство страны давно обеспокоено попытками Китая перехватить пальму первенства на этом пути, применяя промышленный шпионаж и «охотой за головами», то есть переманивание тайваньских инженеров на китайское производство.
Читать дальше →
Total votes 37: ↑35 and ↓2+52
Comments475

Мифы об Unreal Engine 5 — Nanite

Level of difficultyMedium
Reading time13 min
Views15K

Доброго времени суток,

Успех новой версии Unreal Engine не оставил без внимания профессионалов всех мастей. Попытки поддать, происходящую революцию, рациональному объяснению - затмило умы самых упрямых юнити-делов. Журналисты проводят сравнения со всем подряд, что только подвернётся, чтобы попытаться перевести технологии из мира идей в любое доступное пространство. Ходят слухи, что пара кодеров поступила в клинику, они лишь запинаясь, повторяли о mesh-шейдерах. А те кто видел исходники, поговаривают о необычайном цвете кода, явно, не из нашего мира, возможно тема была, даже - светлой.

Всё это безумие - породило мифы и целые культы, рей-трейсер пошёл на рей-трейсера, рей-кастера размазало между кадрами, Z-брашер, с диким смехом, скопипастил два мазка кистью по фотоскану непристойных моделей, прямо в игру, даже Чат-GPT назвала демонстрацию - deep-fake’ом, а новости - вбросом. Кроллики и драконы стали жить вместе, собаки и кошки.. а да, о чём это я..

В общем, я не могу вам сказать, чем является на самом деле этот ваш Nanite, но я могу вам сказать, чем он точно не является. И так..

Свет. Занавес. Nanite
Total votes 24: ↑14 and ↓10+7
Comments36

Простой, но масштабируемый State Management для Flutter

Level of difficultyMedium
Reading time4 min
Views4.6K

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

Чувствуете ли вы легкое покалывание при виде OnRefreshPostsButtonClickedHomeScreenEvent? Возможно, вы используете bloc.

Нет? А сейчас -firstNameUserProfileStateProvider ? Ага, riverpod.

Все еще нет? Тогда, может: Succeeded after 104.6s with 364 outputs (2412 actions)? Все ясно - MobX

"Нужен ли нам еще один State Management", или как я написал библиотеку, с которой снова начал любить Flutter.

Читать далее
Total votes 13: ↑13 and ↓0+13
Comments23

Байт-код — это просто! Как сделать DI по-настоящему быстрым

Level of difficultyMedium
Reading time10 min
Views14K

Привет! Меня зовут Григорий Юрков, и я уже несколько лет работаю в инфраструктурной команде Яндекс Маркета. Два года назад мы начали разрабатывать свой легковесный DI-фреймворк Scout, который предоставляет выразительный Kotlin DSL. Он не генерирует код, а делает всю работу в рантайме.

Недавний переход с compile-time-библиотеки Dagger 2 на нашу привёл к замедлению старта приложения. В этой статье мы будем подробно рассматривать то, как применение байт-кода помогло сохранить скорость на том же уровне и спасти проект по миграции на Scout.

Ускоримся!
Total votes 25: ↑23 and ↓2+27
Comments41

Новый перспективный веб-фреймворк Cample.js. Реактивность без VDOM

Level of difficultyMedium
Reading time2 min
Views12K

Всем привет! В данной статье я бы хотел рассказать о таком фреймворке как Cample.js.

На сегодняшний момент (версия 3.0.1), фреймворк является активно поддерживаемым в разработке нового функционала. Есть поддержка работы с данными, которые благодаря реактивности без виртуального DOM отображаются крайне быстро. Пример тестов.

Читать далее
Total votes 4: ↑3 and ↓1+6
Comments56

Information

Rating
Does not participate
Registered
Activity