Pull to refresh
4
Karma
0.2
Rating
Александр Червинский @Tellamonid

Энтерпрайз-разработчик

  • Followers
  • Following

Интроверты против open space

Вы правы, и поэтому у нас работает чуть по-другому. Для N команд, работающих над одним проектом, выделена зона. То есть вы автоматом будете рядом с теми, кто работает над тем же самым. А уже внутри идут зоны команд, где, возможно, надо будет договориться, что команда А бывает по вторникам и четвергам, а команда Б – по средам и пятницам. И это не мешает кому-то прийти не в свой день, столов вполне хватает. Если кто-то хочет ходить 4 и больше дней в неделю, то стол за ним/ней закрепляют.

Мозговой штурм: теория и провал

я просто оставлю это здесь

Перевод с http://dilbertru.blogspot.com

Дилберт: Мы выиграли тендер правительства на устройство для абсорбции CO2, и теперь нам нужны идеи.

Дилберт: Это пока только мозговой штурм, так что помните, "плохих идей не бывает".

Алиса: Мы могли бы ловить CO2 сетью.

Алиса: Ты разве не собираешься записать эту идею?

Дилберт: Нет, я вполне уверен, что запомню это предложение до конца своей жизни.

Уолли: Мы могли бы завлекать CO2 какой-нибудь едой.

Дилберт: ЗАБУДЬТЕ! ВЫ ВСЕ ИДИОТЫ! Я ПРОСТО САМ СДЕЛАЮ ЭТУ ДУРАЦКУЮ МАШИНУ!

Алиса: Было прикольно.

Уолли: Обожаю мозговые штурмы.

7 характеристик хороших тестов

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

И если в течение часа не было транзакций, то они сами делали транзакцию на один фунт между своими счетами или картами, и смотрели, отразится ли она в системе.

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

7 характеристик хороших тестов

А, вы про end-to-end. Для них мы перед прогоном всей пачки тестов чистим базу. И обеспечиваем независимость тестов, чтобы они могли бежать в параллель. В нашем случае достаточно, чтобы каждый тест бежал за свою бизнес-дату. И, конечно, есть отдельный тест, который проверяет, что бизнес-даты у тестов не пересекаются.

7 характеристик хороших тестов

мы с базой только так и тестируем. Приводим нужные таблицы в изначальное состояние (fixture), делаем, что нужно, и проверяем конечное состояние.

