►
From YouTube: Code Review Weekly Workshop - Mar 17, 2023
Description
In this session we discuss some topics pertaining to Code Review. We also pair up on a review.
00:00 - Diff'n diffs
13:10 - Code is clearer than words
22:05 - Pair reviewing a BE GraphQL MR
A
I
find
myself
regularly
different
diffs
I.
Do
this
very
often
and
something
that
happened
in
this
Mr
was
is
about
to
be
merged
and
then
all
of
a
sudden
there
were
conflicts,
and
so
we
had
to
resolve
the
conflicts
and
the
way
this.
A
The
way
that
this
author
was
maintaining
the
commits
of
the
Mr
was
there.
Is
this
one
commit
and
we
kept
Force,
pushing
and
rebase
and
all
of
that,
and
so
what
I
had
done
this
time,
which
was
different
than
Pines
before,
because
normally
what
I
would
do?
A
B
B
A
So
locally
I
didn't
have
a
reference
to
the
commit.
So
it's
just
not
working
now
I
wonder
if.
A
Like
what
happened
was
what
had
happened
is
I
think
previously
I,
just
I
didn't
pull
this
commit
so
previously
I
think
I
just
looked
at
the
diff
from
the
URL.
Similarly
of
like
what
has
changed,
yeah
and.
D
A
Yeah
totally
and
then
I
curled,
I
guess
the
new
commit
or
the
even
the
Mr
def
I
could
just
curl
that.
But
look
look
at
what
look.
What
happened
when
I,
when
I
did
that?
There's
a
there's,
a
story
to
this
I
promise.
A
A
So
so
I
run
this
and
you
see
pluses
on
both
sides
mean
that
there
weren't
any
change.
This
is
being
added
in
both
situations
plus
is
on.
One
side
is
interesting,
so
here
we
have
a
new
Plus
on
the
right
hand,
side
and
I
think
this
is
related.
So
when
I
looked
at
okay,
what's
the
history
of
this
thing?
This
is
what
caused
the
conflict
and
I
think
this
is
just.
We
didn't
quite
resolve
the
conflict
cleanly
where
we
ex
actually
included
something
that
was
being
removed
and
is
unrelated
to
this
Mr.
A
Oh,
so
running,
diffs
is
really
powerful
at
me.
Just
checking
did
we
resolve
the
conflict
correctly
and
everything
smooth
like
what's
actually
changed
and
I?
Do
this
a
lot
but
I
realized
with
this
checking
out
a
single
commit
the
curling
of
a
single
commit,
there's
a
drawback.
There's
an
assumption
here
is
that
the
author
is
only
maintaining
just
one
commit
on
the
Mr.
If
the
author
had
multiple
commits
I,
wouldn't
be
able
to
curl
the
commit
diff
and
get
to
see
a
whole
picture
of
what's
changed
in
the
Mr.
A
What
I
think
I
could
do
in
that
situation
is
I.
Think
I
could
go
to
the
compare
revisions,
thing
and
I.
Think
from
here
I
could
possibly
do
origin
Master
triple
dot
merge
base,
so
this
is
doing
the
triple
dot.
Does
the
merge
base
diffing
and
then
select
the
the
leading
commit
I
haven't
tried
this
but
I'm
going
to
try
it
right
now.
A
A
C
A
Yeah
I'm
realizing
that
this,
oh
yeah,
so
look
at
this.
You
got
this
kind
of
oh
they're
flipped.
Why
do
we
have
this
flipped,
like
I,
would
expect
it
to
do
like
Master
to
this.
D
A
Yes,
yes,
yes,
this
is
it
great
great
okay,
so
what
I'm
wondering
is?
Can
I
do
the.
D
A
So
then
I
just
that's
a
good
question.
So
then
I
just
asked
of
hey
did
we
intend
to
react
and
I
linked
to
the
commit
that
was
just
removing
this,
but
then
there
was
a
little
back
and
forth
because
I
think
it
wasn't.
It
wasn't
obvious
that
I
was
talking
about
this
one
versus
the
other
one
yeah.
B
C
D
D
You
need
to
make
a
decision
like
oh
I'm,
leaving
this
thing
in
this
is
the
difference
between
what
I
have
and
what's
there
and
it's
very
easy
to
make
a
mistake
and
re-add
something
because
I
I
actually
caught
a
similar
thing,
that
someone
had
re-added
something
that
was
removed,
but
it
wasn't
because
I
did
a
diff
compare
I
had
gotten
like
I
think
one
of
the
last
I
was
either
yeah.
I
was
the
maintainer,
so
there's
like
66
threads
already.
That
happened
multiple
rebases
yeah,
but
I
asked
the
question
like
I.
D
Don't
understand
why
this
is
being
added
here.
Can
you
like
tell
me
I
I,
don't
understand,
and
the
response
was
that,
oh,
it
was
a
rebase
mistake.
It
was
actually
I'm
like
well
I'm,
really
glad
I
asked
because
it
went
through
multiple
reviews.
I
don't
know
when
it
was
added.
I
see
multiple
rebases
in
here,
yeah
I.
Really,
just
don't
have
the
time
to
go
and
like
check
every
single
one
and
I.
Don't
think
that
people
should
but
I
like
what
you
did
at
the
very
end.
D
A
D
I,
don't
even
this
was
in
the
one
of
the
libraries
for
back
batch
background
jobs
for
database
migration,
so
that
makes.
C
D
You
know
and
I
had
yeah
I
just
asked
a
bunch
of
questions
on
this
Mr
because
I,
you
know
that's
a
pretty
big
piece
of
our
migration
framework.
The
batch
background
migration
stuff
and
it
was
a
relatively
it-
looked
like
a
somewhat
complicated
change
for
me,
but
I
was
glad
I
asked
yeah.
A
That
makes
sense,
yeah
and
yeah
that's
great,
to
ask
and
I
think
it's
great
I
think
what
what
resonates
a
lot
with
me,
what
I
try
to
promote
to
people
that
have
become
maintainers
and
in
general,
is
when
you
review
it,
you
really
need
to
review
it
from
a
clean
slate
and
not
make
assumptions
about
it,
because
it's
very
easy
to
just
think.
Oh
well,
other
people
reviewed
it
and
said
it
was
okay,
so
I
guess
yeah.
D
A
D
Right,
but
that
was
like
that,
because
I'm
venturing
up
a
trainee,
maintainer
right
now
and
I'm
like
okay,
the
key
that
I've
been
following
is
just
like
ask
questions,
cue
them
up
as
you're
going
through
things.
That
way,
you
can
like
go
back
and
delete
them
if
you
find
the
answer
to
it
further
down.
But
that
way
you
don't
forget
it.
A
Yeah
and
I
think
sorry,
I,
gotta
sneeze.
D
A
You
I
see
like
when
you
ask
a
question.
You
can
spend
the
time
looking
through
previous
conversations
to
find
see
if
there's
an
answer
to
your
question
but
I
think
there's
something
powerful
to
capture.
A
Questions
that
arose
from
me
just
looking
at
the
code
and
if
the
code
isn't
clear
like
why
we
did
something
a
certain
way.
It's.
We
should
probably
leave
a
comment
there
of
so
for
me,
I,
don't
totally!
Look
it
as
a
bad
thing.
If
a
question
has
been
there's
a
long
Thread
about
something
but
then
I
come
in
as
a
maintainer
and
I
leave
a
question
that
was
probably
previously
addressed.
B
D
A
A
Totally
cool
yeah,
the
other
thing
was
in
this
Mr.
A
A
A
The
main
thing
was
here
at
the
input
we
have
just
a
text
input
with
the
value
that
we
need
from.
It
is
actually
an
array,
and
so
we
just
joined
by
space
into
it,
and
then
we
split
by
space
out
of
it,
but
for
the
way
that
this
thing
actually
is
used
in
the
wild
is
individual
items
can
actually
contain
spaces,
so
splitting
by
space
isn't
really
going
to
work.
Okay.
A
This
is
all
behind
a
feature
flag,
so
I
kind
of
didn't
know
exactly
what
to
do
and
I
kind
of
I
kind
of
imagined.
I
was
trying
to
describe
the
ux
pattern.
I
see
sometimes
in
the
wild,
but
is
is
very
iffy
of
like
you
have
a
blank
input
and
you
start
typing
into
it
and
it
pops
a
new
input
for
you.
So
you
almost
have
like
this
infinitely
growing
amount
of
inputs.
You
could
add
Yeah.
A
I
was
trying
to
leave
like
a
suggestion
of
like
do.
We
need
something
like
this,
and
so,
rather
than
letting
it
go,
I
I
really
try
to
like
okay
I
need
to
just
make
a
picture
of
the
kind
of
thing
I'm
talking
about,
and
so
thankfully,
in
view
like
I
I
figured
out
oh
yeah.
This
is
how
you
can
do
that
thing,
and
you
know
relatively
small
amount
of
view.
Code
and
I
was
able
to
leave
a
screenshot
with
the
kind
of
thing
I
was
talking
about.
A
A
And
it's
hard
for
me
to
reference
and
talk
about
so
the
main
point
here
is
in
communication.
Man
talking
about
the
code
with
the
with
code
and
with
examples,
like
goes
so
far
beyond
me,
trying
to
find
the
right
words
to
describe
a
thing.
The
result
of
all
this
is
everyone
kind
of
agreed
of
like
yeah.
Let's
handle
this
in
a
follow-up
so
because
it's
behind
a
feature
flag,
that's
fine
with
me,
I
kind
of
what
I
end
up
doing
then,
is
just
indicating
like
hey
this.
C
A
B
A
D
I,
like
that
I,
like
I,
started
using
patches
for
some
things
that
have
been
helpful,
but
yeah
I,
definitely
I
feel
like
sometimes
yeah
using
code
is
a
good
way
to
communicate
like
a
suggestion
when
you're
you
can
try
to
make
this
code
into
words
or
I
can
just
be
like
here's
three
lines.
What
do
you
think
about
this
and
let
the
person
look
at
it
and
either
make
changes
or
just.
A
Oh
I
mean
even
to
the
point
of
calling
you
know
like
I,
think
I'll
call
things
pointy,
braces
or
whatever,
and
if
I
just
typed
out
pointy
braces
to
some
contributors,
it's
gonna
sound,
really
weird,
as
opposed
to
just
writing
what
she
said,
which
could
be
a
patch.
It
could
be
a
suggestion,
but
even
just
writing
a
code
block
is
totally
can
go.
Is
it
can
go
a
long
way
too.
D
D
D
D
A
Well,
do
you
think,
do
you
think
it's
possible
to
that's,
probably
that's
a
really
good
idea,
like
I,
think
it's
totally
fine.
If
you
can
pass
one
of
those
off
to
someone
else.
Oh.
D
A
D
Don't
know
as.
A
D
B
D
D
I
mean
I,
know,
I
thought
I
knew
database
was
pretty
good
until
I
started
working
here
and
realized
that,
like
the
problems
that
we
have,
that
we're
solving
for
at
gitlab
are
like
big
problems
versus
I
was
working
at
like
startups
and
like
smaller,
just
the
amount
of
traffic
and
the
amount
of
sheer
amount
of
data
that
we
have
where
in
like.
The
like
big
company,
leagues,
yeah.
D
D
Requests
for
us
to
look
at
and
we
can
I
can
drive
if
that's
easier.
That
way.
I
can
leave
comments
and.
C
D
A
C
D
B
A
I
really
like
the
graphql
back
in
changes
and
front-end
changes,
but
one
thing
that
I
think
is
always
it
was
so
difficult
to
that's.
Yeah
is
the
rolling
deployment
support
that
we
need
to.
D
Because
of
the
little
the
ship
right,
that's
like
the
build
could
have
back-end
changes,
but
there's
front-end
like
the.
A
A
We
need
the
front
end
to
be
very
flexible
and,
like
not
the
front
end
needs
to
have
for
a
period
support
if
the
back
end,
if
it
was
reaching
to
an
old
back
end,
is
kind
of
the
current
approach,
but.
D
D
D
A
A
D
Making
asynchronous
calls
that
are
coming
from
whatever
back
end
is
serving
them
okay,
so
this
is
actually
cool
for
search,
because
we
don't
have
anything
like
that.
Everything's
just
refreshed
every
time
you
do
anything
in
the
UI,
but
it
is
something
to
think
of
if
we
start
to
convert
things
over
to
view
and
start
to
convert
things
over
to
like
graphql
or
API
calls,
which
may
be
asynchronously
done.
D
Yes,
so
I
didn't
like
validating
these
things,
but
I
will
think
about
it.
I
guess
I'm
just
gonna
go
into
the
changes.
D
Those
on
there
so
it
looks
like
it's
adding
a
new
finder,
so
I
guess
from
a
database
perspective.
D
A
D
A
D
They're
introducing
like
a
new
finder
with
a
query
that
I
don't
know
what
this
query
does.
I
have
no
idea
what
the
data
transfer
model
does
either
I've
never
seen
that
one
before
so
yeah
I'm
going
to
ask
I
guess
like
from
a
database
review
perspective.
Part
of
what
you're
supposed
to
do
is
to
make
sure
it's
like
prepped
properly
and
following
the
guidelines
for
like
how
to
get
your
Mr
review
for
the
database.
I
would
say
like
70
or
80
percent
of
the
time.
C
D
The
the
which
is
fine,
that's
why
we
have
the
two
review
thing
and
it's
almost
like
I'm
trying
my
best
to
Tee
It
Up
for
the
database
maintainer,
so
that
I've
asked
all
the
questions
that
I
can
I've,
given
it
my
best
shot
as
to
give
them
guidance
to
get
it
to
follow.
Whatever
rules
that
I
know
how
and
then.
A
D
D
They
have
runics
okay,
so
these
are
here
so
okay
I
might
come
back
and
look
at
these,
but
they
need
the
links.
D
Well,
I
guess
what
I'm
looking
for
in
the
query
plans?
Is
it's
like
preferable
to
have
the
post
like
the
for
me
to
have
the
links
that
has
the
little
like
the
explain,
plan
links,
but
what
sticks
out
for
me
is:
if
there's
no
data
returned
in
the
results.
So
if
you
look
at
these
I'm,
not
great
at
reading
the
query
of
the
results
of
like
the
explains,
but
it
has
this
like
actual
section
and
then
the
ex
the
cost.
D
A
D
Also,
if
it's,
if
execution
time
is
like
wild,
then
that's
a
problem.
You
know
because
sometimes
you'll
I've
done
them
and
I'm
like
oh.
This
is
like
40
seconds
like
that.
Won't
fly
yeah.
C
D
A
D
D
So
this
one
looks
like
the
group
data
transfer.
Finder
looks
like
it's
looking
at
this
project
data
transfers
table,
but
it's
looking
at
the
namespace
ID
of
the
project
table
and
pulling
that
data,
yeah
I
still
think
I.
Would
it
looks
just
based
on
this
ID
that
this
might
not
have
been
done
on
a
very
like
large
namespace.
D
B
A
D
But
those
are
two
things
so
I
guess
that
would
be
I'm
interested
to
see
if
they
did
those
locally
or
on
the
production
database,
even
if
I
feel
like
even
if
the
project
doesn't
return
enough
stuff
like
it's
still,
the
table
size
might
not
be
very
big,
and
so,
like
I,
don't
know,
I
just
I
I
think
it's
preferable
to
run
those
through
the
postgres
AI
through
the
the
whatever
they
call
it.
I
really
miss
the
database
lab
channel
in
slack
and
I.
Don't
like
the
new
way,
but
I
think
that's
how.
A
So
one
thing
that's
interesting
here
is
this:
isn't
this
isn't
a
resolver?
This
is
what
it's
one
interesting
thing
here,
I
guess
this
is
going
to
be
an
argument
that
gets
referenced
by.
A
Right,
I,
don't
know
if
we
have
a
separate
folder
for
like
arguments,
but
clearly
it
is
confusing
that
this
is
does
live
in
resolver
land
when
it's
not
a
result.
B
Let
me
see
I
guess
we
can
try
your
thing.
Let.
D
A
C
A
Every
once
in
a
while
git
apply,
won't
work
for
me
and
I'll
run,
get
am-3,
I,
don't
know
I,
guess
it
does
a
different
kind
of
well
sorry
when
I
say
I'm
gonna
run
it
I
I
pipe.
The
diff
today.
D
Okay,
so
you
go.
A
A
Some
reason
it
didn't
like
running
it
and
it
seems
like
there's
a
stray
rebate,
Supply
directory
found
yeah,
so
we
might
need
to
run,
get
am
dash
dash
aboard
and
then
try
running
it
again.
Okay,.
C
D
So
what
was
I
looking
at
I
wanted
to
look
at
this
argument
file.
That's.
B
Not
the
right
code,
that's
go
land
we're
in
Ruby,
just
close
all
those
so.
A
I
guess
that
makes
well
actually
I,
don't
know
if
it
makes
sense
to
put
it
in
the
resolver.
B
A
But
I
do
see.
I
do
see
some
in
mutations,
which
makes
sense
because
it's
like
that's
part
of
the
mutation
interface
is
the
argument
for
it
and.
B
D
B
A
D
D
B
Confused
I'm
not
interested
in
argument,
but
also
being
the
resolvers
folder,
do
we
have
a
stylist
on
it
or
recommendation
for
this?
Should
we.
D
A
Yeah
I
think
I
think
what
I'm
trying
to
think
what
can
happen
there.
A
D
B
A
D
A
Yes,
but
it
could
still
cause
an
issue
if,
like
I
mean
imagine,
a
customer
has
disable
the
feature
flag
manually
or
something,
and
then
we
remove
like,
but
I
mean
these
get
into
edge
cases,
but
I
mean
we.
We
do
try
to
support
those
Edge
case,
which.
B
A
This
is
yeah
this.
This
is
what
you'd
want
to
link
to.
A
Here's
here's
the
URL
you'd
want
to
link
to
sorry
I
added
it
to
the
zoom
chat.
B
A
B
I
think
we
should
update
these
I'll
link
to
this
one
here
and
then,
if.
C
D
Okay,
I
guess,
for
me,
it
looks
like
okay.
D
D
C
B
A
Know-
and
that
does
that
does
stick
out
to
me,
I
I
would
I
would
not
expect
that
okay
and
I
would
wonder
like.
Can
we
do
a
database
seat?
Are
we
like
is?
Are
we
missing
something
like
a
database
seed
that
we.
B
Is
this
being
introduced
to.
A
So
like
what
I
would
with
this
I
would
recommend
I've
seen.
A
B
D
C
A
D
B
B
A
D
A
So
these
these
here.
D
Yeah
well,
I
mean
like
someone
could
enable
this
I
mean
I,
don't
know
why
they
would,
but
like
users,
users
do
like
wild
stuff
all
the
time
where
I'm
like
I,
don't
know
why
someone
would
do
that,
but
they're
like
yeah.
Let's
do
it
and
it's
fine.
That's
you
know
that
you're
right
as
a
user
and
I'm.
You
know
I
do
strange
things
all
the
time
with
like
software,
where
I'm
like,
let's
see
if
I
can
break
it,
so
yeah.
D
Well,
I'm
glad
we
did
this
Mr
because
it
was
very
helpful.
I
know
we're
almost
at
the
end
of
time.
I
know,
but
this
was
helpful
for
me.
I
find
the
graphql
stuff
very
different
from
my
normal
day-to-day,
and
so
it
is
hard
for
me
to
review.
A
A
B
D
D
D
Well,
thank
you,
and
hopefully
you
have
a
good.