Измерением времени на выполнение операций.
Если просто то так:
1. Записываете в переменную const startTime = performance.now()
2. Выполняете операции
3. Смотрите на performance.now() — startTime
document.querySelectorAll('button').forEach(button => {
button.addEventListener('click', function () {
// по клику вызывается функция со значением кнопки в качестве параметра
calc(this.value)
})
})
Не стоит так делать в случае, если элементов много, это не производительно.
У обычного человека есть время что-то изучать только на работе.
Не соглашусь, у меня и у моих коллег находится время изучать новое и еще писать статьи :)
Дома, ясное дело, остается времени сгонять катку в доту, поесть и поспать.
У всех разные увлечения, я в доту не играю.
потому что на работе ты слишком много времени будешь уделять вещам, которые тебя никак не развивают
Жаль, что у вас сложился такой опыт.
Я сам стараюсь развиваться и в рабочее и вне рабочего времени, как и мои коллеги.
Итого, люди разные, с разными возможностями и мотивацией, так что не стоит под «обычных людей» подписывать всех, кто не имеет возможности развиваться на работе и у кого нет желания развиваться вне работы.
Не соглашусь.
Angular предоставляет инструменты реализующие общепринятные паттерны.
Если приглядеться, то Angular очень похож на тот же Spring boot из java.
Конечно, если нормально не изучив язык программирования сразу браться за angular, то знать будешь только angular.
Но если хорошо знать основы ЯП, паттерны проектирования, структуры данных, алгоритмы, тогда любые фреймворки/библиотеки не будут вызывать сложностей в изучении и понимании.
Возможно вы имели ввиду parallel multi instance?
Если так, то да, в моей задаче как раз пришлось это применять.
В процессе у меня есть список сущностей, которые нужно обработать внешним обработчиком.
Для этого я создал parallel multi instance external task и указал у него параметры Collection и Element variable. Collection — в данном случае, это переменная в контексте инстанса, которая хранит массив id пользователей. Element variable — название переменной в контексте внешней задачи (ее получит внешний обработчик).
При запуске процесса создается столько external tasks сколько элементов в у казанном Collection.
Ну и теперь собственно ответ на ваш вопрос.
Когда внешний обработчик выполнил задачу, он записывает в ответ переменную вида «result[$userId]». userId — это тот самый Element variable, который в моем случае является уникальным. Таким образом, на каждый результат external task создается уникальная переменная в контексте инстанса, ничего умнее я к сожалению не придумал :(
Спасибо!
Действительно зря обобщил одним термином «обфускация».
Цели разные и результат соответственно, минификация при обфускации это скорее побочный эффект.
Во-первых, я не нашел ни одного объяснения, почему нельзя делать функции (кроме геттеров и сеттеров) в DTO
Data Transfer Object подразумевает структуры, которые можно прозрачно передавать между системами. Но функции не поддаются сериализации, соот-но прозрачность нарушается.
Поэтому меня может многое не устроить на любом месте работы
Не понял взаимосвязь того, что вы работаете на себя и того, что вас может многое не устроить на любом месте работы? В чем корреляция?
Те кто хотят получить опыт и научиться, будут скорее смотреть на других, делать как все или вышестоящий
Сейчас куча информации в интернете и передача знаний из уст в уста уже не является основным способом обучения. Любой разработчик может узнать в интернете что-то новое и применить в своей работе.
А если нужен отдел инноваций
Инновации придумывают разработчики с высоким уровнем знаний, большинству остается только брать эти инновации и использовать.
Обязательно реализуйте механизм закрытия потоков, они блокируют активацию новой версии service worker. Помимо того, чтобы закрывать поток при закрытии вкладки я еще сделал закрытие всех потоков через интервал.
Если просто то так:
1. Записываете в переменную const startTime = performance.now()
2. Выполняете операции
3. Смотрите на performance.now() — startTime
habr.com/ru/company/tinkoff/blog/489230
Вот тут можете найти еще немного информации по измерению производительности в браузере
document.querySelectorAll('button').forEach(button => {
button.addEventListener('click', function () {
// по клику вызывается функция со значением кнопки в качестве параметра
calc(this.value)
})
})
Не стоит так делать в случае, если элементов много, это не производительно.
Не соглашусь, у меня и у моих коллег находится время изучать новое и еще писать статьи :)
У всех разные увлечения, я в доту не играю.
Жаль, что у вас сложился такой опыт.
Я сам стараюсь развиваться и в рабочее и вне рабочего времени, как и мои коллеги.
Итого, люди разные, с разными возможностями и мотивацией, так что не стоит под «обычных людей» подписывать всех, кто не имеет возможности развиваться на работе и у кого нет желания развиваться вне работы.
Angular предоставляет инструменты реализующие общепринятные паттерны.
Если приглядеться, то Angular очень похож на тот же Spring boot из java.
Конечно, если нормально не изучив язык программирования сразу браться за angular, то знать будешь только angular.
Но если хорошо знать основы ЯП, паттерны проектирования, структуры данных, алгоритмы, тогда любые фреймворки/библиотеки не будут вызывать сложностей в изучении и понимании.
Если так, то да, в моей задаче как раз пришлось это применять.
В процессе у меня есть список сущностей, которые нужно обработать внешним обработчиком.
Для этого я создал parallel multi instance external task и указал у него параметры Collection и Element variable. Collection — в данном случае, это переменная в контексте инстанса, которая хранит массив id пользователей. Element variable — название переменной в контексте внешней задачи (ее получит внешний обработчик).
При запуске процесса создается столько external tasks сколько элементов в у казанном Collection.
Ну и теперь собственно ответ на ваш вопрос.
Когда внешний обработчик выполнил задачу, он записывает в ответ переменную вида «result[$userId]». userId — это тот самый Element variable, который в моем случае является уникальным. Таким образом, на каждый результат external task создается уникальная переменная в контексте инстанса, ничего умнее я к сожалению не придумал :(
Действительно зря обобщил одним термином «обфускация».
Цели разные и результат соответственно, минификация при обфускации это скорее побочный эффект.
Data Transfer Object подразумевает структуры, которые можно прозрачно передавать между системами. Но функции не поддаются сериализации, соот-но прозрачность нарушается.
Лимитировать повторение запросов нужно обязательно.
UPD: хотя оригинальная формулировка мне нравилась больше :(
Не понял взаимосвязь того, что вы работаете на себя и того, что вас может многое не устроить на любом месте работы? В чем корреляция?
Сейчас куча информации в интернете и передача знаний из уст в уста уже не является основным способом обучения. Любой разработчик может узнать в интернете что-то новое и применить в своей работе.
Инновации придумывают разработчики с высоким уровнем знаний, большинству остается только брать эти инновации и использовать.
Подробнее можно посмотреть тут:
github.com/shoom3301/react-testing-pyramid/blob/master/src/store/actions/quotes.ts
github.com/shoom3301/angular-testing-pyramid/blob/master/src/store/actions/quotes.action.ts
Критикую — предлагаю:
Больше года назад, в tinkoff делал конкурс (для статьи на N+1) и одно из заданий было нарисовать что-нибудь в консоли или сделать интерактивную игру.
Даже пример остался: codepen.io/anon/pen/MQEJZV?editors=1111
В то время почему то не зашло.