Dev community interviewboom
340 subscribers
94 photos
16 videos
2 files
25 links
Розробка софта, обмін досвідом, готуйся до технічних співбесід професійно з нами
Мій сайт, де ти можеш перевірити свої скіли https://interviewboom.com
Мій TikTok канал https://www.tiktok.com/@interviewboom
Download Telegram
Live stream finished (1 hour)
JavaScript особливості роботи з об'єктами в функціях

У нас є декілька прикладів коду. 1 і 2 приклади показують роботу з масивом, а 3 і 4 приклади з об'єктом.
У обох кейсах ми робимо оновлення для об'єкта і для масива, які передаються через аргументи в функцію update.
Спробуйте зрозуміти який буде результат, чи зміняться об'єкт або масив після кожного з 4 випадків?

Відповідь:
Для 1 прикладу коду зовнішній об'єкт "objectNumbers" не зміниться, не дивлячись на те що ми намагаємось його переасайнити в середині функції "update()" таким чином obj = {}.

Чому ж це ніяк не впливає на змінну objectNumbers? Оскільки об'єкти в JS передаються по reference в функції (не створюється новий об'єкт, а передається на нього посилання в пам'яті). А ми переприсвоюємо об'єкт obj і тим самим втрачаємо reference на зовнішній об'єкт objectNumbers. Тепер змінна obj рівносильна тому що ми створили новий об'єкт в функції update. І зв'язок з objectNumbers втрачений.

Для прикладу коду 2 ми замість переприсвоєння, міняємо властивість numbers в об'єкті obj, але так як ми раніше вже згадували вищє об'єкти в JS передаються по reference в функції, то будь які прямі маніпуляції з аргументом obj приведуть до мутації зовнішнього об'єкта objectNumbers, бо і obj і objectNumbers посилаються на одну і ту саму адресу в пам'яті.

Те саме відбувається і для прикладів 3 і 4 з масивом 'numbers'. Оскільки масиви теж передаються by reference в функції.
Dev community interviewboom
Photo
Висновок: обидва варіанти не юзабельні в продакшн коді. Потрібно завжди робити копію масива чи об'єкта в функції перед тим як робити будь які маніпуляції з ними. Це завжди робочий і 100% безпечний варіант в світі JS.

Fix:
Ті хто прочитав код уважно знайшли помилку, дякую що допомагаєте 🫡
Насправді spread оператор в JS робить shallow copy, тому правильний варіант буде зі spread оператором виглядати якось так:

const update = (obj) => {
const newObject = {
...obj,
numbers: [
...obj.numbers,
]
};
newObject.numbers.push(12);
return {};
}

Або все ж таки використати нативну функцію structuredClone()
👏1
Недавно був свідком як розробник перейшов з свого "нагрітого" і комфортного місця на галері в маленьку продуктову компанію, яка займається розробкою онлайн ігор.

Що може мотивувати розробників перейти працювати з великої, інтернаціональної української топ аутсорс компанії в маленький продукт?

- Більша ЗП, запропонували більше ніж зараз, тоді як в аутсорсі потрібно пройти через бюрократичні і довготривалі процедури, щоб підтвердити свою цінність і отримати аппруви на всіх рівнях. І це ще далеко не факт що у вас вийде.

- Підвищення, як шанс випробувати себе і ривок вгору по кар'єрним сходинкам. Але більша відповідальність, а відповідно і необхідність швидко навчатись і призвичаїтись до нових реалій.

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

- Отримати унікальний досвід роботи в продукт компаніях, це зазвичай більша динаміка, тут може бути і фінансова нестабільність оскільки менші масштаби і будь які коливання і падіння прибутковості буде набагато болісніше ніж у великих IT корпорацій, і менші дедлайни і більша відповідальність, бо немає зверху вас ніяких менеджерів, які будуть захищати вас перед замовником, і у разі незацікавленості ваших послуг можуть перекинути на інший проєкт. На продукті ви працюєте напряму з вашим бізнесом і ніяких компромісів, або тут і зараз або "гудбай". Але при цьому в разі успіху в продуктовій компанії можна як швидко впасти, так і швидко зростати як по кар'єрі так і по рівню зп. І отримати досвід як побудувати власну успішну компанію.

У будь якому випадку це ризик, в аутсорс середовищі ви завжди знаходитесь в більш стабільному і комфортному середовищі. Для тих, хто не любить "пригоди" типу овертаймів і постійні зміни вимог, то це найкращий варіант. Також аутсорс це хороший варіант коли вам потрібна стабільність особливо фінансова.
Але якщо у вас "кипить кров" і є бажання себе випробувати і вийти з зони комфорта, можливо навіть це вас приведе до дуже успішного майбутнього. Але тут все сильно залежить від вас особисто. Тому вибір за вами!
3
Коротко про лінкедін, і чому багатьох він просто бісить 👍
Dev community interviewboom
Друзі, чи варто питання в тесті перекласти на українську мову чи лишити на англійській?
Виходячи з результатів опитування англійська мова в тестах всіх влаштовує? Будемо одночасно і тести проходити і англійську мову вчити ) Бо перевага сильна в сторону інгліш, значить для більшості це не критично, але я всеодно підтримаю тих, хто голосував за українську, знаю що вас менше, але заради вас ми зробимо це 💪
2
Екстремальне програмування на практиці, або як можна за один момент випадково видалити код, який писав дуже довго і дуже тяжко, а потім знову повернути все до життя.
Дякую IDE WebStorm! Бо навіть після найнебезпечнішої команди "git reset --hard", ця IDE врятувала всю мою кодову базу, яку я навіть не встиг закомітити.
WebStorm все пам'ятає, бо зберігає local history всіх змін файлів, які були в проекті. І я просто зробив ролбек.
Цікаво а VSCode так вміє?
🤔3
AI Engineering - це не Vibe coding

