Telegram Group & Telegram Channel
Пригадую, як у своїй першій компанії доводилось проходити різні “екзамени”, щоб отримати вищий рівень (ну і зарплату, само собою). Якогось цілком конкретного фреймворку для цього не було, тому це проходило більше у форматі звичайної розмови, нагадувало інтерв’ю в компанію, але з глибшими питаннями.

Так як я тоді не знав, до чого готуватись, то сам склав собі Trello-дошку з можливими темами по JS і загалом програмуванню. Та дошка потім пішла як спадщина по тімейтах.

Одна з таких тем називалась Hidden Classes. Насправді, крім таких співбесід, ніде більше не зустрічав цієї теми, але прикольно знати — дає краще уявлення про роботу JS і оптимізатора.

Ось коротко:

Так як в JS ми можемо динамічно створювати об’єкти, то це створює масу варіантів того, якої форми ці об’єкти набудуть (форма, тобто структура, назва полів та їх порядок). Але вже під час рантайму відбувається оптимізація і створюються ці Hidden Classes. На кожну форму об’єкта створюється прихований клас, який потім використовується двигуном, щоб швидше діставати значення.

Ось приклад, скопіював з LLM:


function Point(x, y) {
this.x = x; // creates hidden class A
this.y = y; // transitions to hidden class B
}

const p1 = new Point(1, 2); // uses class B
const p2 = new Point(3, 4); // reuses class B — fast

p2.z = 5; // creates a new hidden class — potential slowdown


Малоімовірно, що така оптимізація потрібна буде у відносно простих додатках. Але, наприклад, якби я працював у New Relic чи PostHog, Sentry, то, можливо, це б мало значення для великих об’ємів даних.

Ось цікава відповідь, щоб почитати: stackoverflow
А також стаття: v8.dev



group-telegram.com/thirdwavedev/145
Create:
Last Update:

Пригадую, як у своїй першій компанії доводилось проходити різні “екзамени”, щоб отримати вищий рівень (ну і зарплату, само собою). Якогось цілком конкретного фреймворку для цього не було, тому це проходило більше у форматі звичайної розмови, нагадувало інтерв’ю в компанію, але з глибшими питаннями.

Так як я тоді не знав, до чого готуватись, то сам склав собі Trello-дошку з можливими темами по JS і загалом програмуванню. Та дошка потім пішла як спадщина по тімейтах.

Одна з таких тем називалась Hidden Classes. Насправді, крім таких співбесід, ніде більше не зустрічав цієї теми, але прикольно знати — дає краще уявлення про роботу JS і оптимізатора.

Ось коротко:

Так як в JS ми можемо динамічно створювати об’єкти, то це створює масу варіантів того, якої форми ці об’єкти набудуть (форма, тобто структура, назва полів та їх порядок). Але вже під час рантайму відбувається оптимізація і створюються ці Hidden Classes. На кожну форму об’єкта створюється прихований клас, який потім використовується двигуном, щоб швидше діставати значення.

Ось приклад, скопіював з LLM:


function Point(x, y) {
this.x = x; // creates hidden class A
this.y = y; // transitions to hidden class B
}

const p1 = new Point(1, 2); // uses class B
const p2 = new Point(3, 4); // reuses class B — fast

p2.z = 5; // creates a new hidden class — potential slowdown


Малоімовірно, що така оптимізація потрібна буде у відносно простих додатках. Але, наприклад, якби я працював у New Relic чи PostHog, Sentry, то, можливо, це б мало значення для великих об’ємів даних.

Ось цікава відповідь, щоб почитати: stackoverflow
А також стаття: v8.dev

BY Розробка третьої хвилі




Share with your friend now:
group-telegram.com/thirdwavedev/145

View MORE
Open in Telegram


Telegram | DID YOU KNOW?

Date: |

"He has kind of an old-school cyber-libertarian world view where technology is there to set you free," Maréchal said. Pavel Durov, Telegram's CEO, is known as "the Russian Mark Zuckerberg," for co-founding VKontakte, which is Russian for "in touch," a Facebook imitator that became the country's most popular social networking site. "The argument from Telegram is, 'You should trust us because we tell you that we're trustworthy,'" Maréchal said. "It's really in the eye of the beholder whether that's something you want to buy into." But the Ukraine Crisis Media Center's Tsekhanovska points out that communications are often down in zones most affected by the war, making this sort of cross-referencing a luxury many cannot afford. That hurt tech stocks. For the past few weeks, the 10-year yield has traded between 1.72% and 2%, as traders moved into the bond for safety when Russia headlines were ugly—and out of it when headlines improved. Now, the yield is touching its pandemic-era high. If the yield breaks above that level, that could signal that it’s on a sustainable path higher. Higher long-dated bond yields make future profits less valuable—and many tech companies are valued on the basis of profits forecast for many years in the future.
from id


Telegram Розробка третьої хвилі
FROM American