Да, только это не гарантирует адекватную работу в команде, правильную декомпозицию задач, понимание требований заказчика и прочие синьорские софт-скилы. А также общую управляемость, адекватность и профессиональное чутье.
Все-так)) На с Ваши решением следующие строки тоже будут валидны:
}{, ][, )(
Ожидается такой поток: {[<()>]}, и проверять нужно было именно правильность открытия-закрытия))
В любом случае, я получил оценку «procedure inefficient» за реализацию и был послан hr далеко и надолго)
Ох, да это же мой кейс.
Много чего делал за 8 лет разработки и буквально недавно не прошел лайвкодинг на проверке открывающих закрывающих скобочек в потоке.
Нужно когда требуется выжать перформанс, т.к. оно работает ГОРАЗДО быстрее ExpandoObject и dynamic.
Но не уверен, что у автора коммента стояла такая задача)) Поэтому соглашусь про ExpandoObject)
Отличная статья!
Один вопрос — когда есть несколько процессов w3wp одного веб приложения (веб-сад), как Вы разграничиваете от какого из инстансов прилетает метрика?
например загрузка по CPU?
Насколько я знаю, в Metrics.NET есть возможность собирать данные с внутренних счетчиков производительности, но если процессов несколько, то и инстансов счетчиков будет несколько (w3wp, w3wp#1), а библиотека будет брать данные только с первого счетчика (w3wp).
А я основной профит на таких конференциях получаю вовсе не от докладов, прослушать доклады — половина дела. Не менее интересен опыт участников, разговоры между докладами за чашкой кофе и потенциально полезные знакомства с качественными специалистами. Кстати, наличие еды на конференции крайне плодотворно влияет на открытость людей к общению.
В языке C нет уровня абстракции, отделяющего управление памятью от программы, который имеется в JavaScript.
На самом деле есть. Память для локальных переменных выделяется на стеке в прологе функции и удаляется в эпилоге. Но кучей мы управляем вручную, это да.
Вместо этого программист работает с памятью напрямую, имея возможность загружать данные из памяти и сохранять их в памяти.
Такое выражение куда больше подходит для описания ассемблера, нежели Си.
}{, ][, )(
Ожидается такой поток: {[<()>]}, и проверять нужно было именно правильность открытия-закрытия))
В любом случае, я получил оценку «procedure inefficient» за реализацию и был послан hr далеко и надолго)
Много чего делал за 8 лет разработки и буквально недавно не прошел лайвкодинг на проверке открывающих закрывающих скобочек в потоке.
Тяжело понимать контекст.
(Пираты перевели как «Золушок»)
ru.wikipedia.org/wiki/%D0%9D%D0%BE%D0%BA%D0%B4%D0%B0%D1%83%D0%BD_(%D1%84%D0%B8%D0%BB%D1%8C%D0%BC,_2005)
Но не уверен, что у автора коммента стояла такая задача)) Поэтому соглашусь про ExpandoObject)
Один вопрос — когда есть несколько процессов w3wp одного веб приложения (веб-сад), как Вы разграничиваете от какого из инстансов прилетает метрика?
например загрузка по CPU?
Насколько я знаю, в Metrics.NET есть возможность собирать данные с внутренних счетчиков производительности, но если процессов несколько, то и инстансов счетчиков будет несколько (w3wp, w3wp#1), а библиотека будет брать данные только с первого счетчика (w3wp).
Алисы -> Алиасы
Как говорится, по себе людей не судят.
Прям как с питоном ситуация.
На самом деле есть. Память для локальных переменных выделяется на стеке в прологе функции и удаляется в эпилоге. Но кучей мы управляем вручную, это да.
Такое выражение куда больше подходит для описания ассемблера, нежели Си.