►
From YouTube: Code Review Weekly Workshop - Aug 18, 2023
Description
In this session we talk about some things that came up during our code reviews.
00:00 - Intro
00:55 - When there's a hidden reusable utility that can be used
15:15 - Change to prod code to help test code
B
Right,
thanks
for
hopping
on
the
code
review
weekly
workshop
and
we're
talking
about
code
review,
let's
jump
into
it,
I'm
gonna
share
my
screen.
I
had
a
thing.
B
B
B
So
I
wanted
to
share
what
was
going
on
beforehand.
I
want
to
share
the
utility
and
then
I
had
a
question
about
it
to
share
what
was
going
on
beforehand:
yeah
I'm,
trying
to
figure
out.
Maybe
if
I
do
something
like
this,
like
going
from
version
three
to
version?
No,
no!
No!
How
do
I
do
this
maybe
compare.
B
Sure
yeah
yeah
that'll
do
it
okay,
so
there's
a
lot
of
logic
around
so
looking
at.
What's
going
on
here,
took
me
a
little
bit
to
to
figure
out
the
intent,
but
some
things
stick
out
to
me
like
and,
and
then
I
see,
comma
separate
list
and
I
see.
Oh,
this
is
a
whole
bunch
of
logic
for
like
based
on
how
many
code
owners
they
are.
B
Do
we
show
just
one
do
we
show
you
know
Alice,
Alice
and
Bob,
Alice,
comma,
Bob
and
Charlie,
and
like
that
whole
thing
and
I
just
happened
to
run
into
this
problem
many
many
years
ago
and
I
was
like
we
got
to
solve
this
once
and
for
all
we're
creating
utility
for
this,
so
that
we
could
just
reuse
it
and
not
have
to
redo
this
logic.
All
the
time
do
I
happen
to
know.
B
In
the
back
of
my
head,
there
was
a
utility
for
doing
this
with
strings
called
two
noun
series
text,
that's
kind
of
a
weird
name.
Now
that
I
think
about
it,
but
you
pass
in
an
array
and
it
will
know
like,
and
it
does
the
whole
translation
stuff
for
you
too.
So
let
me
open
up
the
project
real
fast.
B
A
B
Different
zones-
it's
gonna,
that's
gonna,
be
different,
so
here's
the
interesting
way
that
we
can
have
this
in
the
template.
Without
doing
it.
This
way
we
can
call
to
noun
series
text,
but
then
for
each
one
of
the
items
We're
looping
over,
we
are
going
to
pass
in
some
Sprint
f
parameters.
B
B
A
Search
thing
in
my
IDE
I
might
come
across
the
helper,
but
do
you
all
have
RoboCop
for
front
end.
A
What
like
a
Rubik's
like
okay,
I,
wonder
if
that's
something
that
could
be
like
a
linter
I,
don't
know
how
easy
it
would
be
to
write
rules
that
would
catch
like
someone
is
trying
to
do
this
because.
B
A
Seems
like
there's
like
a
million
different
ways
to
write
it
in
a
view.
That's
a
really
hard
problem
to
solve.
How
do
you
make
sure
that
people
are
aware
of
our.
A
A
Just
know
if
you
look
for
the
override
utility,
it
has
a
page
and
there's,
maybe
one
more
in
there.
B
B
A
B
So
like
there
is
a
way
through,
like
JS
doc,
can
we
can
like
document
the
function
through
the
comment
following
following
something
here,
man,
you
see
this
is
five
years
ago.
That's
this
is
the
last
time
I
used.
It
I
knew
in
the
back
of
my
head
five
years
ago.
Oh
I
know
I've
done
this
before
that's
so
wow
I
can't
believe
it
was
five
years
ago.
I
thought
it
was
just
a
couple
years
ago.
B
B
So
this
was
just
tweaking
it
a
little
bit
and
then
I
come
in
I'm
like
okay.
B
We
wouldn't
have
to
fix
this
if
we
just
use
something
that's
already
tested
specifically
for
this
thing,
the
so
the
one
of
the
takeaways
just
like
with
code
review
is
those
are
opportunities
for
knowledge
sharing
and
sometimes
sometimes
the
knowledge
needs
to
be
shared
broader
than
the
immediate
context.
But
it's
like
oh
yeah.
We
can
solve
all
the
things
and
make
it
more
maintainable
and
stuff
in
one
go
with
this.
B
Let's
do
it,
but
that
knowledge
sharing
has
like
I
do
feel
like
it
has
an
exponential
effect
of
like
so
just
bringing
it
up
and
having
other
people
become
aware
of
utilities.
B
Right
so,
but
that's
clearly
not
like
a
perfect
system,
but
I
know
like
that,
helps,
but
I
do
think.
A
page
like
this
is
super
helpful,
so
I'm
I
was
thinking
about
this
and
I
I'm
inspired
by
the
low
Dash
Docs,
because
we
use
low
Dash
all
the
time
and
it's
this
grab
bag
of
all
sorts
of
random
utility
functions
for
and
I
think
I
really
I'll
use
this
for,
like
I
need
something
with
like
keys
and
I'm
just
able
to
search
for
like
the
whole
thing.
That's
like
if.
A
You
could
ask
for
like
Community
contributors
to
help
document
some
of
these
methods,
because
I
know
that
documentation
Mrs
are
like
pretty
big
in,
like
the
oh
get
started
in
open
source
like
help
us
with
documentation
is
something
that
I've
heard
a
lot
when
I
was
not
contributing
to
open
source,
because
I
was
too
nervous
to
start
anywhere.
Like
start
with
docs,
it's
not
that
bad.
A
B
I
I
think
I
think
what's
missing
is
so
like
we
can
have
the
documentation
for
functions
here.
I
think
we'll
need
to
somehow
like
flag
it
as
like.
This
is
not
a
thing
but
like
yeah
this.
This
is
a.
This
is
a
utility
like.
Oh.
B
That's
commented,
don't
include,
everything
is
commented,
only
include
the
things
that
are
specifically
meant
for
reusability
and
then
maybe
then
we
can
also
have
like
more
categories
or
something
like
that
of
like
things
that
we
could
put
it
into
I.
Think
that'll
be
helpful
at
the
findability
of
all
the
reusable
things
in
our
code
base.
A
Yeah
I
think
so
I
mean
yeah
I,
don't
know
how
many
utility,
because
it
looked
like
there,
was
a
utility
folder
in
the
yeah.
How.
B
Yeah
but
like
I,
like
I,
think
I
used
to
feel
like
utility,
util
modules
isn't
good
or
like
utility
functions
weren't,
but
as
long
as
they're
like
pure
functions
that
are
kind
of
outside
of
any
domain,
it's
pretty
nice
just
having
a
whole
list
of
you
know.
These
are
pure
functions.
I
can
keep
reusing
to
kind
of
expand
upon
my
language,
but
yeah
no
I
want
to
share
this,
and
this
kind
of
thing
came
up
multiple
times
in
code
review,
where
it's
like.
Oh
we
we
gotta,
we
got
another
way
pre-existing
way.
A
That's
like
the
key
is
when
I'm
like
how
do
I
do
this
I'm,
not
sure
people
often
go
looking
in
the
code
and
the
more
that
you're
able
to
convert
things
over
to
like
using
the
consistent
utility.
If
this
is
like
this
is
the
way
we
want
to
do
things
I
feel
like
it
will
slowly
increase
the
percentage
of
people
that
are
like.
Oh,
how
do
I
you
know.
I
know
this.
Ui
piece
works
the
way
I
want.
Let
me
go
look
at
what
that
code
does
yeah.
B
A
So
that
was
an
interesting
one.
Cool
yeah
I
feel
like
it's
a
new,
a
new
developer
here,
I
was
constantly
looking
like.
How
do
they
do
things
here?
Having
that,
like
that
override
each
lady
was
the
one
I
remember,
first,
learning
about
and
being
like,
okay
I
suggest
it
to
people
all
the
time
he
reviews
I'm
like
please
add
this
because
it
yeah
it's
like
a
little
safety
net.
A
B
B
Because
we
we
like
regularly,
we
don't
regularly
test
as
we're
developing
on
EE
and
CE.
So
when
we
have
things
pointing
to
function,
that's
named
on
ee,
we
want
to
make
sure
that
CE
is
the
right
thing
and
yeah.
That's
having
that
that
kind
of
check,
that's
really
cool.
That
is
helpful.
A
A
About
them
all
right,
so
I
linked
I
guess
I
can
share
my
screen.
Let
me
oh
my
screen's
a
mess,
but
it's
okay,
we'll
open
it
and
share.
A
So
I
was
reviewing
an
MR
and
I
went
through
this
in
late
in
my
day.
So
I
was
pretty
tired.
It's
a
back-end
Mr!
That's
for
you're,
adding
it's
like
migrating
elasticsearch
data
for
our
code
index,
which
is
all
the
the
giddly
blobs,
and
it
makes
it
difficult
because
we
end
up
having
to
do
everything
mostly
outside
of
giddly.
A
We
don't
want
to
like
touch
Italy
when
we're
trying
to
update
data
because
well
a
I,
don't
know
how
long
that
would
take
to
re-index
all
of
the
code
that
we've
indexed
in
elastic
and
B.
It
might
have
it
very
bad
effect
on
the
performance
of
Italy.
If
we
try
to
do
that,
so
this
isn't
about
that
particular
part
of
it.
But
I
was
looking
through
the
code
and
I
came
on
this
change.
A
I,
don't
know
how
to
hide
this
thing.
Maybe
I
can't
I,
don't
know,
that's
fine,
so
there
was
a
equal
method
that
was
added
and
at
first
I
was
like
I.
Don't
see
this
equal
message
being
used
in
the
code
like?
Why
did
we
add
this?
Because
I?
That
was
the
original
comment?
I
left
because
I
was
late
and
I'm
like.
Why
do
we
have
this
equal
method
added?
If
it's,
if
it's
not
being
used
and
then
I
came
back,
I
was
looking
a
little
bit
further
and
I
realized.
A
It
was
in
to
support
an
issue
in
one
of
the
specs,
where
let
me
see
yeah
except
this
one.
Yes,
so
we
are
trying
to
add
the
capability
of
filtering
out
archived
projects
from
the
results.
So,
if
you
archive
a
project,
then
you
search
for
code
in
like
a
group
that
that
archive
project
won't
come
back.
A
B
A
A
Hopefully
that
makes
sense
and
I
think
what
I
after
I
looked
at
this
further
I
think
what
was
happening
is
we're
trying
to
check,
search
results,
saying
hey.
We
searched
with
the
archive
flag
added,
so
it
should
give
me
back
an
archive
result.
How
do
I
know
I'm
getting
back
when
I'm
supposed
to
get
back
and
the
equality
stuff
is
not
passing
so
I
think
what
this
person
was
trying
to
do
was
change.
What
equal
does
so
that
the
tests
would
pass
and
I
was
like.
A
Oh
so,
like
none
of
the
tests
fail
after
that
change,
but
I
was
really
nervous
about,
like
this
seems
risky,
because
this
found
blob
has.
A
It
has
a
lot
of
things
that
it
gets
initialized
with
yeah
and
changing
what
makes
it
equal.
It
doesn't
necessarily
mean
that
it's
equal
equal
and
the
reason
why
that
makes
me
nervous
is
like
we're
having
a
lot
of
indexing.
Integrity
issues
where
someone's
like
my
file
is
not
up
to
date
in
the
search
results
or
I
click
on
in
the
search
results,
and
it's
actually
gone.
A
Something
like
that
so
like
making
sure
that
the
content
of
what's
in
there
I
think
is
like
oh,
this
is
like
I
was
nervous
about
changing
that
because
we've
been
having
so
many
issues
with
like
you
know,
we're
essentially
like
a
consumer
of
all
the
stuff
in
giddly
in
the
database
and
making
sure
things
are
actually
actually
equal
yeah.
So
that
was
going
to
be
my
my
I
guess,
like
I,
don't
know,
do
we
override
things
like
this
often
in
git
lab
I'm,
not
sure
it's
a
good
question,
but.
B
A
B
Well,
maybe
love
isn't
the
right
word.
No.
A
I
will
be
interested.
I
did
look
to
see
if
there's
any
I
didn't
look
about
the
Alias
part.
Okay,
we
have
wow.
B
I'm
searching
I'm
send
on
the
zoom
chat.
This
is
this
is
what
I'm
searching
for
in
like
vs
code.
A
A
Good
way,
I
guess
my
but
I.
A
I
guess
that's.
The
biggest
thing
is
like
we're
fiddling
with
it,
because
the
test
is
not
passing
so
my
this
is
what
I
was
hoping
to
work
on
this
morning
was
like
there
should
be
a
way
to
mock
some
something
in
some
way
to
use
an
instant,
double
and
say
like
when
this
thing
is
called
because,
like
the
problem,
that's
happening
is
not
that
the
the
things
aren't
equal,
it's
I
think
the
object
IDs
are
not
equal.
I
was
able
to
get
it
so
that
all
the
fields
were
equal.
A
I.
Think
that's
part
of
like
this.
The
spec
when
I
was
looking
at
it
the
like.
If
you
look
at
how
this
is
built
in
the
code,
this
was
not
an
exact
match,
and
so,
when
I
was
looking
at
what
the
search
results
are
giving
me
back
and
what
is
in
this
object.
A
It's
not
the
same,
but
also
I
feel
like
there's
some
like
Ruby
magic.
That
happens
when
you
get
active
record
objects,
and
it
says,
is
this
active
record
object
equal
to
this
other
one
like
I,
have
project
that
I
found
by
id1
and
I
have
a
where
Clause
that
gave
me
back
project
id1.
Somehow
it
knows
those
are
the
same
thing,
because
these
are
like
plain
old
Ruby.
A
Not
the
same
yeah,
so
yeah
I
think
what
I
was
my
thought
was,
you
know
maybe
like
try
to
do
some
creative
stubbing
to
make
it
work
and
that
I'm
working
down
that
path
now,
but
I
guess
yeah
I
was
just
trying
to
be
like
how
do
I
like
how
do
I
phrase
it
and
I
think
what
you
said
was
really
key.
It's
like.
Let's
not
update
the
code
in
support
of
a
failing
test.
We
would
rather
try
to
get
the
test
working.
B
Know
yeah
100
I'm
scary
to
me
well
like
coming
from
java
land.
It
was
a
while
ago
but
like
whenever
you
change
equality,
don't
you
also
have
to
change
like
the
hash
function
of
the
thing
too,
like
I've.
B
A
B
B
A
A
B
A
I,
don't
know
it's
very
base.
Oh,
let
me
look
at
the
I'll
put
my
code
up
on
ten
thousand
things
that
I'm
trying
to
do.
But
if
you
open
up,
oh
I
already,
have
it
open
how
smart
of
me
okay.
So
this
example
is
like
super
basic.
This
is
all
it
is,
is
make
a
search
Does.
It
include
the
archive
results,
change
the
field
now
Does,
it
include
the
archive
results,
turn
the
feature
flag
off,
that's
supposed
to
like
make
it.
A
You
know,
behave
and
so
I
think
this
is
the
part
where
we're
running
into
issues
when
it's
not
a
you.
B
B
A
A
Yeah
like
how
you
tell
to
me
how
I
want
to
know
something's
equal
is
that
I
mean
the
person
that
did
this.
They
did
a
good
job.
Trying
to
check
they're
like
checking,
is
the
same
path.
They're
checking
that
the
project
in
the
group
is
the
same,
but
also
the
content.
To
me,
the
content
of
the
result.
That's
returned
is
important
because
that's
what's
being
displayed
to
the
user,
so
that
data
piece
should
also
be
checked.
A
A
B
The
the
interesting
thing
is
this
would
fail
on
possibly
things
that
should
pass.
That's
true,
because
you
could
have
coming
from
a
ref
which
is
the
commit
hash
and
then
coming
from
a
tag
which
are
actually
technically
the
same
thing.
Oh,
but
this
would
fail
Okay,
so
it
yeah
it's
a
hard
problem.
We
probably
don't
want
to
make
assumptions
on.
A
A
Yeah
I,
don't
know
this
whole
I.
Guess
it's
like
this
I
don't
know
if
this
constitutes
as
like
monkey
patching,
but
always
when
it's
like
very
I
feel
like
it's
just
the
far-reachingness
of
A
Change
Is
Where
I
get
like
a
little
like
queasy
when
I'm
thinking
about
like.
Could
this
cause
problems
and
then
how
hard
would
it
be
to
debug
if
this
caused
an
issue
like
you
know,.
A
A
I
think
I
was
just
gonna
err
on
the
side
of
let's
find
a
way
to
rewrite
the
spec,
whether
it's
what
you
suggested,
which
is
rewrite
the
whole
thing
to
make
it
work
for
all
types
of
search
results
which
might
be
a
lot
easier
than
the
crazy
mocking
that
I'm
trying
I
was
just
like
how
do
I
get
this
thing
to
work
and
I
wanted.
B
A
Mean
you
have
a
really
large.
This
is
the
migrations.
Are
this
is
a
test
and
then
the
migration
itself
is
yeah.
The
migrations
are
wild.
I
didn't
even
get
a
chance
to
check
this
yet
because
I
wanted
to
address
well
I
looked
at
this
and
I
know.
This
is
based
off
of
other
migrations
that
are
like
very
similar.
A
A
We
really
for
the
elasticsearch
migrations.
We
only
have
ourselves
and
we
have
some
staging
and
then
it
goes
to
production,
so
I
like
to
make
sure
they
run
and
complete
locally.
A
A
B
Not
as
much
no
definitely
not
as
much
yeah
but
like
I,
think
it's
just
interesting
to
you
said
you're
like
at
the
end
of
your
day,
like
you
see
an
MR
and
like
you're,
it's
really
easy
to
see
some
lines
of
code
and
being
like
okay.
Well,
this
just
in
I,
don't
think
even
consciously
you're,
just
like.
A
B
A
A
I
was
like
I:
don't
see
this
equal
method
being
used
anywhere
like
I,
don't
understand
why
this
is
and
I
just
left
the
note
and
went
back
to
like
look
through
other
stuff,
because
I
kind
of
like
glanced
to
everything
left
some
though
it's
almost
like
okay,
I'll
go
back
and
look,
and
maybe
like
I
missed
it
because
it
was
late
in
the
day
and
I
was
like
you
know.
I'm
tired
I
also
didn't
want
to
finish
the
review
without
providing
like
some
sort
of
path
forward,
because
I
feel
like
already.
A
This
was
a
hard
problem
and
they
probably
like
worked
pretty
hard
to
get
it
into
this
state.
So
I
will
prefer
to
give
some
idea
and
be
like
here.
What
do
you
think
about
this
and
then
like
it's
working
already,
I,
don't
know
if
that's
too
far
but
like
I,
don't
know
what
else
to
do,
but.
B
A
A
A
That's
why
I
didn't
yeah
I
I
didn't
even
finish.
The
review
and
I
was
like
I.
Don't
want
to
finish
this
because
I'm
not
done
and
I,
don't
know
what
the
right
path
forward
is,
but
I
think
you
gave
me
a
really
good
potential
easier
idea,
which
is
to
switch
the
other
piece
of
it.
B
Yeah
I
mean,
and
that
would
be
I-
think
that'd
be
interesting,
I'd
love
to
hear
more
like
was
this
really
just
added
for
tests.
It
seems
like
that
is,
but
yeah
I'd
be
curious.
If
maybe
there
was
another
another
intention
behind
it.
I
know,
though,
that
there's
like
people
coming
from
different
different
language
backgrounds
like
there's
some
languages,
that
just
lend
itself
like
that.
B
B
This
is
very
common
approach
to
problems
and
that
that
was
my
experience
with
Java
a
little
bit,
but
I
think
it.
It
ends
up
as
a
nightmare.
It's.
A
Yeah
I
I
mean
I
only
work
in
Java
with
spring
boot.
I,
don't
remember,
overwriting
equals,
but
we
weren't
working
with
any
like
crazy,
different
levels
of
objects
and
everything
was
microservices.
So
it's
kind
of
like
very
boxed
in
yeah.
B
A
B
Would
be
asked
in
how
it's
going
to
be
compared
to
be
equal
was
important,
but
yeah
I.
This
was
before
I
started.
To
really
appreciate
explicit
and
simplicity
in
code
and
I
was
like
everything
was
you
feel
like
you
could
encapsulate
everything
into
the
object
which
is
very
difficult
to
do,
but
yeah.
That's
that's
an
interesting
problem.
Cool
catch
thanks
for
bringing
up
yeah.
B
Think
I
think
we're
kind
of
that
time
and
we
can
we
try
to
squeeze
the
last
remaining
minutes,
but
that's
fine
I
I've
got
a.
We
got
a
pair
front-end
pair
programming
coming
up
in
a
little
bit
and.
B
Gonna
grab
some
coffee,
that's
a
good
feeling,
my
my
power.
It's
complete
all
right,
I'll.