#думки_вголос
З кожним роком стає усе важче боротися з "гімно мале"-mentality. Ну тобто коли ти весь такий поважний і вкритий мохом дивишся на умовних 25-річних синьйорів і бухтиш собі під носа "ну який ти в сраку синйьор, ти ж жизні не видів, де там того синьйора взяти".
Проте накладати власний досвід на чужий — часто справа невдячна. Бо це я в 25 і на мідла не стягував, адже почав в 24. А якщо людина почала кар'єру в дев'ятнадцять років, і при цьому сумлінно працювала, в не тільки тасочки закривала, то чому вона не може здобути за цей час необхідний досвід? Може. І здобуде.
Так, це буде не такий багатий і насичений досвід, як у мене, до прикладу, але і я не два роки в розробці вже. Це лише питання часу.
І взагалі, чому мати дітей в 22 можна, а бути синьйором в 25 не можна? Отож.
Головне при цьому бути не "паперовим" синьйорами, і розуміти, що це не лише личка, в й відповідальність.
Гарних вихідних!
@babichdev
З кожним роком стає усе важче боротися з "гімно мале"-mentality. Ну тобто коли ти весь такий поважний і вкритий мохом дивишся на умовних 25-річних синьйорів і бухтиш собі під носа "ну який ти в сраку синйьор, ти ж жизні не видів, де там того синьйора взяти".
Проте накладати власний досвід на чужий — часто справа невдячна. Бо це я в 25 і на мідла не стягував, адже почав в 24. А якщо людина почала кар'єру в дев'ятнадцять років, і при цьому сумлінно працювала, в не тільки тасочки закривала, то чому вона не може здобути за цей час необхідний досвід? Може. І здобуде.
Так, це буде не такий багатий і насичений досвід, як у мене, до прикладу, але і я не два роки в розробці вже. Це лише питання часу.
І взагалі, чому мати дітей в 22 можна, а бути синьйором в 25 не можна? Отож.
Головне при цьому бути не "паперовим" синьйорами, і розуміти, що це не лише личка, в й відповідальність.
Гарних вихідних!
@babichdev
🔥42❤18
#css_in_action
Що робити, коли в DOM зʼявляються небажані обгортки, які ми не можемо прибрати, і які ламають нам розмітку? Звичайно ж, перша думка — надавати по рукам автору такого коду, але життя бентежне, та й іноді ці обгортки мають сенс, але для якоїсь логіки, про яку ми можемо бути й не в курсі.
Однак тут на поміч спішить таке значення властивості
Спробувати це можна на дуже простому прикладі:
Якщо прибрати у баті
В такий спосіб можна "ігнорувати" обгортки, а що найцікавіше — так можна відвозити до діда не тільки онуків, а й правнуків, праправнуків і так далі, докидід не помре дозволяє рендер-рушій.
От зараз би пасувало поставити цьому допису вогник 🔥 і переслати його колезі.
Але є й нюанси. По-перше, такий елемент зникає з рендер-дерева повністю, лишаючись лише в DOM, але для користувача його ніби не існує взагалі. Він не працює з фокусом, і може повністю зникнути з поля зору екранних читалок.
Тож, підсумуємо:
Але він не всесильний. Не варто застосовувати його до семантично важливих елементів — таких як
Зате якщо перед тобою безглуздий div, що тільки заважає верстці й не несе жодного смислового навантаження — сміливо став
MDN
@babichdev
***
А збір на Mavic для 184 навчального центру, між іншим, вкляк. Тож якщо ви не тільки поставите вогник цьому допису, а й закинете пʼять гривень на збір, цей день стане набагато світлішим. Дякую всім і цьом вам у лобіка.
https://send.monobank.ua/jar/AeXQ6YRf2X
5375411202918178
Що робити, коли в DOM зʼявляються небажані обгортки, які ми не можемо прибрати, і які ламають нам розмітку? Звичайно ж, перша думка — надавати по рукам автору такого коду, але життя бентежне, та й іноді ці обгортки мають сенс, але для якоїсь логіки, про яку ми можемо бути й не в курсі.
Однак тут на поміч спішить таке значення властивості
display, як contents. Якщо спробувати пояснити на пальцях, то при побудові бравзером лейауту, такий елемент буде ігноруватися (але саме блокові стилі, декоративні ж лишаються), і його дочірні елементи будуть поводитися так, ніби вони належать до батьківського елемента їхнього батька. Ну тобто display: contents по факту відвозить своїх дітей до діда. А сам на риболовлю десь тікає.Спробувати це можна на дуже простому прикладі:
<div class="дід">
<p class="дядько">1</p>
<div class="батя">
<p class="дитина">2</p>
<p class="дитина">3</p>
<p class="дитина">4</p>
</div>
</div>
.дід {
outline: 1px solid blue;
display: grid;
grid-template-columns: 1fr 2fr 1fr 2fr;
width: 400px;
}
.батя {
display: contents;
}
.дитина {
outline: 1px solid green;
}Якщо прибрати у баті
display: contents, то діти зібʼються в купку, і ніхто ні на яку риболовлю не поїде. А от якщо не прибирати, то дітиська будуть поводитись так, як скаже дід.В такий спосіб можна "ігнорувати" обгортки, а що найцікавіше — так можна відвозити до діда не тільки онуків, а й правнуків, праправнуків і так далі, доки
<div class="дід">
<p class="дядько">1</p>
<div class="батя">
<p class="дитина">2</p>
<div class="батя">
<p class="дитина">3</p>
<p class="дитина">4</p>
</div>
</div>
</div>
Але є й нюанси. По-перше, такий елемент зникає з рендер-дерева повністю, лишаючись лише в DOM, але для користувача його ніби не існує взагалі. Він не працює з фокусом, і може повністю зникнути з поля зору екранних читалок.
Тож, підсумуємо:
display: contents — це чудовий спосіб позбутися зайвих обгорток, не змінюючи DOM.Але він не всесильний. Не варто застосовувати його до семантично важливих елементів — таких як
nav, section, article, або будь-яких, що мають роль чи взаємодіють із фокусом. Для бравзера й допоміжних технологій такий елемент просто зникне з рендер-дерева, і це може зашкодити доступності чи структурі.Зате якщо перед тобою безглуздий div, що тільки заважає верстці й не несе жодного смислового навантаження — сміливо став
display: contents і відправляй його на риболовлю. Він свою справу зробив.MDN
@babichdev
***
А збір на Mavic для 184 навчального центру, між іншим, вкляк. Тож якщо ви не тільки поставите вогник цьому допису, а й закинете пʼять гривень на збір, цей день стане набагато світлішим. Дякую всім і цьом вам у лобіка.
https://send.monobank.ua/jar/AeXQ6YRf2X
5375411202918178
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥108❤15👏2
#css_in_action
Ну що, поцентруємо трошки div? У мене тут вчора в Threads попросили, то як я можу відмовити? А то все архітектури, гуд інаф коде. Одним словом, донт пуш зе хорсес, треба й ділом зайнятись. Тож…
ЦЕНТРУЄМО ГОРИЗОНТАЛЬНО
Margin
Працює, коли елемент має обмежену ширину. Не працює для інлайнових елементів.
Для інлайнових блоків
Класичний спосіб для вирівнювання inline або inline-block елементів. Батьківський text-align впливає лише на інлайн-контент.
Flexbox
Найстабільніший спосіб для X-центрування. Важливо памʼятати, що align-items за замовченням stretch, тому вертикаль може "роздувати".
Grid
Просто, сучасно, стильно, молодіжно.
Absolute + transform
100% надійність. Потрібен position: absolute|fixed. Підтримка inset-inline чудова у всіх сучасних бравзерах (навіть Safari).
justify-self
Працює у Grid. Не працює в Flex (бо цим керує сам контейнер). Працює поза grid в блочних контекстах, але тільки в Chrome та Edge. Firefox і Safari цю поведінку ігнорують, сподіваюсь, тимчасово.
ЦЕНТРУЄМО ВЕРТИКАЛЬНО
Flexbox
Працює за умови flex-direction: row. Важливо памʼятати, що потрібна висота контейнера, інакше нічого не відцентрується.
Grid
Просто, сучасно, стильно, молодіжно.
Absolute + transform
Це ж було вже.
align-self
Працює поки лише всередині flex та grid. Всередині flex це вертикально, якщо flex-direction: row, якщо це column, то вирівнювання буде по горизонталі. Очікується підтримка в блочних контекстах.
Table-cell
Дідівський спосіб, не позбавлений недоліків. Багатьох недоліків.
ЦЕНТРУЄМО ЦЕНТРАЛЬНО
Flexbox
Один із найнадійніших способів. Потрібна висота в контейнера.
Grid
Найменше коду. Повна підтримка. Але потрібен grid.
Absolute + transform
Найнадійніший варіант з абсолютним позиціонуванням. inset — скорочений запис для top/right/bottom/left усіх разом. Боже, як я мріяв колись про цю властивість…
place-self
Працює тільки всередині grid. Поза ним — частково підтримується в Chromium, але не в Safari чи Firefox.
---
Ну от якось так можна відцентрувати div в липні місяці 2025 року. Можливо ви знаєте ще якийсь чудернацький спосіб, то обовʼязково розкажіть про нього в коментарях. До речі, приєднуйтесь до чату, як іще будемо ділитися глупими мемами про джаваскрипт?
MDN: CSS Box Alignment Module Level 3
@babichdev
Ну що, поцентруємо трошки div? У мене тут вчора в Threads попросили, то як я можу відмовити? А то все архітектури, гуд інаф коде. Одним словом, донт пуш зе хорсес, треба й ділом зайнятись. Тож…
ЦЕНТРУЄМО ГОРИЗОНТАЛЬНО
Margin
.el {
margin: 0 auto;
width: ...;
}Працює, коли елемент має обмежену ширину. Не працює для інлайнових елементів.
Для інлайнових блоків
.parent { text-align: center; }
.el { display: inline-block; }Класичний спосіб для вирівнювання inline або inline-block елементів. Батьківський text-align впливає лише на інлайн-контент.
Flexbox
.parent {
display: flex;
justify-content: center;
}Найстабільніший спосіб для X-центрування. Важливо памʼятати, що align-items за замовченням stretch, тому вертикаль може "роздувати".
Grid
.parent {
display: grid;
justify-items: center;
}Просто, сучасно, стильно, молодіжно.
Absolute + transform
.el {
position: absolute;
left: 50%;
// або
inset-inline: 50%;
transform: translateX(-50%);
}100% надійність. Потрібен position: absolute|fixed. Підтримка inset-inline чудова у всіх сучасних бравзерах (навіть Safari).
justify-self
.el { justify-self: center }Працює у Grid. Не працює в Flex (бо цим керує сам контейнер). Працює поза grid в блочних контекстах, але тільки в Chrome та Edge. Firefox і Safari цю поведінку ігнорують, сподіваюсь, тимчасово.
ЦЕНТРУЄМО ВЕРТИКАЛЬНО
Flexbox
.parent {
display: flex;
align-items: center;
height: ...;
}Працює за умови flex-direction: row. Важливо памʼятати, що потрібна висота контейнера, інакше нічого не відцентрується.
Grid
.parent {
display: grid;
align-items: center;
}Просто, сучасно, стильно, молодіжно.
Absolute + transform
.el {
position: absolute;
top: 50%;
// або
inset-block: 50%;
transform: translateY(-50%);
}Це ж було вже.
align-self
.el { align-self: center; }Працює поки лише всередині flex та grid. Всередині flex це вертикально, якщо flex-direction: row, якщо це column, то вирівнювання буде по горизонталі. Очікується підтримка в блочних контекстах.
Table-cell
.parent {
display: table-cell;
vertical-align: middle;
}Дідівський спосіб, не позбавлений недоліків. Багатьох недоліків.
ЦЕНТРУЄМО ЦЕНТРАЛЬНО
Flexbox
.parent {
display: flex;
align-items: center;
justify-content: center;
height: ...;
}Один із найнадійніших способів. Потрібна висота в контейнера.
Grid
.parent {
display: grid;
place-items: center;
}Найменше коду. Повна підтримка. Але потрібен grid.
Absolute + transform
.el {
position: absolute;
top: 50%;
left: 50%;
// або
inset: 50%;
transform: translate(-50%, -50%);
}Найнадійніший варіант з абсолютним позиціонуванням. inset — скорочений запис для top/right/bottom/left усіх разом. Боже, як я мріяв колись про цю властивість…
place-self
.el { place-self: center; }Працює тільки всередині grid. Поза ним — частково підтримується в Chromium, але не в Safari чи Firefox.
---
Ну от якось так можна відцентрувати div в липні місяці 2025 року. Можливо ви знаєте ще якийсь чудернацький спосіб, то обовʼязково розкажіть про нього в коментарях. До речі, приєднуйтесь до чату, як іще будемо ділитися глупими мемами про джаваскрипт?
MDN: CSS Box Alignment Module Level 3
@babichdev
❤49🔥26
#партнерський_допис
Товариство, триває набір на курс «Дизайн архітектури програмного забезпечення» від Олександра Савченка в Fwdays Academy!
Старт курсу — 28 липня
Тривалість — 3 тижні
Формат — живі сесії + практичні завдання
Вартість — від 10 800 грн
Програма курсу охоплює:
Повний процес проєктування архітектури:
від аналізу функціональних і нефункціональних вимог до оцінки, вдосконалення та адаптації наявних рішень.
Практики сучасної розробки:
Architectural Kata з використанням AI, інтеграційний та Brownfield-дизайн, підхід через ADR.
Роботу з різними аспектами:
ASR/ADR, governance, AI-сценарії, проєктування інфраструктури й платформ, реліз-менеджмент.
Цей курс для тих, хто хоче впевнено працювати з архітектурою складних систем у реальних умовах. І я його вам раджу, як я радитиму все від Fwdays Academy, майте на увазі ;)
🔔 Реєстрація відкрита за посиланням:
🌐 https://bit.ly/4lYobfM
Товариство, триває набір на курс «Дизайн архітектури програмного забезпечення» від Олександра Савченка в Fwdays Academy!
Старт курсу — 28 липня
Тривалість — 3 тижні
Формат — живі сесії + практичні завдання
Вартість — від 10 800 грн
Програма курсу охоплює:
Повний процес проєктування архітектури:
від аналізу функціональних і нефункціональних вимог до оцінки, вдосконалення та адаптації наявних рішень.
Практики сучасної розробки:
Architectural Kata з використанням AI, інтеграційний та Brownfield-дизайн, підхід через ADR.
Роботу з різними аспектами:
ASR/ADR, governance, AI-сценарії, проєктування інфраструктури й платформ, реліз-менеджмент.
Цей курс для тих, хто хоче впевнено працювати з архітектурою складних систем у реальних умовах. І я його вам раджу, як я радитиму все від Fwdays Academy, майте на увазі ;)
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👏4🔥1
#про_співбесіди
Сир, сирок і race condition
Ви шукаєте "сирок", а бачите "сир". Ні, це не випадок в "Сільпо", а цілком собі питання на технічному інтервʼю.
Я практично повністю відмовився від запитань в дусі "Що таке Х?" на співбесідах, як комерційних, так і публічних. Натомість перейшов до так званих "ситуаційних" завдань, коли я просто описую якусь ситуацію, в рамках якої можна проговорити кілька різних аспектів — і технічних, і не тільки.
В рамках однієї з таких ситуацій я прийшов до питання, яке мені надзвичайно подобається, бо не ставить питання напряму, а дозволяє зрозуміти, як людина в принципі розбирається в проблемах.
Отже, питання:
Відповіді, звичайно, я отримую доволі різноманітні, проте серед найчастіших є одна умовно невірна, і одна — вірна.
Умовно невірна — це щось там з кешуванням даних, те, як ми обробляємо запити, додаємо дані в стейт менеджменті і так далі. Чому вона для мене умовно невірна? Бо заскладна. Вона містить забагато припущень, про які зазвичай попередньо мова не йде, і може призвести до каскаду нових запитань, до яких ви можете бути не готові.
А умовно правильна — дуже проста і очевидна, бо в питанні йде мова про race condition при запитах. Це доволі поширена ситуація, особливо якщо запити відбуваються в умовах нестабільного або повільного зʼєднання.
Схема проста: запит на “сир” пішов першим, але довго обробляється. Тим часом користувач встиг дописати “-ок”, і запит на “сирок” пішов другим — але відповів швидше. У результаті інтерфейс спочатку показує правильний список, а потім перезаписується старішою, але пізнішою відповіддю. Особливо легко це проґавити, якщо показується лише один індикатор завантаження.
Рішення саме цієї задачі надзвичайно просте — необхідно скасовувати попередні запити при відправці нових. Зазвичай для цього використовується AbortController.
А для заохочення автора писати цікаві дописи зазвичай використовуються вподобайки
Іноді я чую у відповідь про Promise.race — так от, в цій ситуації він нам не підходить з багатьох причин. Наприклад, він зарезолвить перший-ліпший запит, а інші відкине. А ще він повинен знати про усі запити наперед, чого в нашій ситуації передбачити неможливо.
До речі, дехто з вас може згадати і про debounce, але конкретно в цій задачі він теж недоречний. В самій ситуації, яку я використовував на співбесідах, він, до речі, фігурує, але за дещо інших умов.
Тож моя порада: відповідаючи на подібні запитання, не ускладнюйте собі життя, не пропонуйте рішень, які передбачають додаткові неозвучені умови, а виходьте лише з того, що обговорено. Якщо відчуваєте, що вам бракує вхідних даних — ліпше запитайте, уточніть.
Запамʼятайте — прості рішення простіше обґрунтовувати, а ускладнити їх завжди можна встигнути. А от якщо ви відразу зайдете зі складного, то, швидше за все, просто закопаєтесь на місці.
Тож, якщо ваш колега знову "пакращить" відповідь на інтервʼю — покажіть йому цей кейс ;)
До речі, чи були у вас випадки на співбесідах, коли ви на просте питання давали занадто кучеряву й складну відповідь? Діліться смачненькими фейлами!
@babichdev
Сир, сирок і race condition
Ви шукаєте "сирок", а бачите "сир". Ні, це не випадок в "Сільпо", а цілком собі питання на технічному інтервʼю.
Я практично повністю відмовився від запитань в дусі "Що таке Х?" на співбесідах, як комерційних, так і публічних. Натомість перейшов до так званих "ситуаційних" завдань, коли я просто описую якусь ситуацію, в рамках якої можна проговорити кілька різних аспектів — і технічних, і не тільки.
В рамках однієї з таких ситуацій я прийшов до питання, яке мені надзвичайно подобається, бо не ставить питання напряму, а дозволяє зрозуміти, як людина в принципі розбирається в проблемах.
Отже, питання:
У вас є табличка з пошуком, і якщо в пошуку спочатку набрати "сир", а потім швиденько дописати "-ок", то таблиця усе одно відображатиме список і сирів і сирків. Чому так може бути?
Відповіді, звичайно, я отримую доволі різноманітні, проте серед найчастіших є одна умовно невірна, і одна — вірна.
Умовно невірна — це щось там з кешуванням даних, те, як ми обробляємо запити, додаємо дані в стейт менеджменті і так далі. Чому вона для мене умовно невірна? Бо заскладна. Вона містить забагато припущень, про які зазвичай попередньо мова не йде, і може призвести до каскаду нових запитань, до яких ви можете бути не готові.
А умовно правильна — дуже проста і очевидна, бо в питанні йде мова про race condition при запитах. Це доволі поширена ситуація, особливо якщо запити відбуваються в умовах нестабільного або повільного зʼєднання.
Схема проста: запит на “сир” пішов першим, але довго обробляється. Тим часом користувач встиг дописати “-ок”, і запит на “сирок” пішов другим — але відповів швидше. У результаті інтерфейс спочатку показує правильний список, а потім перезаписується старішою, але пізнішою відповіддю. Особливо легко це проґавити, якщо показується лише один індикатор завантаження.
Рішення саме цієї задачі надзвичайно просте — необхідно скасовувати попередні запити при відправці нових. Зазвичай для цього використовується AbortController.
Іноді я чую у відповідь про Promise.race — так от, в цій ситуації він нам не підходить з багатьох причин. Наприклад, він зарезолвить перший-ліпший запит, а інші відкине. А ще він повинен знати про усі запити наперед, чого в нашій ситуації передбачити неможливо.
До речі, дехто з вас може згадати і про debounce, але конкретно в цій задачі він теж недоречний. В самій ситуації, яку я використовував на співбесідах, він, до речі, фігурує, але за дещо інших умов.
Тож моя порада: відповідаючи на подібні запитання, не ускладнюйте собі життя, не пропонуйте рішень, які передбачають додаткові неозвучені умови, а виходьте лише з того, що обговорено. Якщо відчуваєте, що вам бракує вхідних даних — ліпше запитайте, уточніть.
Запамʼятайте — прості рішення простіше обґрунтовувати, а ускладнити їх завжди можна встигнути. А от якщо ви відразу зайдете зі складного, то, швидше за все, просто закопаєтесь на місці.
Тож, якщо ваш колега знову "пакращить" відповідь на інтервʼю — покажіть йому цей кейс ;)
До речі, чи були у вас випадки на співбесідах, коли ви на просте питання давали занадто кучеряву й складну відповідь? Діліться смачненькими фейлами!
@babichdev
🔥72❤27👏8
#нове_відео
Хто такі синьйори?
Цей подкаст чекав на свій зірковий час ще із січня, і ось нарешті ви маєте змогу послухати, як ми з Нікітою Галкіним розбираємо тему, що давно потребувала відвертої розмови. Що таке синьйорність? У чому вона проявляється? Як не сплутати її з фреймворковою експертизою? І що взагалі чекає після?
Ходіть дивитися і приємного перегляду!
Хто такий Senior Software Developer? | Подкаст з Нікітою Галкіним
І не забудьте поширити це відео серед усіх родичів і знайомих.
Хто такі синьйори?
Цей подкаст чекав на свій зірковий час ще із січня, і ось нарешті ви маєте змогу послухати, як ми з Нікітою Галкіним розбираємо тему, що давно потребувала відвертої розмови. Що таке синьйорність? У чому вона проявляється? Як не сплутати її з фреймворковою експертизою? І що взагалі чекає після?
Ходіть дивитися і приємного перегляду!
Хто такий Senior Software Developer? | Подкаст з Нікітою Галкіним
І не забудьте поширити це відео серед усіх родичів і знайомих.
🔥34
#про_співбесіди
У мене вчора трошки пригоріло від одного допису в Threads. Якщо коротко: історія про співбесіду, де кандидат класно відповідає на питання, розповідає кейси, і взагалі повний метч. Але аж тут, при завершенні тімлід раптом питає: "А що більше, 5² чи 2⁵?' Кандидат розгубився, просить калькулятор. І висновок мене вбив: "Це не про математику. Це про базову уважність, реакцію, спокій під тиском."
По-перше, я трошки висловився в самому треді. Бо я не можу бачити такої відвертої дурні. Це абсолютно відірване від контексту розмови питання, яке взагалі не розкриває абсолютно нічого, окрім факту, що людина після півтори години співбесіди вже попаялась, і може дві думки не зібрати купки.
По-друге, мене просто плавить від кількості захисників і прихильників такого методу. А що — "це показник, як людина вчилась в школі". Або — "це щоб тімлід побачив, як людина думає". Чи ще якась нісенітниця. Ця сова перестала пищати ще після перших відповідей, але її досі натягують на глобус.
У мене величезне прохання до усіх, хто проводить співбесіди — ніколи, за жодних обставин, не ставте такі питання, якщо вони ніяким чином не повʼязані з темою інтервʼю. Ваші питання повинні нести цінність для вас, а відповіді на них мають розкривати потенціал кандидата саме в робочих обставинах.
Завжди питайте себе — "Що я хочу дізнатися у відповідь на це питання?". Дуже чітко окреслюйте цю мету. Якщо це "дізнатися, як кандидат думає", то оце "думає" має бути в конкретному робочому контексті, а не абстрактне "в загальному". А ще частіше питайте себе "Як я особисто відповім на це питання, і як цю мою відповідь можна буде тлумачити?".
Якщо дуже хочеться повимахуватись інтелектом та ерудицією — робіть це з друзями за келихом пива. Займатися подібним на роботі, а тим паче при наймі — це максимальний рівень душності. Памʼятайте, що ви, по суті, є офіційним представником ваших колег перед потенційним співробітником. І враження про компанію в цілому дуже часто складатиметься саме з розмови з вами.
Підсумовуючи, залишу просто дуже влучну цитату з коментарів: "В гуглі всі знають, чому люки круглі, але чомусь досі пишуть код з null exception".
Все, ніби випустив пару. Не будьте душні, одним словом.
@babichdev
У мене вчора трошки пригоріло від одного допису в Threads. Якщо коротко: історія про співбесіду, де кандидат класно відповідає на питання, розповідає кейси, і взагалі повний метч. Але аж тут, при завершенні тімлід раптом питає: "А що більше, 5² чи 2⁵?' Кандидат розгубився, просить калькулятор. І висновок мене вбив: "Це не про математику. Це про базову уважність, реакцію, спокій під тиском."
По-перше, я трошки висловився в самому треді. Бо я не можу бачити такої відвертої дурні. Це абсолютно відірване від контексту розмови питання, яке взагалі не розкриває абсолютно нічого, окрім факту, що людина після півтори години співбесіди вже попаялась, і може дві думки не зібрати купки.
По-друге, мене просто плавить від кількості захисників і прихильників такого методу. А що — "це показник, як людина вчилась в школі". Або — "це щоб тімлід побачив, як людина думає". Чи ще якась нісенітниця. Ця сова перестала пищати ще після перших відповідей, але її досі натягують на глобус.
У мене величезне прохання до усіх, хто проводить співбесіди — ніколи, за жодних обставин, не ставте такі питання, якщо вони ніяким чином не повʼязані з темою інтервʼю. Ваші питання повинні нести цінність для вас, а відповіді на них мають розкривати потенціал кандидата саме в робочих обставинах.
Завжди питайте себе — "Що я хочу дізнатися у відповідь на це питання?". Дуже чітко окреслюйте цю мету. Якщо це "дізнатися, як кандидат думає", то оце "думає" має бути в конкретному робочому контексті, а не абстрактне "в загальному". А ще частіше питайте себе "Як я особисто відповім на це питання, і як цю мою відповідь можна буде тлумачити?".
Якщо дуже хочеться повимахуватись інтелектом та ерудицією — робіть це з друзями за келихом пива. Займатися подібним на роботі, а тим паче при наймі — це максимальний рівень душності. Памʼятайте, що ви, по суті, є офіційним представником ваших колег перед потенційним співробітником. І враження про компанію в цілому дуже часто складатиметься саме з розмови з вами.
Підсумовуючи, залишу просто дуже влучну цитату з коментарів: "В гуглі всі знають, чому люки круглі, але чомусь досі пишуть код з null exception".
Все, ніби випустив пару. Не будьте душні, одним словом.
@babichdev
🔥94❤39👍1
Товариство, хто хоче стати зіркою наступної співбесіди на ютубі? Яка, до речі, відбудеться наступної пʼятниці, 1 серпня.
Заповнюйте анкету і хапайте нагодупопозоритись показати свої знання в прямому етері!
https://forms.gle/T8SKFTpuCbY1vK8E6
Чекаю на ваші заявки до вечора неділі. Всім гарного вечора пʼятниці!
Заповнюйте анкету і хапайте нагоду
https://forms.gle/T8SKFTpuCbY1vK8E6
Чекаю на ваші заявки до вечора неділі. Всім гарного вечора пʼятниці!
🔥16❤7
#html_in_action
Отже, вам терміново потрібно додати до статті ілюстрацію з підписом. Не знаю, для чого, просто дуже треба.
Ваша перша реакція:
Якщо це так — зупиніться! В HTML5 уже давно існує спеціальна семантична конструкція
За визначенням в специфікації
Порядок, до речі, неважливий: підпис може йти як перед вмістом, так і після — головне, щоб він був першим або останнім елементом всередині відповідного
Як допускається й вкладення
Проте, якщо ви вкладете два
Щодо вмісту, то "ілюстрацією" може бути що завгодно, хоч текст, хоч відео, хоч код.
Чому ви досі не втисли вподобайку цьому допису, я вас питаю?
Ну і, звісно, не варто плутати
І ось вам ще бонус — як додати наскрізну нумерацію до ілюстрацій на кшталт "Рисунок 2.1 Реакт-абізяна в природі":
Ви просто оголошуєте два лічильника, кажете, який елемент який лічильник інкрементує, і збираєте такий собі "префікс", який буде відображатися на екрані перед вмістом
🌐 MDN: figure
🌐 MDN: figcaption
🌐 MDN: Using CSS counters
@babichdev
Якщо ви негайно розішлете цей допис 10 знайомим, то у вас буде щастя, здоровля і синьйорська зарплата.
P.S. До речі, згідно правил української мови, слово "рисунок" — правильне. Просто його треба використовувати в правильному значення. Розрізняти "рисунок" від "малюнка" дуже просто — перший це зображення, утворене рисками, штрихами, а друге — мальоване, фарбоване. Отака хвилинка філології.
Отже, вам терміново потрібно додати до статті ілюстрацію з підписом. Не знаю, для чого, просто дуже треба.
Ваша перша реакція:
<div class="illustration">
<img src="…" />
<p class="denoscription">…</p>
</div>
Якщо це так — зупиніться! В HTML5 уже давно існує спеціальна семантична конструкція
figure + figcaption!За визначенням в специфікації
figure це контейнер для автономного вмісту, який можна вийняти з основного потоку тексту без втрати сенсу. Тобто це має бути ілюстрація, що доповнює документ, але не є його ключовою частиною. А figcaption — це підпис до цього вмісту.<figure>
<img src="…" />
<figcaption>…</figcaption>
</figure>
Порядок, до речі, неважливий: підпис може йти як перед вмістом, так і після — головне, щоб він був першим або останнім елементом всередині відповідного
figure. Відсутність figcaption, до речі, допускається.Як допускається й вкладення
figure у figure:<figure>
<img src="…" />
<figcaption>…</figcaption>
<figure>
<img src="…" />
<figcaption>…</figcaption>
</figure>
</figure>
Проте, якщо ви вкладете два
figcaption в один figure, то на вас насвариться валідатор, бо підпис до ілюстрації має бути лише один. Бо екранні читалки трактують figcaption як пояснення до вмісту.Щодо вмісту, то "ілюстрацією" може бути що завгодно, хоч текст, хоч відео, хоч код.
Ну і, звісно, не варто плутати
figcaption з caption в таблиці. Це геть інший елемент зі своєю поведінкою та семантикою.І ось вам ще бонус — як додати наскрізну нумерацію до ілюстрацій на кшталт "Рисунок 2.1 Реакт-абізяна в природі":
<figure>
<img src="react-monke.jpg" />
<figcaption>
Реакт-абізяна в природі
</figcaption>
</figure>
:root {
counter-reset:
section-counter,
item-counter;
}
section {
counter-increment: section-counter;
}
figure {
counter-increment: item-counter;
}
figure::before {
content: "Рисунок. "
counter(section-counter)"."
counter(item-counter);
}Ви просто оголошуєте два лічильника, кажете, який елемент який лічильник інкрементує, і збираєте такий собі "префікс", який буде відображатися на екрані перед вмістом
figcaption. Для вкладених figure треба додаткові лічильники і правила відображення, але то я вже пропоную побавитися вам.@babichdev
Якщо ви негайно розішлете цей допис 10 знайомим, то у вас буде щастя, здоровля і синьйорська зарплата.
P.S. До речі, згідно правил української мови, слово "рисунок" — правильне. Просто його треба використовувати в правильному значення. Розрізняти "рисунок" від "малюнка" дуже просто — перший це зображення, утворене рисками, штрихами, а друге — мальоване, фарбоване. Отака хвилинка філології.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤115🔥23👏5
#партнерський_допис
Товариство, а ви чули? ШІ стукає в наші таски! І як він змінить роботу фронтенд-розробників у найближчі роки — говоримо на панельній дискусії appflame talks!
📅 31 липня, 18:00–20:00, онлайн
Спікери з appflame, WIX, Softsich. Модератор — щиро ваш Бабіч.
Ця подія — і для розробників і тімлідів, які хочуть розуміти, куди рухається індустрія.
Поділимося практичними кейсами та інструментами, що варто використовувати вже сьогодні!
🔗 Реєстрація: http://bit.ly/4lszyfW
Товариство, а ви чули? ШІ стукає в наші таски! І як він змінить роботу фронтенд-розробників у найближчі роки — говоримо на панельній дискусії appflame talks!
📅 31 липня, 18:00–20:00, онлайн
Спікери з appflame, WIX, Softsich. Модератор — щиро ваш Бабіч.
Ця подія — і для розробників і тімлідів, які хочуть розуміти, куди рухається індустрія.
Поділимося практичними кейсами та інструментами, що варто використовувати вже сьогодні!
🔗 Реєстрація: http://bit.ly/4lszyfW
eventmate.app
appflame talks: [Frontend]
Запрошуємо тебе 31 липня, 18-19:30 долучитися до appflame talks: [Frontend], щоб провести час з користю та задоволенням в колі української спільноти розробників.
Формат: онлайн, панельна дискусія
Поговоримо про AI, що поступово змінює роботу Frontend розробників:…
Формат: онлайн, панельна дискусія
Поговоримо про AI, що поступово змінює роботу Frontend розробників:…
❤17🔥4
#css_in_action
Ви однозначно не раз ставали свідком того, як непередбачувано стрибає вебсторінка перед вашими очима, коли бравзер дозавантажує якісь ресурси, наприклад зображення. І це дуже сильно бісить, особливо, якщо ти вже почав читати ту нещасну статтю про реакт-абізян в дикій природі, а текст зненацька починає від тебе тікати вниз.
Одним зі способів подолати цю проблему є фіксування розмірів елементів зображень, наприклад, задаючи в HTML width та height. Однак, якщо у вас адаптивний дизайн, і картинки мають динамічні розміри, цей підхід просто не спрацює.
І тоді людство згадало про так чудову річ, як пропорції, і почало "резервувати" місце під зображення, поки сам файл вантажиться. Найнадійнішим способом тривалий час був так званий padding-top hack — коли за допомогою внутрішнього відступу, абсолютного позиціонування і такоїто матері вдавалось таки забезпечити сталі пропорції. Але якою ціною?
Я, до речі, дуууже довго не міг зрозуміти, як і чому це працює, але секрет виявився простим, хоча й не очевидним для стороннього спостерігача. Виявляється, всі відступи, включаючи вертикальні, розраховуються від ширини елемента, а не від відповідного виміру. Звичайно, логічно було б, щоб padding-top у відсотках рахувався від висоти, але це не так. І це турбувало мене з першого дня, відколи я дізнався про відступи.
Як і будь-який хак, цей підхід має свої плюси і мінуси. Мінусів зазвичай більше. Я не буду заглиблюватися в них, але таку конструкцію дуже легко вивести з ладу: тут тобі і overflow: hidden, і неявна висота, і абсолютне позиціонування.
Хто не поставить серденько — втратить доступ до каналу через 3… 2… 1…
Однак давно вже можна забути про спадщину часів IE, та користуватися нормальними підходами в CSS, а в нашому випадку властивістю
Можна задати й по старому, одним значенням, якщо вам дуже подобається знущатися над колегами:
А, що ще важливо — очевидно, що
Частиною Baseline ця властивість є з вересня 2021 року, а це означає, що ви можете спокійно використовувати її у ваших продакшн-проєктах. Якщо ви досі не пишете під IE, звичайно.
Для себе я цей підхід відкрив приблизно у той же час, але використовував доволі обережно, зазвичай у пет-проєктах, але зараз підтримка сучасних CSS-фіч пришвидшилась, тож уже немає сенсу триматись за хаки
🌐 MDN: aspect-ratio
А ви як, слідкуєте, аби ваші сторінки не цибали вверх-вниз, як дикі гібони, чи покладаєтесь на волю богів та швидкий інтернет у юзера?
@babichdev
Ви однозначно не раз ставали свідком того, як непередбачувано стрибає вебсторінка перед вашими очима, коли бравзер дозавантажує якісь ресурси, наприклад зображення. І це дуже сильно бісить, особливо, якщо ти вже почав читати ту нещасну статтю про реакт-абізян в дикій природі, а текст зненацька починає від тебе тікати вниз.
Одним зі способів подолати цю проблему є фіксування розмірів елементів зображень, наприклад, задаючи в HTML width та height. Однак, якщо у вас адаптивний дизайн, і картинки мають динамічні розміри, цей підхід просто не спрацює.
І тоді людство згадало про так чудову річ, як пропорції, і почало "резервувати" місце під зображення, поки сам файл вантажиться. Найнадійнішим способом тривалий час був так званий padding-top hack — коли за допомогою внутрішнього відступу, абсолютного позиціонування і такоїто матері вдавалось таки забезпечити сталі пропорції. Але якою ціною?
<div class="box">
<img class="fixed-ratio">
</div>
<style>
.box {
position: relative;
width: 100%;
padding-top: 56.25%; /* 9 / 16 = 0.5625 → 56.25% */
overflow: hidden;
}
.fixed-ratio {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
}
</style>
Я, до речі, дуууже довго не міг зрозуміти, як і чому це працює, але секрет виявився простим, хоча й не очевидним для стороннього спостерігача. Виявляється, всі відступи, включаючи вертикальні, розраховуються від ширини елемента, а не від відповідного виміру. Звичайно, логічно було б, щоб padding-top у відсотках рахувався від висоти, але це не так. І це турбувало мене з першого дня, відколи я дізнався про відступи.
Як і будь-який хак, цей підхід має свої плюси і мінуси. Мінусів зазвичай більше. Я не буду заглиблюватися в них, але таку конструкцію дуже легко вивести з ладу: тут тобі і overflow: hidden, і неявна висота, і абсолютне позиціонування.
Однак давно вже можна забути про спадщину часів IE, та користуватися нормальними підходами в CSS, а в нашому випадку властивістю
aspect-ratio, яка робить рівно одну річ — задає елементу потрібні пропорції, до того ж в очевидний спосіб..fixed-ratio {
aspect-ratio: 16 / 9;
}Можна задати й по старому, одним значенням, якщо вам дуже подобається знущатися над колегами:
.fixed-ratio {
aspect-ratio: 1.77777778;
}А, що ще важливо — очевидно, що
aspect-ratio працює для усіх блочних елементів, не лише для зображень.Частиною Baseline ця властивість є з вересня 2021 року, а це означає, що ви можете спокійно використовувати її у ваших продакшн-проєктах. Якщо ви досі не пишете під IE, звичайно.
Для себе я цей підхід відкрив приблизно у той же час, але використовував доволі обережно, зазвичай у пет-проєктах, але зараз підтримка сучасних CSS-фіч пришвидшилась, тож уже немає сенсу триматись за хаки
🌐 MDN: aspect-ratio
А ви як, слідкуєте, аби ваші сторінки не цибали вверх-вниз, як дикі гібони, чи покладаєтесь на волю богів та швидкий інтернет у юзера?
@babichdev
❤95🔥10👏2
#анонс
Товариство — нова співбесіда уже цієї пʼятниці!
Цього разу у мене — Артем Голіков, фронтендщик на React. Вперше почав захоплюватись розробкою у 2024 році, коли зверстав десятки сайтів на HTML/CSS і почав думати, що крутий дев, аж поки не дізнався про існування JavaScript. Досвіду розробки у Артема приблизно 6 місяців, і на роботі скоро відбудеться переатестація на підвищення кваліфікації, тому він вирішив спробувати свої сили спочатку на ютубі.
Тож чекатиму на вас цієї пʼятниці, о 19:00, на прямому етері зі співбесідою, де ми з Артемом перевіримо, чи він ще трейні, чи вже годний зватися справжнім джуном. Не проґавте!
Обовʼязково зайдіть поставити вподобайку на відео та втиснути дзвіночок, аби не пропустити етер! Як завжди раджу дивитися наживо.
@babichdev
P.S. Хто не вподобає і не поширить цей допис — того вночі вкусить комар між пальцями.
Товариство — нова співбесіда уже цієї пʼятниці!
Цього разу у мене — Артем Голіков, фронтендщик на React. Вперше почав захоплюватись розробкою у 2024 році, коли зверстав десятки сайтів на HTML/CSS і почав думати, що крутий дев, аж поки не дізнався про існування JavaScript. Досвіду розробки у Артема приблизно 6 місяців, і на роботі скоро відбудеться переатестація на підвищення кваліфікації, тому він вирішив спробувати свої сили спочатку на ютубі.
Тож чекатиму на вас цієї пʼятниці, о 19:00, на прямому етері зі співбесідою, де ми з Артемом перевіримо, чи він ще трейні, чи вже годний зватися справжнім джуном. Не проґавте!
📆 1 серпня, 19:00
📺 https://youtube.com/live/nRf43EVT2Ow
Обовʼязково зайдіть поставити вподобайку на відео та втиснути дзвіночок, аби не пропустити етер! Як завжди раджу дивитися наживо.
@babichdev
P.S. Хто не вподобає і не поширить цей допис — того вночі вкусить комар між пальцями.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤48🔥11👏2
Товариство, хочу вам нагадати, що триває збір на Mavic для 184 навчального центру.
І ще хочу нагадати, що Росія — кончена країна кончених людей. Якщо, звичайно, вам не вистачає її власних нагадувань.
Дякую за кожну гривню.
***
На Mavic для 184 навчального центру
🎯 Ціль: 80 000 ₴
🔗Посилання на банку
https://send.monobank.ua/jar/AeXQ6YRf2X
💳Номер картки банки
5375411202918178
І ще хочу нагадати, що Росія — кончена країна кончених людей. Якщо, звичайно, вам не вистачає її власних нагадувань.
Дякую за кожну гривню.
***
На Mavic для 184 навчального центру
🎯 Ціль: 80 000 ₴
🔗Посилання на банку
https://send.monobank.ua/jar/AeXQ6YRf2X
💳Номер картки банки
5375411202918178
❤13
Опитування!
Tailwind — ви за чи проти?
Голосуйте донатами та вказуйте в примітках на чиїй ви стороні. Один голос — 5 гривень.
Завтра спробую підбити підсумки.
https://send.monobank.ua/jar/AeXQ6YRf2X
P.S. Донати йдуть на збір на Mavic для 184 навчального центру.
Tailwind — ви за чи проти?
Голосуйте донатами та вказуйте в примітках на чиїй ви стороні. Один голос — 5 гривень.
Завтра спробую підбити підсумки.
https://send.monobank.ua/jar/AeXQ6YRf2X
P.S. Донати йдуть на збір на Mavic для 184 навчального центру.
🔥36
Ох, вже ті новачки з шилом в дупі!
В команді зʼявляється новий колега, дивиться на процеси, код, підходи і каже що це все лайно собаче, а робити треба так, як скаже він, інакше щастя більше не буде. Знайомо? Точно знайомо. Бо якщо це не був новий колега в команді, то, швидше за все, це були саме ви.
Це нормально. Нам краще в комфортних умовах, і для нової людини комфортні умови це саме ті, в яких вона працювала раніше. І абсолютно природнім для неї буде спробувати відтворити ці умови на новому місці, аби мінімізувати стрес від переходу, від адаптації до нових порядків. Бо якщо натомість завести свої порядки, то й адаптуватися не треба.
Але те, що це нормальна поведінка людини в таких ситуаціях, не означає, що вона правильна. Радше навіть шкідлива. Тому давайте поміркуємо, як можна цього уникнути.
По-перше, в команді має бути нормальний онбординг. Я не говорю зараз про те, коли вам видають ноутбук, пароль до корпоративної пошти і роблять один дзвінок з HR на пів години на тему "шо ти голова".
Я говорю про командний онбординг, під час якого людина якраз має адаптуватися до процесів. Коли вона знайомиться з кодовою базою, з процесами код ревʼю, з загальними підходами до розробки і стилю коду. І в цій ситуації дуже помічним буде мати це все в задокументованому вигляді. Складно ламати те, що викарбувано в слові, а з іншої сторони — якщо воно зафіксовано "на папері", а не на чесному слові, то з тим і знайомитись легше, і дотримуватись.
По-друге, ніхто не забороняє вам вносити пропозиції. Саме так — вносити пропозиції. Не вриватися з бойовим криком "Міша, всьо хуйня, по новой давай!", а аргументовано запропонувати зміни. Так, я знаю, це набагато складніше, ніж плодити купу ПР, які розходяться з командними правилами бо "мені так зручніше". Ну і це не так захопливо, як сваритися на дейліках з тімлідом, визнаю.
Якщо вам не подобається якийсь аспект, розберіться в питанні. Можливо, є причини окрім "так історично склалося". А можливо й ні. А тоді наведіть аргументи проти. Але ґрунтовні. А тоді запропонуйте інший підхід. Так само з ґрунтовними аргументами "за". Якщо це дійсно варте уваги, то команда, як мінімум, це питання обговорить і якісь зерна сумніву вже впадуть до їхніх голів. А якщо це дійсно слушна пропозиція, то й візьме в практику.
Команда теж має бути відкрита до таких пропозицій. Не варто будувати робочі процеси за принципом "мій дід надвір ходив, то й ми будем". Якщо ви не хочете бути завалені "законодавчим спамом", визначте чіткі правила для таких випадків: який формат пропозала, яка аргументація, за і проти. І розглядайте не для галочки, а дійсно сприймайте це як потенційні покращення.
Ці поради я даю з власного досвіду. Коли я тільки прийшов до нинішньої компанії, мені надзвичайно не сподобався стиль написання коду. Однак цього разу замість відразу підіймати кіпіш, я під час одного з дзвінків запропонував внести пропозицію, промацав ґрунт, так би мовити. І коли команда погодилась, я засів за створення монументального документу, де детально розписав недоліки (на мій погляд) поточного стану справ та переваги (на мою думку) іншого підходу, зачепивши не просто сам код, а й, до прикладу, вплив на підходи в тестуванні.
Як наслідок, ми трошки ще пообговорювали цю ініціативу, внесли певні правки до документа, а потім команда почала потрошки вводити це все в практику. І от зараз я вже в іншій команді, а попередня пише код за моїми настановами. Що, звичайно, дуже приємно.
Тож, любі мої читачі, проявляйте ініціативу, коли маєте таке бажання. Навчіться аргументовано викладати свою думку, і тоді побачите, як зміниться ставлення до неї з "господи, ну шо тобі знову не так" на "а це інтересна пропозиція".
А відповідальним за прийняття рішень скажу наступне: давайте право голосу новачкам в команді, будь то джуни чи синьйори, неважливо. Не сприймайте в штики ініціативність, дуже ймовірно, що в цьому є певна істина. Головне її побачити, а не закриватися і досі бігати за мамонтом з камʼяною сокирою в епоху штучного інтелекту. Як мінімум тому, що мамонти вимерли давно, почнім бігати за кимось іншим хоча б.
@babichdev
В команді зʼявляється новий колега, дивиться на процеси, код, підходи і каже що це все лайно собаче, а робити треба так, як скаже він, інакше щастя більше не буде. Знайомо? Точно знайомо. Бо якщо це не був новий колега в команді, то, швидше за все, це були саме ви.
Це нормально. Нам краще в комфортних умовах, і для нової людини комфортні умови це саме ті, в яких вона працювала раніше. І абсолютно природнім для неї буде спробувати відтворити ці умови на новому місці, аби мінімізувати стрес від переходу, від адаптації до нових порядків. Бо якщо натомість завести свої порядки, то й адаптуватися не треба.
Але те, що це нормальна поведінка людини в таких ситуаціях, не означає, що вона правильна. Радше навіть шкідлива. Тому давайте поміркуємо, як можна цього уникнути.
По-перше, в команді має бути нормальний онбординг. Я не говорю зараз про те, коли вам видають ноутбук, пароль до корпоративної пошти і роблять один дзвінок з HR на пів години на тему "шо ти голова".
Я говорю про командний онбординг, під час якого людина якраз має адаптуватися до процесів. Коли вона знайомиться з кодовою базою, з процесами код ревʼю, з загальними підходами до розробки і стилю коду. І в цій ситуації дуже помічним буде мати це все в задокументованому вигляді. Складно ламати те, що викарбувано в слові, а з іншої сторони — якщо воно зафіксовано "на папері", а не на чесному слові, то з тим і знайомитись легше, і дотримуватись.
По-друге, ніхто не забороняє вам вносити пропозиції. Саме так — вносити пропозиції. Не вриватися з бойовим криком "Міша, всьо хуйня, по новой давай!", а аргументовано запропонувати зміни. Так, я знаю, це набагато складніше, ніж плодити купу ПР, які розходяться з командними правилами бо "мені так зручніше". Ну і це не так захопливо, як сваритися на дейліках з тімлідом, визнаю.
Якщо вам не подобається якийсь аспект, розберіться в питанні. Можливо, є причини окрім "так історично склалося". А можливо й ні. А тоді наведіть аргументи проти. Але ґрунтовні. А тоді запропонуйте інший підхід. Так само з ґрунтовними аргументами "за". Якщо це дійсно варте уваги, то команда, як мінімум, це питання обговорить і якісь зерна сумніву вже впадуть до їхніх голів. А якщо це дійсно слушна пропозиція, то й візьме в практику.
Команда теж має бути відкрита до таких пропозицій. Не варто будувати робочі процеси за принципом "мій дід надвір ходив, то й ми будем". Якщо ви не хочете бути завалені "законодавчим спамом", визначте чіткі правила для таких випадків: який формат пропозала, яка аргументація, за і проти. І розглядайте не для галочки, а дійсно сприймайте це як потенційні покращення.
Ці поради я даю з власного досвіду. Коли я тільки прийшов до нинішньої компанії, мені надзвичайно не сподобався стиль написання коду. Однак цього разу замість відразу підіймати кіпіш, я під час одного з дзвінків запропонував внести пропозицію, промацав ґрунт, так би мовити. І коли команда погодилась, я засів за створення монументального документу, де детально розписав недоліки (на мій погляд) поточного стану справ та переваги (на мою думку) іншого підходу, зачепивши не просто сам код, а й, до прикладу, вплив на підходи в тестуванні.
Як наслідок, ми трошки ще пообговорювали цю ініціативу, внесли певні правки до документа, а потім команда почала потрошки вводити це все в практику. І от зараз я вже в іншій команді, а попередня пише код за моїми настановами. Що, звичайно, дуже приємно.
Тож, любі мої читачі, проявляйте ініціативу, коли маєте таке бажання. Навчіться аргументовано викладати свою думку, і тоді побачите, як зміниться ставлення до неї з "господи, ну шо тобі знову не так" на "а це інтересна пропозиція".
А відповідальним за прийняття рішень скажу наступне: давайте право голосу новачкам в команді, будь то джуни чи синьйори, неважливо. Не сприймайте в штики ініціативність, дуже ймовірно, що в цьому є певна істина. Головне її побачити, а не закриватися і досі бігати за мамонтом з камʼяною сокирою в епоху штучного інтелекту. Як мінімум тому, що мамонти вимерли давно, почнім бігати за кимось іншим хоча б.
@babichdev
❤56🔥16
Товариство, все забуваю нагадати, що при каналі діє чат, в якому можна розводити срачики, не чекаючи на новий допис.
Це той самий чат, в якому ви коменти лишаєте, якшо шо.
@babichdevchat
Долучайтеся.
Це той самий чат, в якому ви коменти лишаєте, якшо шо.
@babichdevchat
Долучайтеся.
🔥3
Співбесіда з трейні наживо вже за кілька хвилин!
Готуйте пиво, чай, чи що кому до смаку і гайда до перегляду!
https://youtube.com/live/nRf43EVT2Ow
Готуйте пиво, чай, чи що кому до смаку і гайда до перегляду!
https://youtube.com/live/nRf43EVT2Ow
Youtube
- YouTube
Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube.
🔥28❤6
Що ж, за підсумками учорашньої співбесіди було прийнято рішення зробити рубрику "Бабіч знов спозоривсь на ютубі" регулярною, і вже в понеділок чекайте на детальний розбір теми "Приведення типів та оператор + в JavaScript "
❤54👏8🔥4🤔1