Дмитрий Орлов
@perfectdaemon
Разработчик .NET / Тимлид / Тимлид других тимлидов
Information
- Rating
- 3,162-nd
- Location
- Москва, Москва и Московская обл., Россия
- Works in
- Date of birth
- Registered
- Activity
Specialization
Backend Developer
Lead
From 450,000 ₽
C#
PostgreSQL
SQL
Git
Docker
TypeScript
JavaScript
HTML
CSS
Apache Kafka
Сам себе заказчик: как мы провели редизайн сервиса и вернули доверие пользователей
Озон большой, продукты (и команды у них) разные. Но думаю, что озвучить здесь свою боль будет не лишним — наверняка тут есть и товарищи из нужной команды)
5 вещей, которые предприниматели, инвесторы и рекрутеры должны знать о CTO
Chief Technical Officer.
Наиболее близкий перевод — Технический директор.
База по шардированию базы
Если коммит не синхронный, то реплики могут отставать. Если синхронный, то скорость записи сильно падает. С этим можно жить, но см. пункт 2.
Если коммит несинхронный, то может возникнуть ситуация, когда WAL копится и не применяется на репликах из-за постоянных запросов. В итоге WAL забьется, и упадёт запись.
Статистика хранится на мастере и реплицируется на реплики, то есть читать только с реплик нельзя, нужно чтение и на мастере
Рано или поздно размер данных превысит какой-то порог, индекс перестанет попадать в кеш целиком, поедет статистика, pg начнет ошибаться в планах
Это из тех проблем, что я навскидку видел при отсутствии шардинга на условно больших Postgres базах
Энтузиаст портировал Tomb Raider на Game Boy Advance
Думаю, можно, как минимум, заменьшенить Тимура в тексте новости — @XProger
Как максимум — попросить написать статью об этом проекте :)
10 практик «ответственного» тимлида
Понять, что к такому привело:
Хорошо ли была поставлена задача?
Было ли промежуточное код-ревью? (Или классический MR на +10000 строк в 1 коммит в конце)
Были ли донесены до команды/человека сроки?
Что говорила команда/человек на дейликах (если они были)?
Ну, то есть можно сразу приступать к сжиганию ведьм (исполнитель нехороший и любит овер-инжиниринг), но лучше исходить из презумпции невиновности :)
10 практик «ответственного» тимлида
Брать на себя важные таски, когда есть много других активностей (встречи, «синки») — верный путь потерять все полимеры.
Я для себя сделал вывод, что нужно учиться доверять ответственность команде. Да, они сделают задачу медленнее, чем «я в вакуууме». Но проблема в том, что вакуума нет, вокруг воздух и другие активности, которые отвлекают лида. Поэтому задача либо не будет сделана, либо будет сделана в выходные. Что является путём в выгорание.
В таких компаниях надо противиться такой политике. Ну, или менять компанию, если изменить ничего нельзя
Путин одобрил меру о бессрочном снижении налога на прибыль для IT-компаний с 20% до 3%
Звучит слишком хорошо, должен же быть где-то подвох?
Как ускорить код-ревью
Ну, это опыт с моей текущей колокольни: аутсорс в энтерпрайзе, команды по 6-25 человек разработчиков на проект.
Недавно был опыт фриланса, где код-ревью ограничивалось принципом «оно работает — вливай в девелоп». Качество кода было плавающим, очень много вещей разработчики изобретали заново в проекте, размером в 5-7 тысяч строк кода.
Как ускорить код-ревью
Кросс-языковая разработка ПО
На RHEL есть поддержка .net core: пруф.
Кросс-языковая разработка ПО
Смена основного стека с .NET на Java
холиварнаяпятничная статья :).Net Core принес встроенный DI, который покрывает 95% нужд. И что вообще плохого в выборе DI/IoC-контейнера самостоятельно из существующих? Лучше иметь одну прибитую гвоздями реализацию?
Про транзакции немного не понял, их управление строится через конфигурацию ORM, как и в мире Java. Или речь о распределенных?
Опять-таки .Net Core предлагает многое, из того, что есть в Spring Framework (если, конечно, описание его состава на википедии не врет). Не все, но многое. Остальные вещи можно найти, установить и «подружить».
OWIN дал возможность более гибко и прозрачно конфигурировать пайплайн http-запроса через middleware.
В общем, на вкус и цвет — фломастеры разные.
Расследование утечек информации из корпоративной базы данных перевозчика
То есть сотрудник логистической компании (а не перевозчика и владельца БД) имел доступ не только к данным своей компании, но и к чужим? При условии что:
Подходы к версионированию изменений БД
Есть встроенный дизайнер, как в SSMS, который по сути генерирует скрипт, который также можно править ручками.
Есть встроенное сравнение схем между проектом и базой, базой и базой и т.д. Результаты сравнения видны по объектам, а также в виде diff-а sql-кода этих объектов, на одном экране.
Можно автоматом накатить изменения (не рекомендую), но лучше сгенерировать скрипт, внимательно его просмотреть (поправить при необходимости) и накатить.
Можно выбрать, какие объекты игнорировать при генерации скрипта.
Есть возможность деплоя базы разными способами.
Можно использовать отдельно сравнение схем баз, без ведения Database Project. Тогда теряется возможность контролировать изменения, но если у вас есть базы dev и prod и нет желания менять существующую схему работы — вполне годный вариант.
Скриншот
Подходы к версионированию изменений БД
Сложности при создании изометрической игры в Unity
Сложности при создании изометрической игры в Unity
Потому что при сложной альфа-маске спрайта гораздо производительнее будет триангулировать его видимую часть, оставив альфатесту только самые сложные места. Отрисовать сотню другую лишних треугольников и отсечь невидимое/видимое по z-тесту намного лучше, чем альфа-тест, ломающий параллелизм шейдеров.
Unity здесь не причем. Иногда полезно узнать азы программирования компьютерной графики до знакомства с высокоуровневыми движками.
Если это такая проблема, она решается как минимум двумя способами: Update + Time.deltaTime. Либо переносом логики из события анимации в FixedUpdate, в этом случае в событии просто выставляем нужное состояние, а обрабатываем его в FixedUpdate.
И опять же Unity не при чем. Даже в случае с ЯП без сборщика мусора new/delete слишком затратно в игровом цикле. В NASA, например, программа должна аллоцировать всю требуемую память на старте и не требовать аллокации во время работы.
Рисовать изометрию с пререндеренными спрайтами и хотеть 3d-физику? Месье знает толк…
Blast-off. От идеи до релиза
Структура «Feature Folders» в ASP.NET Core MVC
Что изменилось в 2016 году в сфере программирования? Итоги прошедшего года и планы на 2017