Pull to refresh
18
0
Антон @ammo

Пользователь

Send message

Милош понимает, что он столкнётся с задачами масштабирования, так что смотрит в сторону библиотеки написанной на Golang

I/O bound задачи

Какая-то очень сомнительная аргументация. Особенно с учетом того, что различных инструментов для автоматизации сети/инфраструктуры на Python написано на порядок больше.
А, хотя это же Яндекс, совсем забыл...

Также, если вы попытаетесь добавить два ключа в словарь с одинаковым хеш-кодом, то второй ключ перезапишет первый:
my_dict = {1: 'one', '1': 'one again'}

{1: 'one again'}

Вранье полнейшее просто от начала и до конца.
Начнем вот с этого:

>>> print({1: 'one', '1': 'one again'})
{1: 'one', '1': 'one again'}

У 1 и '1' просто совсем разный хэш

>>> hash(1)
1
>>> hash('1')
619728117842555882

Но дело совершенно не в этом. Объекты с одинаковым хэшем (дандер __hash__) спокойно могут сосуществовать в рамках одного дикта/сета.
Создадим кастомный класс, у которого всегда будет одинаковое значение хэша (123):

>>> my_int = type('my_int', (int,), {'__hash__': lambda self: 123})
>>> one = my_int(1)
>>> two = my_int(2)
>>> hash(one) == hash(two) == 123
True
>>> one == two
False
>>> {one: 'one', two: 'two'}
{1: 'one', 2: 'two'}

За счет одинакого хэша ключи выше попали в один и тот же бакет в рамках хэшмапа/дикта, но это не мешает им оставаться разными по значению (дандер __eq__) и таким образом храниться вместе в одном словаре.

"Но вернемся к кандидатам. Чаще всего они рассказывают, что SOLID — это акроним, озвучивают все его принципы, но объяснить и привести примеры могут лишь для половины. На остальных либо плавают, либо сливаются."

Я б тоже лучше слился, чем сидеть примеры рожать по 200 строчек, как в статье.

А почему бы человеку, который интернетом не пользуется и в принципе откровенно презирает, не отвалить от этого самого интернета, ну или как минимум не оставить свое "авторитетное" "не читал, но осуждаю" при себе?

  1. Compound statements (multiple statements on the same line) are generally discouraged. В комплекте с код-блоками хабра еще и приходится мотать ваш код влево-вправо, чтобы прочитать.

  2. Don’t compare boolean values to True or False using ==

  3. Не нужно знать предметную область, чтобы штуки типа self.d или self.project.p были чем-то кроме как примерами плохого нейминга.

Ваш код плохо читается не из-за отсутствия enum, а из-за игнорирования pep8 и ужасного нейминга

соглашусь, отличное решение

Если б вы пытались понять так же усердно, как передергиваете мои аргументы, то может и получилось бы

Очевидно же:

  • занимает 3 строчки вместо 1

  • читается дольше чем варианты 1 и 2

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

def list_iterator(list_, start=0, stop=None, step=1):
    if stop is None:
        stop = len(list_)
    for i in range(start, stop, step):
        yield list_[i]


sum(list_iterator(my_list, 10, 21))

Мои пять копеек: в itertools нет эффективного итератора по части списка.
Допустим, нужно посчитать сумму элементов с 10 по 20.
1. sum(my_list[10:21]) - лучший вариант, но он тратит доп. память
2. sum(itertools.islice(my_list, 10, 21)) - не эффективно по времени, т.к. начинает перебирать элементы с 0
3. Эффективно, но уродливо:
sum_ = 0
for i in range(10, 21):
sum_ += my_list[i]

https://github.com/danthedeckie/simpleeval - готовое решение для eval, из которого вырезаны все опасные штуки

class AsyncTimer:

def __enter__(self):

async def __aexit__(self, exc_type, exc_val, exc_tb):


С такой комбинацией дандеров это в принципе не контекст менеджер.

Тоже покоробило это. Автор в одной строчке пишет нормально через [ ] и в следующей его резко заносит в куда-то в жаву с треугольными скобками. В питоне такого нет и было бы глупо вводить

В моем кейсе я использовал балансировку на сетевом уровне

В вашем кейсе вы использовали балансировку на транспортном уровне. Балансировкой на сетевом уровне занимаются маршрутизаторы

На этом этапе большинство кандидатов сдаётся

Это не сдаются, это понимают, что
1) интервьюер - самовлюбленный чудак на букву м, выучивший перед интервью 30 вариаций одной и той же задачи плюс решения к ней, и сейчас с наслаждением наблюдающий, что "глупенький кандидатишка" этих решений сходу не называет
2) в команде с таким человеком и в компании, ставящей таких людей проводить интервью, они работать не хотят

Вы пресс-релиз от банка ждете или от ЭР-Телекома? Уже представляю себе:
- Да, это наши хотспоты, на них вот такого-то прям вот так вот и назвали.

Комментарий выше - инфа от знакомых изнутри. И да, это именно то, что в самую первую скорейшую очередь и было исправлено, сами догадайтесь почему.

Говорят, что в т.ч. был переименован SSID на хотспотах одного крупного банка (клиента ЭР-Телеком). Новое название говорило что-то о визуальной схожести одного главы государства с мужским половым органом

Но, к сожалению, используемая нами функциональность медленно разрабатывается другими производителями

И что это за особенная функциональность у секретного вендора (под кодовой буквой J, я полагаю), которой нет у других?

Ммм, статьи про ипв6 для домохозяек в качестве пруфа. Как это опровергает то, что я сказал про отсутствие обмена мультикаст трафиком между tier 1? Никак. То, что мультикаст-групп в ипв6 просто больше и вероятность их уникальности выше, никак мультикаст-интернет из воздуха не создаст.

Мультикаст - это полностью другой control plane по сравнению с юникастом, т.е. условно сложность администрирования сети при включении мультикаста увеличивается в 2 раза. Его локально в пределах своей сети то стараются не включать без крайней необходимости, и уж тем более операторы им не обмениваются между собой просто так "чтоб было"

Information

Rating
Does not participate
Registered
Activity