В общем случае случае (когда для объектов определена только функция isEqual, возвращающая true / false) вроде возможно же только решение с полным перебором за О(n^2). Для хотя бы О(n*log_2(n)) нужно как-то определить операцию сравнения между объектами, возвращающую больше/меньше/равно. Или определить какую-то внятную хеш-функцию Можно попробовать использовать JSON-представление объектов, но стандартный JSON.stringify не подойдёт, из-за того что будет давать разный хэш при разном порядке следования полей, например сравнение
вернёт false. Соответственно нужно написать свой. На циклические ссылки проще всего наверное проверять запуском стандартного JSON.stringify и выдавать таким объектам отдельный кэш. Потом по кэшу сложить объекты в уже стандартный Map или Object. Объекты с одинаковым кэшем потом проверять уже полным перебором. Если повезёт, то коллизий будет не очень много, и сложность будет близка к О(n).
Всё вместе это по-моему довольно длинная задача. Если вы ждали просто аккуратный полный перебор, то ОК.
Ну вот есть статистика, что если взять сотню чуваков со знанием алгоритмов, 70 из них не вылетят после первого полугода. А если случайную сотню - то 20. Почему так? Да хрен его знает, наверное, как-то связано.
У меня сейчас скорее не 70 и 20, а 90 и 80. Да и в целом довольно смешной выглядела ситуация в том же Яндексе в году 17-м, когда джуны умели решать алгоритмические задачи, а начальники и авторы многих вполне успешно работавших сервисов честно признавали, что нет. То есть умение решать алгоритмические задачи на собеседовании не очень коррелирует даже с умением решать алгоритмические задачи на работе. Потому что в одном случае нужно уметь быстро вспомнить одно из типовых решений, а в другом - медленно и вдумчиво выбрать из нагугленных решений. Да, кругозор полезен, чтобы как минимум знание что гуглить. И пока люди специально не готовились к алгособесам от них был толк. Они позволяли понять этот самый кругозор. Проблема началась, как только к собеседованиям стали массово готовится. Теперь они показывают только усидчивость.
Для массива произвольных объектов это в общем случае совсем не простая задача, если что. И скорее всего будет иметь сильно разные решения в реальной жизни, в зависимости от дополнительных условий.
Причём этот паровозик был уже даже в кинематографе описан (в фильме A Family Man, который российские надмозги перевели как Охотник с Уолл-стрит). Но всё равно, все продолжают превращать собеседование в ЕГЭ в поисках рок-звезд программирования.
А как-то автоматически строить такие toGRPCUser библиотекой нельзя? Ну напишет, это Copilot один раз, но читать-то это потом придётся десять раз и людям...
Строго говоря, в Windows ядро гибридно и с драйверами видеокарты она довольно давно умеет так делать. Но именно что гибридное, с ядровыми компонентами оно так не может.
В общем случае случае (когда для объектов определена только функция isEqual, возвращающая true / false) вроде возможно же только решение с полным перебором за О(n^2). Для хотя бы О(n*log_2(n)) нужно как-то определить операцию сравнения между объектами, возвращающую больше/меньше/равно. Или определить какую-то внятную хеш-функцию Можно попробовать использовать JSON-представление объектов, но стандартный JSON.stringify не подойдёт, из-за того что будет давать разный хэш при разном порядке следования полей, например сравнение
вернёт false. Соответственно нужно написать свой. На циклические ссылки проще всего наверное проверять запуском стандартного JSON.stringify и выдавать таким объектам отдельный кэш. Потом по кэшу сложить объекты в уже стандартный Map или Object. Объекты с одинаковым кэшем потом проверять уже полным перебором. Если повезёт, то коллизий будет не очень много, и сложность будет близка к О(n).
Всё вместе это по-моему довольно длинная задача. Если вы ждали просто аккуратный полный перебор, то ОК.
У меня сейчас скорее не 70 и 20, а 90 и 80. Да и в целом довольно смешной выглядела ситуация в том же Яндексе в году 17-м, когда джуны умели решать алгоритмические задачи, а начальники и авторы многих вполне успешно работавших сервисов честно признавали, что нет. То есть умение решать алгоритмические задачи на собеседовании не очень коррелирует даже с умением решать алгоритмические задачи на работе. Потому что в одном случае нужно уметь быстро вспомнить одно из типовых решений, а в другом - медленно и вдумчиво выбрать из нагугленных решений. Да, кругозор полезен, чтобы как минимум знание что гуглить. И пока люди специально не готовились к алгособесам от них был толк. Они позволяли понять этот самый кругозор. Проблема началась, как только к собеседованиям стали массово готовится. Теперь они показывают только усидчивость.
А наполнение сервиса слабо коррелирует с его техническим функционалом.
https://www.linkedin.com/sales/ssi
Для массива произвольных объектов это в общем случае совсем не простая задача, если что. И скорее всего будет иметь сильно разные решения в реальной жизни, в зависимости от дополнительных условий.
Причём этот паровозик был уже даже в кинематографе описан (в фильме A Family Man, который российские надмозги перевели как Охотник с Уолл-стрит). Но всё равно, все продолжают превращать собеседование в ЕГЭ в поисках рок-звезд программирования.
Справедливости ради, поддельные отзывы для поддельных резюме придумали сильно раньше LinkedIn. Подозреваю, что в бронзовом веке.
А как-то автоматически строить такие
toGRPCUser
библиотекой нельзя? Ну напишет, это Copilot один раз, но читать-то это потом придётся десять раз и людям...Строительство
Образование
Медицина, особенно средний и младший медицинский персонал
Полиция
Уход за пожилыми
Работа с детьми, особенно с детьми, имеющими особенности развития
Это если с ходу и без Гугла писать
Строго говоря, в Windows ядро гибридно и с драйверами видеокарты она довольно давно умеет так делать. Но именно что гибридное, с ядровыми компонентами оно так не может.
Ну, то есть миллионам своих клиентов они раскатывали обновление ядровых модулей ОС только по результатам автотестов? Великолепный план.
Меня налоговая сама уведомила емейлом
У вехнего div в Counter я забыл className={
counterClassName}
просто.css тег добавит фактически
в результирующий css
Вы про какой именно глубокий рефакторинг?
Про оборачиваение в styled или что?
Если про styled, то так тоже можно:
Это стилизует кнопки внутри компонента. Если вам нужно одну кнопку компонента, то нужно было так и писать. Будет соответственно
Примерно так
Там каскад по имени сгенерированного класса. Примерно как в css-modules.
И styled и linaria прекрасно работают с каскадностью.
Вот про загран по-подробнее
Как минимум такие же, но кирпичные типовые пятиэтажки и восьмиэтажки были лучше.
Ну и в целом современная массовая застройка на 5-7 этажей бывает более чем приличной.