Як покращити Code Review? Як це робить Google?

Поділитися
Вставка
  • Опубліковано 30 січ 2025

КОМЕНТАРІ • 73

  • @romanyukartem757
    @romanyukartem757 Рік тому +1

    Надавно натрапив на ваш канал. Контент та подача - супер, дякую!

  • @-Oleg1
    @-Oleg1 Рік тому

    Все по темі, без води, дякую

  • @olegv5793
    @olegv5793 2 роки тому +5

    Віктор, дякую за якісний контент! 👍
    Було б цікаво дізнатись більше про те як працює зв‘язка PO і Tech Lead.
    А також про те як працює refinement задач у гуглі.

  • @cruc1anberg
    @cruc1anberg Рік тому

    Щастя здоровʼя тобі!!!!

  • @shchekavytsia
    @shchekavytsia Рік тому

    Прикольні відео! Підписався.

  • @atsybulsky
    @atsybulsky 2 роки тому +5

    Бест практіс великих компаній типа гугла - дуже цікаво =)

  • @AdminAdmin-sl2qf
    @AdminAdmin-sl2qf 11 місяців тому +1

    ❤❤❤❤❤❤❤❤❤❤❤❤

  • @ИринаСвет-я3ь
    @ИринаСвет-я3ь Рік тому

    Дякую за відео 😊

  • @McKleeM
    @McKleeM 2 роки тому +3

    Не встиг і моргнути, дякую)))

  • @alexanonymous5823
    @alexanonymous5823 2 роки тому

    цікаво, дуже дякую

  • @average-user9
    @average-user9 Рік тому

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

    • @invilso4051
      @invilso4051 Рік тому

      Віктор у інтерв'ю на DOU відповідав на схоже питання, якщо коротко то фічі вигадують розробники, вони ж їх і рубають на менші частинки.

  • @Vladyslav_Sliusar
    @Vladyslav_Sliusar 2 роки тому +2

    О, про анемік модель цікаво послухати)

  • @BelladonGameDeverUA
    @BelladonGameDeverUA Рік тому

    Толково розповів
    Добре, що на ДОУ показали розмову і так я знайшов цей канал

  • @artemtrush
    @artemtrush 2 роки тому +6

    Мені подобається частота виходу відео ✨🐸
    Як в гуглі з пріоритетністю рев'ю перед поточними задачами? Бо зазвичай рекомендують давати фідбек максимально швидко, щоб не блочити людину/фічі.
    І ще, десь бачив гарну фразу - Пишіть коментарі до коду, а не до людини, яка його написала. (politeness)

    • @AboutProgramming
      @AboutProgramming  2 роки тому +2

      Звісно краще не блочити людину, але й той, хто створює реквест теж має розуміти, що людина може зараз бути зайнята іншими справами. Якщо рев'ю в рамках одного дня, то це добре. Відносно того, як правильно давати (й сприймати) фідбек, то це окрема тема)

  • @ivansepp7928
    @ivansepp7928 2 роки тому

    Супер.

  • @MS-fu3zf
    @MS-fu3zf Рік тому

    Дякую за поради і класний контент. Може порадите якісь книги чи ресурси по візуалізації архітектури, типу C4?

    • @AboutProgramming
      @AboutProgramming  Рік тому +1

      Я зазвичай або С4 користую, або UML, або просто малюю вже своє щось. Відносно візуалізації, то тут скоріше головне питання в тому, схему чого ми візуалізуємо, а там вже можна підібрати інструмент/стандарт для візуалізаціх. С4 мені дуже подобається, найчастіше малюю container diagram. Якщо про UML, то найчастіше Use Case Diagram та Sequence Diagram. А під все інше все просто квадратики й стрілочки :)

  • @ВладиславЛевківський-т2у

    👍👍👍👍

  • @eolit1o
    @eolit1o 2 роки тому +3

    Дякую за відео. Більше контенту :) А як отримати статус readability?

    • @AboutProgramming
      @AboutProgramming  2 роки тому

      Є якійсь процес, де ти маєш підтвердити знання гайдлайнів й правильних практик для певного технологічного стеку, але я поки ніяк не займусь цим)

  • @Bohdan-Venhrenovych
    @Bohdan-Venhrenovych 2 роки тому +1

    Топчик

  • @const_g
    @const_g Рік тому

    Майже нічого нового. Але все одно дякую)) цікаво що за муз обладнання у вас там? Ви музикант ще? Може розкажете трохи про це теж?)

    • @AboutProgramming
      @AboutProgramming  Рік тому +1

      Це chromakey)

    • @const_g
      @const_g Рік тому

      ​@@AboutProgrammingлол)) а виглядає як справжнє)

  • @bogdannaumenko7571
    @bogdannaumenko7571 Рік тому +1

    Дуже цікаво було б послухати про Check-list на прикладі UI... більш детальніше..

    • @AboutProgramming
      @AboutProgramming  Рік тому +6

      Важливе питання, тому затягнув з відповіддю. Тільки відповів про чек-лісти в іншому коментарі. Але я тут подумав, можливо варто зробити якийсь спільний комʼюніті чекліст разом з підписниками каналу. Я би накидав базу, а потім зібрати ще фідбек від писників й зробити спільні документи.. Як ідея? :)

  • @artemkonyukhov6635
    @artemkonyukhov6635 Рік тому

    Сподобалось, що є ревью архітектури і є ревьювери з редабиліті статусами. Дякую.

  • @vandriichuk
    @vandriichuk 11 місяців тому

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

  • @hesher2301
    @hesher2301 Рік тому

    У вас позаду така музична студія добре напакована) це просто бекграунд?

  • @mikemakhovyk6941
    @mikemakhovyk6941 Рік тому

    Привіт! Ти в інтерв’ю казав, що працюєш над фічами, які можуть розроблятися дуже довго. Як в гуглі відбувається цей процес, коли створюються МРи, де ще не весь функціонал реалізовано, десь work in progress, десь можливо якісь заглушки? Чи залишаються явні коменти/ToDo? Чи МР має бути максимально фіналізований, наскільки можливо?

    • @AboutProgramming
      @AboutProgramming  Рік тому

      Все живе в одній гілці й фічі сховані за feature флагами

  • @maxbabych52
    @maxbabych52 2 роки тому +2

    На скільки ревьювер повинен бути поглинутий в таск щоб вирішувати чи ця задача вірно зроблена і чи взагалі повинен ревьювер поринати в задачу? Дякую

    • @AboutProgramming
      @AboutProgramming  2 роки тому

      Для readability review це не обов'язково. А от для основного рев'ю дуже корисно розуміти контекст задачі. Й це має бути відповідальність інженера забезпечити рев'ювера контекстом - реквест має бути присвяченій одній зміні, детально описати ідею зміни в реквесті, додати скріншоти, додати посилання на опис задачі, обрати рев'ювера, який вже розуміє задачу чи згоден у неї зануритися

    • @maxbabych52
      @maxbabych52 2 роки тому +1

      @@AboutProgramming мені завжди чомусь здавалося що це моя відповідальність розібратися в ревью і виходило що я читаю таск , придумую рішення а потім ще розбираюся як воно реалізовано в пулі , а виходить що було достатньо щоб інженер правильно доніс свою реалізацію. Дуже дякую за слушну пораду і з Новим Роком)

    • @AboutProgramming
      @AboutProgramming  2 роки тому

      @@maxbabych52 так, й якщо щось не зрозуміло, тоді рев'ювер буде задавати питання в коментах й просити пояснити ідею й це буде збільшувати час рев'ю й інженеру доведеться декілька разів повертатися до коду й проходити додаткові ітерації. Через пару таких рев'ю вже сам почне додавати більше контексту, якщо хоче якісне рев'ю

  • @vasylnahuliak
    @vasylnahuliak 2 роки тому +1

    Як щодо розбиття merge/pull requests на менші? наприклад створюється окрема гілка в яку попадають такі маленькі МР а потім закидується сквошом в основну гілку

    • @AboutProgramming
      @AboutProgramming  2 роки тому

      Будь-яка довгоживуча гілка створює проблеми, навіть якщо в неї регулярно тягнуться дані за мастера. Чим менші реквести й частіше, тим краще. В Google взагалі все живе тільки в основній гілчці й мерджитися можливо тільки в основну гілку.
      В WebbyLab ми використовуємо переважно "Git One Flow branching model" - такий собі варіант trunk based development

  • @feelthefreedom
    @feelthefreedom Рік тому

    є можливість поділитись чек-лістом по фронтенду?

    • @AboutProgramming
      @AboutProgramming  Рік тому +1

      По фронтенду нажаль чеклістами поділитися не можу, оскільки там частина вимог це приватні вимоги від клієнтів. Але концептуально, це просто документ, який описує стандартні кейси, які мають бути покриті під час розробки фронтенду типу
      * редірект, коли закінчилася сессія
      * помилка про проблему з інтернетом, коли пропав звʼязок
      * лінкі мають відкриватися через CTRL+click й так далі
      Тут головна ідея в тому, що такі проблеми повторються від проекту до проекту й має сенс десь це документувати, щоб не повторювати помилки. Часом це вирішується за рахунок спільної архітектури, часом процесно, а часом інфраструктурно

  • @eolit1o
    @eolit1o 2 роки тому +1

    Є якісь обмеження у кількості строк коду на один pr?

    • @AboutProgramming
      @AboutProgramming  2 роки тому

      Технічного обмеження немає, є просто рекомендація, що менше зазвичай краще

  • @kbodka
    @kbodka Рік тому

    Якщо когось цікавить більше деталей про те як працюють процеси в гуглі, раджу прочитати software engineering at google. Дуже класна книжка, свого часу почерпнув для себе багато цікавих речей.

    • @AboutProgramming
      @AboutProgramming  Рік тому

      Окрім того вона в безкоштовному доступі

  • @v.ilchenko
    @v.ilchenko 2 роки тому +1

    Ми недавно впровадили стайлгайди (до цього тільки лінтер був) і це прямо суттєво спростило рев‘ю. Більшість коментарів зараз - лінки на док. Тут є питання - чи варто в стайлгайд виносити речі, які покриває статичний аналіз? Умовно «використлвуй let/const замість var»
    Додав би що корисно на проекті налаштувати codeowners, щоб відповідні люди/команди автоматично асайнились.
    По архітектурному ревю - як це може виглядати в продукті? Коли у нас одна команда працює над одним проектом. Зараз є декілька senior людей, які можуть зарефакторити проект, але це працює поки для команди в ~50 розробників. Коли вас стає 500, по ідеї потрібна окрема команда під це?
    Гугл гайди рекомендують робити код рев‘ю протягом 1 дня. Як у вас цього дотримуються? Просто цікаво :)

    • @AboutProgramming
      @AboutProgramming  2 роки тому +2

      Чим більше стайлгайдів вийде замінити статичним аналізом, тим краще. Тоді вже посилання на доки може давати сам лінтер й рев'юверу не треба витрачати час.
      Відносно codeowners, то це теж є, але чисто для регулювання прав доступу (тобто галочка від овнера теж завжди потрібна).
      Відносно архітектурного рев'ю в продукті, то можна роботи рев'ю й командою, яка працює над проектом. Тут головне, щоб це просто було й був менеджмент технічного боргу. Коли над продуктом працює 500 людей, тоді це буде 30-50 команд й тут вже питання як узгодити команди між собою. Різні компанії підходять по різному - хтось за повну автономію, хтось за більше централізацію. Я за децентралізацію, але максимальну стандартизацію й узгодження. Це можна зробити за рахунок:
      1. Спільна інфраструктура. Вона зможе прогарантувати схожі процеси й підходи, один й той самий статичний аналіз, один механізм деплойменту й моніторінгу та інше.
      2. Спільна документація - рекомендаці по процесам, спільні стайлгайди та інше.
      3. Спільна дизайн система й набір компонентів/бібліотек
      4. Обмін знаннями (презентації рішень від однієї команди іншим та інше)
      5. Різні cross team (company wide) efforts. Часто визначаються, як цілі на рівні директорів й кожна команда забов'язана зарезервувати певний час на іх виконання.
      Відносно код рев'ю протягом одного дня, то тут просто - бачиш, що вісить на тобі реквест, то почав ранок з цього (або як прийшов з обіду). Якщо у рев'ювера немає часу подивитися, а тобі треба терміново, то можеш попросити напряму або ще додати інших людей для рев'ю у кого є час. Або написати в спільному чаті й спитати, хто може швидко глянути.

    • @v.ilchenko
      @v.ilchenko 2 роки тому

      Дуже інформативно, дякую 🎉

  • @thankfulperson3309
    @thankfulperson3309 2 роки тому

    Як заохотити всю команду до процесу код рев'ю, коли тільки частина більш-менш активна в цьому питанні?

    • @AboutProgramming
      @AboutProgramming  2 роки тому +1

      Команда має бачити цінність в код рев'ю. Й тут або вони не розуміють цінність й це треба донести (наприклад, що станеться, якщо всі на проекті відмовляться в код рев'ю), або цінності немає - наприклад, якість коду для керівництва не є важливою й тут можливо треба донести спочатку цінність до керівництва.

  • @logcom482
    @logcom482 Рік тому

    В пітоні з стильом написання коду все простіше не зробив відступи і ніфіга не запуститься)))На С хоч пиши весь код в одному рядку)

    • @AboutProgramming
      @AboutProgramming  Рік тому +1

      Ну там відступи, а там дужки фігурні)

    • @roman1961
      @roman1961 Місяць тому

      Зазирни у pip ruff

  • @eolit1o
    @eolit1o 2 роки тому

    На який позиції ви працюєте в Google? І який у вас левел?

  • @suhovN
    @suhovN Рік тому

    питання щодо review від людини яка має readability status.
    Хто ассайнить цю людину, автоматизація чи власник ПРу вручну?
    Чи є явний дозвіл або заборона на те щоб запросити review у декількох таких людей одночасно.
    Якщо вручну та така людина в іншій команді, як знати що ця людина взагалі доступна, можливо вона out of office у найближчий тиждень або у неї черга подивитись review на стільки велика що твій ПР подивиться тільки через тиждень?

    • @AboutProgramming
      @AboutProgramming  Рік тому

      Може бути й вручну й автоматично. Якщо автоматично, то всі перевірки пройдуть автоматично. Якщо вручну, то перевірки можна зробити вручну (написати людині, глянути чи на роботі й тд). Про заборону в декілька людей не чув.

  • @SvoyakD
    @SvoyakD Рік тому

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

    • @AboutProgramming
      @AboutProgramming  Рік тому +1

      Сам жахаюся, бо дуже дуже дорого виходить. Але вартість помилки ще вища

  • @vasylnahuliak
    @vasylnahuliak 2 роки тому +2

    Цілий рік записував відео і на кінець вирішив залити? 😂

    • @AboutProgramming
      @AboutProgramming  2 роки тому +2

      Аби) Завтра вранці планую зняти ще 2 з готеля))

    • @mrart5498
      @mrart5498 2 роки тому +1

      Гарний початок!
      З нетерпінням чекаємо!

  • @LyubomyrSemkiv
    @LyubomyrSemkiv Рік тому

    З мого досвіду, 8 з 10 ревю які я роблю є неправильними. Воно ніби вирішує проблему, алк створює якісь інші проблеми різного хврактеру, або просто калічно - зайві дії. Глибоке коуд рев‘ю, де перевіряється валідність фікса, а не відповідність якимось сумнівним поактикам є найбільш цінним. Я не подивився все відео, але здається здатність робити такі ревю тут називається рідабіліті статус. Це дцже поавильно і розумно, лише я не розумію, чому у вас при тому дають дизайнити і овнити фічу з непідтвердженими навиками дизайну. Так само як більшість програмістів не вміють програмувати, так само вони не вміють дизайнити.

    • @AboutProgramming
      @AboutProgramming  Рік тому

      Всі починають з того, що не вміють дизайнити й треба починати з чогось, щоб отримати цей скіл. Тому проектування корисно й для джунів, просто треба ім допомогати в цьому й задачі мають бути відповідного рівня. Відносно рідабіліті це в першу чергу на відповідність стандартним практикам конкретного стеку, проекту й тут не треба глибокого контексту по фічі, але це теж важливо. Тому рідабіліті апрув завжди має бути до стандартного ревʼю від когось з команди (але це може бути одна й та сами людина, яка й рідабіліті апрувить)

    • @LyubomyrSemkiv
      @LyubomyrSemkiv Рік тому

      ​@@AboutProgrammingага, тоді це інше. Це не ability to read code а апрув що code is readable. А дизайнити вичтися краще працюючи "підймайстром" в того, хто вміє дизайнити. Це такий класичний ремеслярський підхід.