Мы пишем на Джаве, поэтому обычно используем для наката датасета, и для проверки (assert'а), библиотеку dbUnit.

Как команда IT-animals о своих Heroes of might and magic грезит

Вы имеете в виду как в Might and Magic? Который не Heroes. Я играл в седьмую, восьмую и девятую версии, и мне они в своё время очень нравились, несмотря на устаревшую даже на тот момент графику.

Java: делаем Valhalla сами

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

  • Trove (больше не поддерживается);

  • Eclipse collections;

  • FastUtil;

  • HPPC;

  • Koloboke;

  • Neo4j Primitive Collections;

Наверняка сейчас есть и какие-то ещё.

Правда, я помню случай, про который рассказывал Сергей Куксенко, когда сравнивал ConcurrentHashMap с Trove-мапой, и нашел случай, когда ConcurrentHashMap оказался быстрее, несмотря на то, что там лежали обьектные типы. Это было потому, что для определения того в какую корзину (bucket) положить элемент, в Trove использовался оператор % (остаток от деления), а в ConcurrentHashMap – наложение битовой маски, которое работает, когда длина массива – степень двойки. И в многопоточной среде это было важно, потому операция остаток от деления может исполняться одна на ядре, а наложений битовой маски может быть несколько в параллель. В интернете можно найти таблицы для разных процессоров, у каких операций какого параллелизма можно достичь.

Почему принцип единственной ответственности не всегда работает

Нет единственно верного разделения или выделения ответственностей для классов, функций, методов, модулей, пакетов и т. д.

Единственного верного нет, но есть предельный случай, до которого, например, доходят в книжке Growing Object-Oriented Software, Guided by Tests (GOOS).

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

Я не говорю, что это хорошо, просто слово "единственный" напомнило эту книжку.

WYSIWYG-редактор Хабра — худшее из того, что я видел

с телефона еще странный глюк, когда длина строки кода становится шире экрана, то курсор становится высотой две строки, и буквы набираются/удаляются сразу на двух.

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

Как я получил оффер от Фейсбука и в итоге к ним не пошёл

Я и не критикую, просто хотел дополнить ваш ответ, исходя из своего опыта

Как я получил оффер от Фейсбука и в итоге к ним не пошёл

почти всегда лучше один скан по таблице + аналитическая функция.

Что-то вроде

select p.driver_id,
       p.cnt,
       p.avg_cnt
  from (select q.driver_id,
               q.cnt,
               avg(q.cnt) over () as avg_cnt
          from (select r.driver_id,
                       count(1) as cnt
                  from rides  r
                 where city_id = 123 -- Berlin
                   and ride_date >= to_date('2021-11-01', 'YYYY-MM-DD')
                   and ride_date < to_date('2021-12-01', 'YYYY-MM-DD')
                 group by r.driver_id) q) p
where p.cnt > p.avg_cnt;

Как я реализовал git-flow для SQL

Мы используем Flyway с ораклом, всё работает, как надо.

В чем разница между софт-скиллами и чертами личности

у вас в выводе перевод неправильный.

Черты личности — это приобретенные черты характера

В оригинале

Personality traits are “Traits” which means that they are qualities inherent to you

inherent – это как раз «врождённый», а не «приобретённый»

Миграция данных из различных RDBMS в HADOOP

А почему Spark, а а не sqoop? Sqoop же как раз сделан для миграции между реляционными базами и Хадупом, и обратно.

Идеальная светодиодная лампа за 21 рубль

Насчет драйвера не знаю, но я чуть выше писал, что у меня тоже была проблема с перегорающими через полгода-год GX53. Сейчас я поставил лампы Osram, и пока ни одна не перегорела.

Идеальная светодиодная лампа за 21 рубль

Я тоже регулярно меняю Икеевские (Ledare) лампы, когда они перегорают, или начинают мигать (обычные «груши» Е14 и Е27). Лампы X-Flash GX-53 гарантированно умирали через полгода-год работы. Я пользовался их бесплатной заменой, но потом мне это надоело, и я поставил вместо них Osram, и пока ни одна не перегорела.

У Икеевских ламп, по крайней мере у Ledare, очень приятный оттенок света. Пробовал покупать, например, Наносвет с CRI > 95, но они реально жёлтые, как будто кто-то надел желтый плафон на белую лампу. Через какое-то время привыкаешь, конечно, но с Икеей такого эффекта нет.

Микросервисы. Не всё то золото, что хайп

Объем тестирования остался прежним. Тесты переписали, конечно. У нас был такой монолит, в котором не было dependency injection, и поднять для тестов можно было только все целиком. А в микросервисах мы всё сделали по уму, да ещё в части сервисов перешли с мавена на грейдл, что тоже дало ускорение билдов с тестами.

Помодульно запускать было можно, наверное, просто никто такое разделение не сделал.

Для решения целиком у нас есть отдельные end to end тесты, но они и с монолитом были. Ускорили мы юнит- и интеграционные тесты путем выделения его частей в микросервисы.

CDC у нас буквально несколько тестов, в основном потому что очень мало вызовов через REST, почти всё идет через мессаджинг.

Надеюсь, ответил

Микросервисы. Не всё то золото, что хайп

Присоединяюсь. Мы начали отрезать куски от монолита, когда в большой распределенной команде у этого монолита тесты проходили час. И после первых N итераций у нас стало несколько сервисов, у каждого время пробегания тестов не больше 10 минут, а чаще около пары минут.

Мне не хватает общения с программистами

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

Это так работает во многих областях. Например, в качалку новичку веселее идти с другом-новичком. И наоборот, экспертам в какой-то области интересно обсудить какие-то сложные проблемы с другими экспертами. Так что желаю вам найти кого-то, кто проходит похожий с вами путь.

И да, присоединюсь к предыдущим комментаторам, что игры не зло. Я значительно лучше узнал английский, играя в Final Fantasy VII.

Как избавиться от дублей в базе данных (на примере MS SQL)

Кстати, не подскажете, вы используете MVCC в MS SQL, или по-старинке блокировки? Это на моей памяти единственная СУБД, которая умеет и так, и так, но родилась как блокировочная. А поддержку MVCC ей добавили, если не ошибаюсь, в 2005-м

Information

Rating
2,326-th
Location
Москва и Московская обл., Россия
Date of birth
Registered
Activity