Мені прийшла крута ідея, разом з вами попрактикувати AI Engineering і побудувати власну RAG-систему на LangChain фреймворку для генерації тестових питань. Суть в тому що я багато тестових питань пишу вручну, іноді беру ідеї з різних джерел, але потім роблю рефакторінг і покращення контексту і складності питання за допомогою Open AI API і спеціально тренованої для цього модельки (Fine-tune).
Але ця система не ефективна, хочу покращити якість і досягти більш релевантних питань, щоб більше автоматизувати процес і менше робити ручну валідацію.

- Розберемось що таке LangChain
- Як працює RAG-система
- Інтегруємо все з Open API модельками

Чи буде цікаво вам побачити як я налаштовую LangChain і RAG-систему з використанням векторної бази даних, це буде мій перший досвід у світ AI інжинирінгу. Будемо навчатись разом новим трендовим скілам?
10
Майбутнє розробників під загрозою? 🤔

Панове, ми рухаємось з вами в напрямку коди AI асистенти перетворять код проектів на black box. Це коли програмістам більше не потрібно читати і писати код взагалі, це умовно кажучи буде папочка "X", в якій лежать ісходніки. І всім буде однаково що там і як воно працює, і чи відповідає цей код software design patterns чи там "портянка" де все максимально НЕ читабельно і не оптимізовано.
Якщо щось не працює то вайбкодери просто попросять AI все пофіксити, і відповідно людина в якої нуль досвіду з програмування не зможе критично осмислити чи той код якісний, чи то гавно код. А клієнти будуть радо хлопати в долоні і казати ось як швидко вайбкодер мені запиляв задачку!
Ось така реальність вже наступає і відповідно дев комьюніті розділилось і зараз відбувається реально революція між олдами, які руцями будували все і проходили всі етапи самостійно і між "вайбкодерами", які зараз пишуть промпти і за них все автоматично робить AI асистент.

Давайте не забувати хто ми, і що всі AI асистенти навчені на кодовій базі GItHub і StackOverflow, і сліпо довіряти чомусь не можна, бо ми тоді перестаємо бути інженерами розробниками, давайте збережемо культуру і красу написання коду і будемо передавати ці знання новачкам, не дамо поколінню "вайберів" проміняти чистий код на "чорний ящик".

Доречі залив відос не про хайпову AI тему, а стараюсь поширювати навчальний контент і все ж таки слідувати принципу вивчи програмування, а потім юзай AI.
https://vt.tiktok.com/ZSm54MpV5/
👍4😁1
Channel name was changed to «Dev community interviewboom»
Одна з моїх мрій 😁

Хочу таку роботу, щоб мені ставили задачі на вивчення нових технологій, в тому числі AI engineering, або щось подібне, що зараз в тренді і швидко розвивається
😁2
Допоможіть обрати кращий варіант, суть в тому, щоб виводити ієрархію скілів по конкретній позиції і конкретному рівню, в коментах додам голосовалку 🙏
Нарешті розробили власний лого для нашої платформи! я знаю що він не ідеальний, ви просто не уявляєте скільки варіантів передивились 😀 Але зараз фокусуємось на технічній реалізації і маркетингу.
От якби займатись виключно проектом, стільки цікавих ідей є для функціоналу і для навчального контенту, готую цікавий матеріал про інтеграції AI і автоматизацію, все як обіцяв 🫡
👍1
Channel photo updated
Dev community interviewboom
Привіт, розібрати тему React Compiler? Бачу що є запит на цю тему, якщо цікаво спробую підготувати цікавий матеріал
Друзі, хочеться зробити швидко, і не заморочуватись, але так як ви тоді підтримали цю ідею розібрати React Compiler, я постараюсь зробити глибокий аналітичний матеріал, так як ви любите ) Докопаюсь до самих ісходніків і дати вам класні приклади, аби пояснити суть і структурувати матеріал. Work in Progress 🙌
4👍1
Друзі, питання, заморочитись над 2 частиною React Compiler і показати більше різних кейсів, щоб показати по якому алгоритму кампілятор робить оптимізацію? Або пройдемось по новій цікавій темі React hydration
Anonymous Poll
50%
2 частина по React Compiler under the hood
50%
Розібрати іншу тему React hydration