Pull to refresh
4
0.1

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

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

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


А инициативу, как правило, перестают проявлять буквально после первой подобной претензии и на все время работы, поэтому большого ущерба это едва ли нанесет.

В чем минусы распила монолита вы рассказали, а в чем плюсы?

какие-нибудь простые вилки могут быть сделаны из суперстали

А не бывало чтобы заказчик предъявлял претензии к слишком уж супер стали потому у него обрабатывающее оборудование на такое не рассчитано?

Существование Pydantic показывает, что кому-то это все-таки надо. Вот пример из документации:


from pydantic import ValidationError, validate_call

@validate_call
def repeat(s: str, count: int, *, separator: bytes = b'') -> bytes:
    b = s.encode()
    return separator.join(b for _ in range(count))

a = repeat('hello', 3)
print(a)
#> b'hellohellohello'

b = repeat('x', '4', separator=' ')
print(b)
#> b'x x x x'

try:
    c = repeat('hello', 'wrong')
except ValidationError as exc:
    print(exc)
    """
    1 validation error for repeat
    1
      Input should be a valid integer, unable to parse string as an integer [type=int_parsing, input_value='wrong', input_type=str]
    """

Да, я вижу проблемы. На списке в несчастные пять тысяч элементов эта функция просто упадет с сами знаете каким исключением, и я даже думать не хочу, какая у нее сложность по памяти. Если на собеседовании написать это на просьбу "calculate the sum of a list of numbers", то интервьювер, боюсь, даже не пообещает перезвонить.


Подобное решение имеет смыл когда требуют сложить список запретив использовать for и while, sum(), и весь itertools скопом, но никак не раньше.

Если это конечный результат, то вы сделали что-то совершенно непохожее. В статье, и до, и после переделки — мнемосхемы, а у вас — сложенные в кучки наборы индикаторов. Это, разумеется, проще нарисовать, но работа с подобны интерфейсом — заметно большая фоновая когнитивная нагрузка, чем мнемосхема.
Стоило бы взять из документации максимально упрощенную схему агрегата и расположить все эти индикаторы и концевики там, где они должны находиться на машине, опционально приправив символами верхнего/нижнего или открытого/закрытого положения. Если какой-то элемент красиво не нарисовать — оставить как есть кружки с подписью, но обязательно в правильном месте.


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

image
Замечательный ресурс для новичка, ничего не скажешь.

Вы заставили меня перепроверить, я все еще на старой версии и прочитать это целиком можно, уж не знаю, что именно вы понимаете под "нормально".

А каску тоже свою приносить?

Но ведь комбинация из кирпичиков не обязательно равна их сумме. Быть готовым к ситуациям "пожар на борту" и "отключение электричества" не значит быть готовым к пожару во время/из-за проблем с электричеством.

Я поискал за вас.


TSMU:


$ ls mp/tags
big-jazz mp3 music
$ ls -l mp/tags/music
drwxr-xr-x 0 paul paul 0 2012-04-13 20:00 big-jazz
drwxr-xr-x 0 paul paul 0 2012-04-13 20:00 mp3

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


Tagsistant: прямо написано, что поддерживается:


You can even combine the results of more than one query by placing a +/ in between, like in startrek/+/starwars/ which merges the files tagged startrek with the files tagged starwars.

jtagsfs:


You cd to /path/to/mountpoint/tags/video/HD/thriller/sci-fi/@ (the order isn't important) and copy your file there.

tagfs:


/tag0/tag1 (starting at the tagfs root) retrieves all files that are marked with both tag0 and tag1. Prepending a '-' negates a tag, selecting every file that is not marked with the tag.

А вы точно хорошо искали? Прямо сейчас я вижу в поиске не меньше полудюжины названий, например, здесь. Самые старые из нулевых, самые свежие — годичной давности. Неужели они все не подходят?


Та, которой мне приходилось пользоваться, распространялась в виде одного .jar файла без всяких модулей ядра и работала от простого пользователя.

Там прямо в README написано, что она шлет все совпавшие ссылки на свой сервер, вместе с клятвенным обещанием ничего кроме самих ссылок не хранить.

Третья категория означает допустимость аварийных (у меня в договоре прописаны и плановые) отключений на время до 24 часов несколько раз в год, и, будьте уверены, эти несколько раз не будут распределены равномерно.
Надежность питания от генератора ограничена, помимо всего прочего, надежностью системы поставки топлива, которая, кажется, стандартом не регламентируется.
С другой стороны, в условиях третьей категории переход на генераторы будет происходить регулярно, процедура будет отработанной рутиной, и, соответственно, будет меньше ситуаций, когда приходится ехать на заправку с канистрами или перематывать топливный шланг скотчем.

Адский экспрешен, который в жизни не встретить

Вот вам экспрешен (без полного контекста, ибо тот слишком велик), который мне в жизни не просто встретился, но и отнял у меня некоторое количество этой самой жизни:


v = (0, o[w(109)]) (function (e) {
  const t = w;
  var n;
  return (null !== (n = e[t(427)]) && void 0 !== n ? n : 'GET') [t(218)]()
}(t)

Хорошее знание синтаксиса, позволяющее подобные вещи распарсить в уме, может сохранить немало времени и нервов если с ними придется (а за пять лет опыта хоть раз да придется) столкнуться.

Знаете, в критической, или даже просто нештатной ситуации, человек, если он специально или нечаянно для этого не тренировался, имеет свойство действовать и соображать хуже, чем в спокойной обстановке. Тут и нужно-то было, казалось бы, на секунду остановиться и спокойно подумать, но в нештатной ситуации нет этой свободной секунды — ведь девочка плачет.

Иногда помогает нажать End. Если футер все-таки подгрузился, а подгрузка триггерится колесиком, то должно переместить ровно в конец, но без загрузки следующей порции.

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

Information

Rating
2,810-th
Registered
Activity