Press "Enter" to skip to content

Code Review: How can we do it better?


this Monday me and Isis Silvera held a
live stream on Twitch where we taught
code review we talked about how you can
become a better code reviewer and we
also reviewed some code that you sent in
to us we talked about how to express
yourself what you think about typescript
when you think about linters over
engineering rewriting history with read
base and you know so much thank you so
much everyone who joined the live stream
it was so much fun hanging out with you
if you want to catch the next one we
make live streams every Monday you can
go to twitch.tv slash fun fun function
to check the schedule and to also click
the little follow button so that you get
a notification in the twitch app when we
go live before we cut to the recording
of the stream I would like to apply
today’s sponsor which is circle CI
circle C is a super sleek a continuous
integration as a service provider
there are docker base they are super
fast they have a great free tier that is
actually free and no trial or anything
and it works or private projects really
like them you should really check them
out sign up through this link circle CI
not fun for function comm to let them
know that you came from here it really
helps up the channel thank you so much
circles the eye now over to the
recording of this Monday’s twitch
livestream no no it’s the sound okay
let’s see what I can do one of the
things yeah actually it’s a good
opportunity for me to introduce myself
yes my name is ISA I’m a software
developer for god knows how many years I
think eight at this point right now I’m
working on izybelle
which is a company payment company here
in Stockholm Sweden I just moved as well
in January and and yeah we were gonna
talk about code reviews and nice things
that you can do and good practices and
some of the features as well it’s gonna
be fun and apart from that I’d like to
call myself a professional bullshitter
because
you have way too many talks I’m actually
trying to slow that down and yeah I
think I have the special talents which
is to my way into anything
which is actually a very good skill this
is I got her a perfect right ya know i
Finch two from hardware encoding to
software encoding like as I have
basically I’ve no idea what I’m doing
okay and I would like to make a
disclaimer here because I saw like we
requested for volunteers to send us
their code samples so we could review it
life and I saw a lot of people panicking
over the fact that we might be like
tyrants in code review it’s not gonna be
the case
no first of all we are nice people and
second of all I think one very good
learning that we’re probably gonna get
peer is like how you shouldn’t be an
asshole code reviewing others other
people’s code because it really code
review is a big part of the whole
rituals in a project and especially in a
team and it’s very important for you to
be like as respectful as possible
with other people’s code so if you’re
not we’re not gonna be here yeah like I
don’t think that anybody yeah and I
think that we are gone are like we’re
gonna spend a lot of time talking today
I like how not to be an asshole because
I don’t think that anybody sits out to
be an asshole it’s just like yeah you
you accidentally are yeah I think it’s
funny cuz like I think most times it’s
just like lack of attention only it’s
not even intentional or anything but
it’s just like oh yeah I have this thing
in my mind and I usually communicate
this with my friends or something so I
just like don’t pay attention to the
context and the fact that this person
might not know me as well yeah and you
just play it out there so the first core
requests that we gathered is a pull
request from my friend Leo Beltre if
you’re watching this I miss you
he’s he currently maintains the test 262
package on tc39 which for basically as a
brief explanation
tc39 which is like the committee who
approves new features and new stuff in
the ACMA script releases basically have
this stages to kind of approve a new
feature and like say that everybody
everybody’s on board this feature should
be there and then they implemented like
the technical implementation and then on
a final stage which is stage four they
they implement the necessary unit tests
to make sure that this is working
correctly so leo which is my friend he
implemented he’s part of tc39 in that
sense he implements some unit tests for
the new features in javascript these
releases and we’ve got this BR which is
basically it’s just a fix for parsing
function to have an optional license
header a license which is basically like
the MIT license or whatever it is that
we have in JavaScript I think it’s a
mighty yeah I have posted this link in
the link to this PR and the chat so you
can follow along if you want so let’s
start all right let’s see increase or
decrease it oh yeah that works
so okay right starting to look to this
PR there’s a lot of stuff that I really
like I think it’s very important for PR
to have a very descriptive title and if
possible a good description of what is
actually going on in the PR because like
usually when we have like a project that
is mainly maintained by us and only us
it’s very easy to just like open the
pull request don’t say anything and just
merge it but if you ever like open
source your project or if you have a
like have a friend helping you out
maintaining it it’s gonna be really hard
to backtrack everything that went on
because most things don’t have any
explanations so I think in this PR I see
that there is a very consistent
description which is nice and also
reference to the issue or previous PR
where like the problem was identified so
I think that’s super cool
yeah legs should be noted here that
these people are super serious about
their crap it’s for instance like even
though this is related to an issue he’s
still like rights a little bit of a
comment here so if we look into the
issue you can like follow it back to in
this case is it being said how horrible
yeah
so this attests around and you can go
back to the actual a purple also for the
hash-bang so what are we actually
looking at here the hashbang syntax and
grammar oh it’s this thing yeah okay
that’s so cool
cuz yeah like in the way that it works
in tc39 is that like going on stages
zero is basically just like pitching the
idea on stage one you actually get to
write an F RFC which is like a proposal
of how this feature that you’re thinking
about works how water the test cases I
think it’s listed yeah perfect what are
the test cases and then they identify a
champion a champions like a person who
is gonna be in charge of initiating the
discussions about this specific feature
most times the champion is a person who
comes up with the feature in the first
place and then sage 2 is basically just
getting to having like a draft of the
technical orientation for that feature
and then people discuss about it can you
yeah also yeah and then if everything
goes right on this stage goes through
the third stage which is just refining
it and getting feedback from everything
and from everyone and the tc39 committee
which is quite a lot of people like
there’s a lot of people from a lot of
different companies tech giants like
Google and Mozilla and Apple
anyway just so they they make sure that
their browser is going to implement that
in a similar way so we don’t have the
same problems as we used to have before
that like a function works in a
completely different way certain browser
and then when it was a lovely time dark
times so if it passes from that from
that stage and everybody is at Co
sensuous then it goes to stage four
which is the last one and in that stage
the unit tests that we were reviewing
are actually implemented and that is
shipped and that is on that week okay
we’re looking at yes all right back yes
there okay so maybe we should go to the
files changed let’s have a look okay so
we have four files changed parsed test
record I’m just gonna scroll through
them a little bit yeah yeah and like one
nice highlight that we can make is that
this code looks intentionally very weird
because they’re testing like a lot of
edge cases and things that don’t usually
happen but it’s nice to have that kind
of unit testing in place and also one
thing that I really like when I look at
this is the fact that there is a lot of
comments trying to describe certain like
special conditions or how this function
is supposed to yeah weird of it where do
you have an example then yeah it was
before it was before I say yeah all
right cool so this like we have for
example what this this piece of code is
trying to achieve which is like
declaring just declaring a function on
the block statement and there is a
reference to best practice which what
what happens in case you don’t follow
this or what kind of errors you get
which is negative syntax error so I
think it’s super nice to have that kind
of conventions and I always kind of try
to apply a similar
things to my code yeah because sometimes
like and I think it’s very important to
highlight this because like there’s some
things that work for a specific edge
case but then that is not super common
and then we just okay but when does it
actually happen for a person that wasn’t
there when that was implemented for
instance so I think it’s super nice to
document that mostly on comments we’ll
get back to comments later and hopefully
we have a lot of things to say on those
yeah yeah like this is I come from like
Co W as a concept like the pull request
was an invention that came after I
started programming and we didn’t have
like sophisticated systems like github
to do it this is like so nice that you
can write these code blocks inside your
comments making use of making use of
stuff like this to like would be really
clear about what it is that you’re doing
and I think that depending the time to
use the power of markdown when you’re
commenting is like so nice there’s so
many of these little things that you can
use to become a better code reviewer and
it it really makes an impact in how much
people listen to you and how much like
yeah how easy it is to understand you
yeah I think it’s nice to read those
discussions cuz like it’s also important
to highlight that well not because I
mean obviously you have to keep your
mind kind of flexible to what people are
proposing but if you feel that something
that’s not super consistent or within
the scope of that PR I think it’s nice
for you to have a space where you can
just respectfully discuss about the the
comment that was made because yeah in
this case like there
very nice discussion of how this should
work and what is the behavior that that
function is supposed to have or if it’s
even worth adding that to this PR or
another so I think it’s super nice to
have that behavior in place as well yeah
like not sure to yourself to other
people’s opinions but also sticking to
what you believe is best yeah this what
she’s doing here as like also like I
think a very valid thing to do like I
draw this saying like I’d rather spend
time fixing this is another another PR
if you agree because often you find
yourself like this like actually
agreeing on issues but hmm it’s not
really part of what we’re trying to
solve here so like yeah that is super
nice that you mentioned because I think
like we often get tempted to like have a
PR that contains everything no but I
think it’s so important to narrow down
okay what is this PR suppose to have
like not mixing a lot of different
things in the same PR because first of
all that is super hard to backtrack like
if you’ve already merged this like and
you want to like see okay but who
changed this where and if you don’t have
like something that’s super narrow and
focus on only one thing like it’s so
hard to just keep track of okay what is
this doing yeah like reviewing this
because when you have a big team like
it’s super unlikely that you’re gonna be
working on the same thing as that person
at that time so you don’t really have
context unless the person really
explains you yes in a very granular
level and keeps responsibilities very
restrained to one scope and one focus so
like it’s very important in this case
for instance like he thought it was
better to add that to another PR because
that made more sense in the in the
consistency of how things were organized
and I think it’s super interesting to
have that as well yeah so when we first
sort of like looking at what peers to do
for this episode like a lot of the stuff
that Leo ascent was like oh this is so
small can we really talk about this but
like actually like a good PR
a very small supposed to be a small yeah
otherwise it’s so hard to review yes
like when you have so many things going
on and happening first of all you just
get tired halfway through like I’ve seen
enough I don’t want to do this anymore
because because then it’s hard for you
to focus like okay and this connects to
that file in that way and it’s just like
hard yeah you’re not gonna get a good
review if you have like this big pile of
things like it might actually be like a
kind of like dirty strategy to get like
your changes in you actually just
overwhelm people with like the power of
your mighty code of you and people like
oh this changes 405 I’m sure it’s fine
and like that will work like you will
probably but you you won’t really get a
good review before you want the good on
you for your code it’s not like it’s not
like a gauntlet that you need to get
past this is a service that your
colleagues provide you yeah like Oh
chlorophyll kits points up and mattias
binds like bananas but – I’d say Biden
said I think he told me that was how his
name was Benjamin I interviewed of
course it is a Brazilian he’s a very
nice guy yeah
like it so like these are like men
mid-level celebrities in JavaScript
community all of them really it’s so
cool to see them like yeah it’s one of
the reasons why we decided to get the
pull request from tc39 specifically so
we can we as more as mortals like it’s
very important for us to see it like
this is literally where things get done
and the needed next releases of
JavaScript and it’s basically the same
workflow no they’re not doing anything
special
so therefore like this is so close to
what we usually do in our jobs our
personal projects and I think it’s it’s
nice for us to have that ground
understanding of like a we’re all people
here yeah especially because it makes
all the discussion in
like all the discussions and open-source
projects and things that seem larger
than life like reacts like 1639 just
it’s very important that people
understand that the everybody who’s
behind this are also people with their
own lives and their own worries and
concerns like treat them everybody with
respect yeah it’s super cool to follow
this from like the core so this is why
this why we chose this these reviews
because we are actually seeing
JavaScript being yelled yeah this is how
like that little syntax that you use in
your script this is how it came to be
yeah this is really super cool so feel
free to like why would we are talking a
lot here like and we’re looking at the
external code here but if you have any
questions or thoughts or reflections on
how you do code review or anything just
type it in check yeah I think we can
move on to the next one next PR or
alright so this is this is a very
different one that we take oh yes I’m
gonna paste that one in the chat as well
oh yeah by the way shout out to
everybody who sent us their code samples
you guys are amazing and this wouldn’t
be happening if it wasn’t for you guys
so thank you for the support yeah that’s
a tricky thing with doing these like
code review episodes I’ve wanted to do
for a long time and I was like where do
we go from and yeah from your nice
people who are like willing to show
yourself a bit vulnerable on the
internet so this is this is just a side
project by rocky bgg and it’s a GUI for
managing docker containers and images
because i think it’s a super nice
project idea because usually we have to
do all the commands in a terminal and
like for people that maybe are not super
into like terminal so far and that’s
more common among like junior developers
and all but it’s super nice to have a UI
to like clearly show what’s happening
and
like maybe people that are not techies
can also navigate yeah and I also like
there’s like a very this is also very
good meta exercise too when you’re like
in order to understand doctor I think
it’s really good to like make a GUI on
top of the command line or an API like
this is a very good way I’m like so
let’s jump back to the pull request that
I picked hey hey hey
so like it’s very important here to like
be a little bit mindful of that this is
a this is a yeah this is a personal
project is it’s not like a workplace so
when you’re doing pull requests in in
this kind of space you are doing it yeah
and you’re doing it like on yours like
like it’s like 7:00 p.m. when you’re
like getting home from working you just
want to get this thing done you don’t
have like the time space so we we need
to be aware of this in this case that
said we’re gonna look at like
improvements that we could make this
yeah like one thing that kind of speaks
to what I said in a previous PR that
could be improved is the fact that we
don’t really have a very descriptive
title for like someone that is not in
the project currently like if I was
interested in contributing for this
project at this point like I don’t
really know what’s going on like giving
the title like feature container or logs
view I kind of know where it is if I
probably follow something called logs
view but I don’t really know what’s
going on like what is this PR about so
like what is he adding and also there’s
no description which would be a nice
thing to add so we’re looking here like
I guess that he is at this point wanting
to rely on on commit messages for my
subscriber yes so and so we like I guess
that this hang on how does this work
chronological this is the first one
right yeah
newest yes oh this implements the log longest view for containers which is
longest view for containers which is sort of descriptive like I think that
sort of descriptive like I think that this is like we can understand that it’s
this is like we can understand that it’s probably like the tail like literally
probably like the tail like literally the log yeah for each container so I
the log yeah for each container so I think it’s very descriptive but one
think it’s very descriptive but one thing that he could have done a little
thing that he could have done a little better is the fact that we have like a
better is the fact that we have like a lot of commits that are kind of the same
lot of commits that are kind of the same like linter fix a couple of times so if
like linter fix a couple of times so if you’re using rebase which is a very good
you’re using rebase which is a very good practice for like working on your own
practice for like working on your own branch before you merge your master in
branch before you merge your master in oh I really like using the internal and
oh I really like using the internal and interactive freebase which allows you to
interactive freebase which allows you to like squash some commits that well we
like squash some commits that well we definitely need to know that you fix the
definitely need to know that you fix the linter issues like that’s kind of
linter issues like that’s kind of implied so maybe you could have squashed
implied so maybe you could have squashed that or group them in the like similar
that or group them in the like similar commits yeah I think that rebasing was
commits yeah I think that rebasing was one of those things that made me so much
one of those things that made me so much better like pull the requestor yeah how
better like pull the requestor yeah how do you how do you say like the person
do you how do you say like the person that review ease god no no the person
that review ease god no no the person that sends in upon request that person
that sends in upon request that person like I am now much easier to hear
like I am now much easier to hear because of my skills in interactive
because of my skills in interactive rebase so I think that that would
rebase so I think that that would probably be a good episode like spend
probably be a good episode like spend some time with learning that because
some time with learning that because that tool seems crazy it’s scary when
that tool seems crazy it’s scary when you start using it yeah so your face is
you start using it yeah so your face is not that good no not everybody knows
not that good no not everybody knows what the difference between rubies and
what the difference between rubies and merging is yeah so it’s kind of hard to
merging is yeah so it’s kind of hard to like just explain out of the blue but
like just explain out of the blue but yeah jumping to that kook yeah the
yeah jumping to that kook yeah the difference between me bathe the merge is
difference between me bathe the merge is that the re Bay’s if you’re like syncing
that the re Bay’s if you’re like syncing your own branch with this stuff for
your own branch with this stuff for master you get to like resolve the
master you get to like resolve the conflicts commit by commit and you don’t
conflicts commit by commit and you don’t have the necessity of doing like merge
have the necessity of doing like merge commits when you update you get to
commits when you update you get to rewrite the whole commit tree which is
rewrite the whole commit tree which is very good because then
very good because then because then you can like squash commits
because then you can like squash commits you can change messages you can solve
you can change messages you can solve the conflicts later by little yeah so
the conflicts later by little yeah so what do you okay so let me see if I can
what do you okay so let me see if I can get what you mean so you have like
get what you mean so you have like here’s the main branch yes and here’s
here’s the main branch yes and here’s your memory and here’s my branch and
your memory and here’s my branch and then I can like start adding commits
then I can like start adding commits here and then like people are working
here and then like people are working here on this other and if I use merges
here on this other and if I use merges then I’m just like then I’m gonna have
then I’m just like then I’m gonna have like all these polluted commits in my
like all these polluted commits in my and my branch saying like merge merge
and my branch saying like merge merge merge merge and which I don’t really
merge merge and which I don’t really have to do because I this is just my
have to do because I this is just my branch I can do anything so then I can
branch I can do anything so then I can use git rebase to rewrite history and
use git rebase to rewrite history and then like this is gonna be like super
then like this is gonna be like super tidy here yeah and that’s really good
tidy here yeah and that’s really good because like if I merge in like my merge
because like if I merge in like my merge merge commits here in the main line
merge commits here in the main line which also has like we just have to have
which also has like we just have to have merge commits yes then there’s gonna be
merge commits yes then there’s gonna be merge merge merge merge merge merge and
merge merge merge merge merge merge and they’re referring to different branches
they’re referring to different branches and it’s gonna be like what is they even
and it’s gonna be like what is they even happening yeah yeah so that’s why I like
happening yeah yeah so that’s why I like it so yeah maybe this having a bunch of
it so yeah maybe this having a bunch of very similar commit messages or a linter
very similar commit messages or a linter or like very tiny granular fixes could
or like very tiny granular fixes could be improved if you could squash them or
be improved if you could squash them or maybe change the message to something
maybe change the message to something more descriptive like maybe civet X
more descriptive like maybe civet X adjustments anyway so yeah yeah I think
adjustments anyway so yeah yeah I think that like really like limiting things
that like really like limiting things might like I think that that’s just
might like I think that that’s just clean that up before pushing in the pull
clean that up before pushing in the pull request I don’t think that linter fix
request I don’t think that linter fix really needs to be part of the commit
really needs to be part of the commit like yeah like that’s good for you like
like yeah like that’s good for you like while you are working in your branch
while you are working in your branch yeah but like I’m I’m a pretty big fan
yeah but like I’m I’m a pretty big fan of like just having a pull request just
of like just having a pull request just be like very few comments and tidying up
be like very few comments and tidying up a little
a little it yeah I think it depends I think like
it yeah I think it depends I think like they just have to be kind of meaningful
they just have to be kind of meaningful like I’d like Ren your regular commits
like I’d like Ren your regular commits because you don’t really have to like
because you don’t really have to like you don’t get into that trap of like
you don’t get into that trap of like okay there’s one huge commit that change
okay there’s one huge commit that change changes like basically all the project
changes like basically all the project nacho so when you wanna like maybe
nacho so when you wanna like maybe revert something that you just figured
revert something that you just figured like it’s throwing in by the
like it’s throwing in by the introduction then if you have a huge
introduction then if you have a huge commitment things that don’t need to be
commitment things that don’t need to be reverted so I’d like to have like
reverted so I’d like to have like granular commits for a tiny changes or
granular commits for a tiny changes or are meaningful things that you’re doing
are meaningful things that you’re doing and you can like bash them up and say
and you can like bash them up and say okay this is something but also it’s
okay this is something but also it’s very important that they have to say
very important that they have to say yeah but I think that it means it’s it’s
yeah but I think that it means it’s it’s about cohesion and story like it’s they
about cohesion and story like it’s they need to be like this this entry like
need to be like this this entry like this interesting unit like this happened
this interesting unit like this happened this happened this happened like it’s a
this happened this happened like it’s a chapter what happened yeah I mean
chapter what happened yeah I mean sometimes I actually like completely
sometimes I actually like completely unbundle my entire revert my entire
unbundle my entire revert my entire commits a series of all my branch yeah
commits a series of all my branch yeah and then I start like creating new
and then I start like creating new commits the story because almost kind of
commits the story because almost kind of like them narrative yeah exactly
like them narrative yeah exactly yeah I guess it’s kind of like damage
yeah I guess it’s kind of like damage from like my theater background while
from like my theater background while you’re thinking stories but like I
you’re thinking stories but like I really I really think that that’s
really I really think that that’s fundamental to having a person get
fundamental to having a person get something it’s it’s to have it as a
something it’s it’s to have it as a story narrative because it’s our we
story narrative because it’s our we that’s how the brain thinks let’s see
that’s how the brain thinks let’s see the files changed section what actually
the files changed section what actually are we looking for okay so here we have
are we looking for okay so here we have the log file yeah everything looks great
the log file yeah everything looks great we have a promise this all these
we have a promise this all these operations on a promise yeah since it’s
operations on a promise yeah since it’s very dumb but like if you really want to
very dumb but like if you really want to improve things since he is already using
improve things since he is already using wait I think a sink kind of matches here
wait I think a sink kind of matches here better than a promise because well
better than a promise because well depends on the many relations but I
depends on the many relations but I think a sink here is better if you don’t
think a sink here is better if you don’t have like an arrow handling for that
have like an arrow handling for that because if you’re not gonna do anything
because if you’re not gonna do anything I’ll reject then you just yeah oh wait
I’ll reject then you just yeah oh wait but yeah it’s nice
but yeah it’s nice looks great yeah like and I like the
looks great yeah like and I like the function type cmd’ like but it’s it like
function type cmd’ like but it’s it like I don’t get this like yeah it’s like
I don’t get this like yeah it’s like it’s it’s a promise that returns an
it’s it’s a promise that returns an async function that awaits this and
async function that awaits this and that’s what I’m saying like if you don’t
that’s what I’m saying like if you don’t really have the necessity of having so
really have the necessity of having so many layers maybe you can just do the
many layers maybe you can just do the async yeah I feel like this I this this
async yeah I feel like this I this this thing here like this confuses me a
thing here like this confuses me a little bit that’s it just I go what yeah
little bit that’s it just I go what yeah because that’s the thing like he’s he’s
because that’s the thing like he’s he’s only resolving big there’s no error
only resolving big there’s no error handling under reject yeah so I I think
handling under reject yeah so I I think this could be just a sink oh wait yeah
this could be just a sink oh wait yeah sure
sure exactly it doesn’t need a simplification
exactly it doesn’t need a simplification yeah so maybe that would be a comment
yeah so maybe that would be a comment here yeah try to see like that’s like
here yeah try to see like that’s like kind of like like an asshole standard
kind of like like an asshole standard comment that I do like yes can we make
comment that I do like yes can we make this a little bit simpler no but I think
this a little bit simpler no but I think it’s very important because like
it’s very important because like sometimes like this kind of comments
sometimes like this kind of comments have helped me a lot in the way that I
have helped me a lot in the way that I think about code and problems overall
think about code and problems overall because Meccan when I was starting to
because Meccan when I was starting to like program and as like a Dave job i I
like program and as like a Dave job i I used to have
used to have I used to overcomplicate a lot of
I used to overcomplicate a lot of problems that could be simpler mainly
problems that could be simpler mainly because like I didn’t really took the
because like I didn’t really took the time before implementing it to think
time before implementing it to think about the problem it was kind of like I
about the problem it was kind of like I just just want to get that out of the
just just want to get that out of the way yeah so because of that I didn’t ly
way yeah so because of that I didn’t ly like my solutions were usually over
like my solutions were usually over engineered at all and like after I got
engineered at all and like after I got some more practice and time
some more practice and time I understood that sitting down and
I understood that sitting down and thinking about the problem without
thinking about the problem without actually implementing or even touching
actually implementing or even touching the keyboard is very important and also
the keyboard is very important and also the concept of refinement maybe you’re
the concept of refinement maybe you’re gonna have like a first version of
gonna have like a first version of something that you’re implementing that
something that you’re implementing that it’s gonna be like a monster but then
it’s gonna be like a monster but then just look at it and see okay how can I
just look at it and see okay how can I simplify or refine this I think that it
simplify or refine this I think that it also gives you a God code reviews code
also gives you a God code reviews code reviewing also adds a certain amount of
reviewing also adds a certain amount of healthy inertia to your development
healthy inertia to your development process because prior to me working with
process because prior to me working with polar quest I tended to be like this
polar quest I tended to be like this person here it’s like working on a
person here it’s like working on a problem all day and you like you finally
problem all day and you like you finally like if I stumble on the solution like
like if I stumble on the solution like one hour from the like the end of the
one hour from the like the end of the workday and you would like push that
workday and you would like push that thing into production at the end end of
thing into production at the end end of the day because I’ve solved it oh
the day because I’ve solved it oh that feels so good
that feels so good but like with the pole Lucas you you get
but like with the pole Lucas you you get the proto Chris in and you go out of
the proto Chris in and you go out of that because like sometimes like we’ve
that because like sometimes like we’ve been looking at a problem for so long
been looking at a problem for so long that like maybe we’re missing some tiny
that like maybe we’re missing some tiny detail that could be better or maybe
detail that could be better or maybe we’re like to addictive into thinking
we’re like to addictive into thinking with our conception of what’s right
with our conception of what’s right maybe there’s like a corner case that
maybe there’s like a corner case that we’re not considering or maybe that’s
we’re not considering or maybe that’s something that can be different yeah it
something that can be different yeah it takes like fresh eyes to look at what
takes like fresh eyes to look at what can be better here
can be better here okay moving on yeah yeah okay so we have
okay moving on yeah yeah okay so we have communicator J yes which okay so we have
communicator J yes which okay so we have an event get container logs message
an event get container logs message which is what is this a reducer listener
which is what is this a reducer listener it’s an yeah exactly okay so yeah we
it’s an yeah exactly okay so yeah we have the payloads that are gonna be
have the payloads that are gonna be parsed from this JSON which is yeah a
parsed from this JSON which is yeah a tiny fix not even fix but a tiny
tiny fix not even fix but a tiny improvement here is like argh doesn’t
improvement here is like argh doesn’t really say much about what this paramus
really say much about what this paramus I mean
I mean if you have like a better variable name
if you have like a better variable name for this art could be better for to
for this art could be better for to understand like okay but what is
understand like okay but what is specifically gonna be parsed here yeah
specifically gonna be parsed here yeah the logs the errors is this actually
the logs the errors is this actually like a great example like we talked
like a great example like we talked about earlier and that question that was
about earlier and that question that was posed by about like is it easier to
posed by about like is it easier to review typescript code because yeah in
review typescript code because yeah in this case it would have been easier
this case it would have been easier because it is yeah this could be
because it is yeah this could be anything and like either it’s not even
anything and like either it’s not even either like in best-case scenario you’re
either like in best-case scenario you’re gonna do both but like if this program
gonna do both but like if this program had some type definitions or at least
had some type definitions or at least like the objects ending signatures for
like the objects ending signatures for us to understand what’s inside it or
us to understand what’s inside it or having like more description the
having like more description the descriptive name like I am inclined to
descriptive name like I am inclined to believe that Arg is something about logs
believe that Arg is something about logs because the the event name is get
because the the event name is get container logs message so maybe it’s a
container logs message so maybe it’s a long yeah I’m gonna hear that
long yeah I’m gonna hear that it’s the node ID yeah we are getting
it’s the node ID yeah we are getting there exactly but honestly it’s always
there exactly but honestly it’s always nice to be to like make sure that things
nice to be to like make sure that things are as readable and it’s important to
are as readable and it’s important to understand as possible so that could be
understand as possible so that could be your possible improvement yeah and then
your possible improvement yeah and then it just forwards this here yeah this is
it just forwards this here yeah this is this is fine like commented code so this
this is fine like commented code so this is one of the things that attends to
is one of the things that attends to like go away as soon as you add code
like go away as soon as you add code review because you can we get a little
review because you can we get a little bit sloppy when you are the only one
bit sloppy when you are the only one looking at the code and like leave I’ll
looking at the code and like leave I’ll leave this in here like you just miss it
leave this in here like you just miss it just little things like this that
just little things like this that because a linter can never catch this it
because a linter can never catch this it doesn’t know if something is a debug
doesn’t know if something is a debug statement yeah I understand the point
statement yeah I understand the point that some people make that well I just
that some people make that well I just left that commented out because I know
left that commented out because I know they’re on
they’re on I’m gonna need it in the future but like
I’m gonna need it in the future but like we have version control and we have like
we have version control and we have like very distinctive history of how things
very distinctive history of how things looked before and you can always stash
looked before and you can always stash that and put it on the different branch
that and put it on the different branch and just save it for later because like
and just save it for later because like this way it’s very easy to end up with
this way it’s very easy to end up with the repo with a lot of dead code and a
the repo with a lot of dead code and a lot of things I’ve learnt like actually
lot of things I’ve learnt like actually necessary yeah just kind of the whole
necessary yeah just kind of the whole thing so yeah I always try to stay away
thing so yeah I always try to stay away from fermented code yeah like you can
from fermented code yeah like you can put it like we have stuff like gist’s
put it like we have stuff like gist’s where you complete stuff away and we
where you complete stuff away and we have like if you’re afraid of deleting
have like if you’re afraid of deleting code don’t be like we have Russian
code don’t be like we have Russian control you can just revert and jump
control you can just revert and jump back in the money
back in the money yeah but basically in this part yeah I
yeah but basically in this part yeah I think he’s just creating an action which
think he’s just creating an action which is really cool it’s a very nice and
is really cool it’s a very nice and simple signature for a an action oh yeah
simple signature for a an action oh yeah for those of you who are not from they
for those of you who are not from they Jay asked Melanie
Jay asked Melanie or well actions are stuff from react
or well actions are stuff from react that basically it’s kind of actually
that basically it’s kind of actually Redux it’s a way that you have from
Redux it’s a way that you have from actually triggering events or things
actually triggering events or things that have to happen after a certain
that have to happen after a certain events that was a shitty explanation but
events that was a shitty explanation but basically what is that why do they exist
basically what is that why do they exist what is the problem that they why did
what is the problem that they why did how did people solve it before well
how did people solve it before well there’s a bunch of ways actually there’s
there’s a bunch of ways actually there’s a well one one model that was very
a well one one model that was very notorious in the past if I can call the
notorious in the past if I can call the past there’s things like pub/sub that
past there’s things like pub/sub that you have a bunch of events being emitted
you have a bunch of events being emitted and you listen to a couple of events
and you listen to a couple of events that you wanted and triggered the
that you wanted and triggered the drawbacks or effects if you will but the
drawbacks or effects if you will but the problem with pub/sub is that well it
problem with pub/sub is that well it wasn’t a single source of truth in terms
wasn’t a single source of truth in terms of the whole application state like you
of the whole application state like you could have a single event triggering
could have a single event triggering five different drawbacks and you
five different drawbacks and you wouldn’t necessarily know which one
wouldn’t necessarily know which one which place that was triggered from like
which place that was triggered from like who actually called that guy it was kind
who actually called that guy it was kind of hard to debug I have some traumas
of hard to debug I have some traumas from that
from that when I used to do a lot of broadcasting
when I used to do a lot of broadcasting in the MIDI in angular 1 and it’s kind
in the MIDI in angular 1 and it’s kind of hard to to debug that thing like it’s
of hard to to debug that thing like it’s and it’s kind of awful it’s kind of hard
and it’s kind of awful it’s kind of hard to roll back and like revert okay maybe
to roll back and like revert okay maybe just roll back the event or the action
just roll back the event or the action so yeah pub/sub is like one of these
so yeah pub/sub is like one of these things that ir is really nice to reason
things that ir is really nice to reason about conceptually this is very clean it
about conceptually this is very clean it just have pub and sub yeah yeah and you
just have pub and sub yeah yeah and you can build anything on it the problem is
can build anything on it the problem is really mastered your practice it’s very
really mastered your practice it’s very hard to it’s common sense of where are
hard to it’s common sense of where are things coming from and like with Redux
things coming from and like with Redux you just have this logic where you have
you just have this logic where you have some actions are triggered and the data
some actions are triggered and the data that you want to use where you’re
that you want to use where you’re listening to that which is gonna be the
listening to that which is gonna be the reducer are very clean as a payload so
reducer are very clean as a payload so you have the action type and you’re
you have the action type and you’re gonna have a respective reducer to
gonna have a respective reducer to manipulate that data and make all the
manipulate that data and make all the necessary drawbacks and it’s very easy
necessary drawbacks and it’s very easy to understand where that came from what
to understand where that came from what is the previous state what is the next
is the previous state what is the next state and that’s all made in a very
state and that’s all made in a very clean functional way so what about this
clean functional way so what about this question my tea software like aren’t
question my tea software like aren’t actions like a poor man’s data type and
actions like a poor man’s data type and redux
redux I wonder if sites kind of like it yeah
I wonder if sites kind of like it yeah it’s kind of like it because it’s a it’s
it’s kind of like it because it’s a it’s an easy way for you to visualize okay
an easy way for you to visualize okay but which kind of data where event is is
but which kind of data where event is is that I’m sending through which is kind
that I’m sending through which is kind of like the action type yeah I suppose
of like the action type yeah I suppose it’s it’s it’s a good analogy actually
it’s it’s it’s a good analogy actually yeah maybe like if if Redux was written
yeah maybe like if if Redux was written in a typescript world where typescript
in a typescript world where typescript was the only thing maybe we my actions
was the only thing maybe we my actions wouldn’t access like there probably
wouldn’t access like there probably wouldn’t the way the way they are yeah
wouldn’t the way the way they are yeah they kind of like add this little extra
they kind of like add this little extra documentation sure yeah
documentation sure yeah okay yeah do the next one
okay yeah do the next one no my view here yeah oh it’s not your
no my view here yeah oh it’s not your lazy reviewers like oh whatever okay
lazy reviewers like oh whatever okay yeah yeah this is just cleanup imports
yeah yeah this is just cleanup imports which is also nice yeah it’s also a
which is also nice yeah it’s also a thing that typescript helps you to catch
thing that typescript helps you to catch in runtime if you have things that are
in runtime if you have things that are not being used typescript – you know
not being used typescript – you know lets you know also like this is probably
lets you know also like this is probably something that I would like if I was
something that I would like if I was reviewing this I would probably object–
reviewing this I would probably object– it because I’m like yeah you’re doing
it because I’m like yeah you’re doing clean up do you clean up like in a
clean up do you clean up like in a separate commit and this is also like a
separate commit and this is also like a this this commit here shouldn’t really
this this commit here shouldn’t really exist because you’re like your build
exist because you’re like your build system should be capturing things like
system should be capturing things like this yeah this was already on the code
this yeah this was already on the code and it should never have gotten into the
and it should never have gotten into the code like first place so like this this
code like first place so like this this is just the smell that your build system
is just the smell that your build system is not yeah Oh which gives me an
is not yeah Oh which gives me an opportunity to plug a sponsor actually
opportunity to plug a sponsor actually so this this stream or a fun profession
so this this stream or a fun profession in general really is sponsored by circle
in general really is sponsored by circle CI they’ve been sponsors of the show for
CI they’ve been sponsors of the show for like ages and I used them before the
like ages and I used them before the show so it’s more like at this point
show so it’s more like at this point it’s more like a product that we sell so
it’s more like a product that we sell so if you like if you are looking at
if you like if you are looking at something to automate your build process
something to automate your build process and have like something that runs things
and have like something that runs things on your code like your proto quests and
on your code like your proto quests and checks your code or any like auto
checks your code or any like auto deployment or anything like that that
deployment or anything like that that you need block them robot that does
you need block them robot that does things on your github repository Circle
things on your github repository Circle C is excellent and if you if you sign up
C is excellent and if you if you sign up with them you can use circle CI dot
with them you can use circle CI dot Fonfon function comm to let them know
Fonfon function comm to let them know that you came from here that helps out
that you came from here that helps out the show a lot I mean like makes our
the show a lot I mean like makes our relationship with them a lot better so
relationship with them a lot better so please do that and check them out I
please do that and check them out I really like them oh yeah and I have a
really like them oh yeah and I have a real life use case for that we are also
real life use case for that we are also moving to circles yet because
moving to circles yet because it’s faster than Jenkins keepo yeah yeah
it’s faster than Jenkins keepo yeah yeah that’s I think that like just a plug you
that’s I think that like just a plug you like the reasons why I like it it’s as
like the reasons why I like it it’s as you say like it’s so fast
you say like it’s so fast yes and it’s really easy to also like
yes and it’s really easy to also like paralyze it yeah so they have this cool
paralyze it yeah so they have this cool little graphy thing that shows you like
little graphy thing that shows you like where you have blockers yeah it’s very
where you have blockers yeah it’s very and like it’s all doctor based so like
but agent zero zero zero zero says that yes lint will catch a news imports yes
yes lint will catch a news imports yes also that’s what I use
also that’s what I use before typescript and it’s also does the
before typescript and it’s also does the same it’s very good I I don’t think you
same it’s very good I I don’t think you should use like one or the other I think
should use like one or the other I think it’s nice to use like both because yes
it’s nice to use like both because yes lint I usually use like same as
lint I usually use like same as everybody else the Airbnb preset which
everybody else the Airbnb preset which is super nice because it kind of formats
is super nice because it kind of formats and if you’re using something like
and if you’re using something like prettier as well yeah it helps you like
prettier as well yeah it helps you like take care of also the formatting and
take care of also the formatting and unused imports and also things to help
unused imports and also things to help you have a pattern or a standard or for
you have a pattern or a standard or for writing code in your project especially
writing code in your project especially when you have like a team of loads
when you have like a team of loads of people that’s not important yeah I
of people that’s not important yeah I like super opinionated about my code
like super opinionated about my code with like I like being obstinate with
with like I like being obstinate with omitting semicolons and stuff like that
omitting semicolons and stuff like that but when it comes to you like working a
but when it comes to you like working a team it’s so good yeah I have something
team it’s so good yeah I have something that just takes away those disagreements
that just takes away those disagreements and yes besides like we have decided
and yes besides like we have decided this is okay moving up oh that’s a nice
this is okay moving up oh that’s a nice one so he is switching from he is
one so he is switching from he is switching to strict checking which is
switching to strict checking which is something that we should also always do
something that we should also always do strict check saying is you’re checking
strict check saying is you’re checking not only for the value but also for the
not only for the value but also for the type so not in this case because it’s
type so not in this case because it’s it’s always going to be screen string if
it’s always going to be screen string if you’re checking for a container but if
you’re checking for a container but if you are checking for something like 0
you are checking for something like 0 and integer or zero in the string if you
and integer or zero in the string if you don’t have the type checking in place
don’t have the type checking in place that can be a false positive so we call
that can be a false positive so we call this good might
this good might like if you don’t do this javascript
like if you don’t do this javascript might like do some like type
might like do some like type approximates for you but that could lead
approximates for you but that could lead to some bugs that you’re not predicting
to some bugs that you’re not predicting so yeah you should always do things
so yeah you should always do things straight
straight yes because this is just like what I
yes because this is just like what I expected – yes this tries to be smart
expected – yes this tries to be smart yeah so yeah it’s rejecting and holy
yeah so yeah it’s rejecting and holy again stops eight times Microsoft
again stops eight times Microsoft hello so strict checking is just using
hello so strict checking is just using like three equals three equal signs
like three equals three equal signs instead of two and four
instead of two and four difference is like explanation two evils
difference is like explanation two evils that’s a very good thing that he’s doing
that’s a very good thing that he’s doing yeah that’s super nice okay so we have
yeah that’s super nice okay so we have some styles
some styles right yeah
right yeah one thing for me here is he has a very
one thing for me here is he has a very big font family declaration I like to
big font family declaration I like to have like a convention that we keep font
have like a convention that we keep font family declarations within like
family declarations within like variables because one is Caesar for you
variables because one is Caesar for you to reuse
to reuse especially if you have like tons of
especially if you have like tons of other definitions like you have one that
other definitions like you have one that is main one which is SF tamaño in this
is main one which is SF tamaño in this case but he has several different
case but he has several different fallbacks and like it’s better to have
fallbacks and like it’s better to have that in a variable so you don’t like
that in a variable so you don’t like maybe change the order of the fallbacks
maybe change the order of the fallbacks and then you’re gonna have maybe
and then you’re gonna have maybe different fonts and yeah like Tom this
different fonts and yeah like Tom this most like I’m like I don’t think that
most like I’m like I don’t think that you like waste like create variables
you like waste like create variables everywhere special not global ones but
everywhere special not global ones but fun family is one of those things where
fun family is one of those things where like you don’t want a lot of funds in
like you don’t want a lot of funds in their application like it’s gonna be
their application like it’s gonna be like a few dozen exactly yeah one thing
like a few dozen exactly yeah one thing if you’re thinking about performance one
if you’re thinking about performance one thing that I will also change is like we
thing that I will also change is like we can see how many fallback fonts is had
can see how many fallback fonts is had he has an like they’re not systemic
he has an like they’re not systemic systemic fonts are when like it’s some
systemic fonts are when like it’s some fonts like Times New Roman or Arial that
fonts like Times New Roman or Arial that your OS is probably already gonna have
your OS is probably already gonna have installed for all the other one
installed for all the other one like Roboto or Monaco or SF mano you’re
like Roboto or Monaco or SF mano you’re probably gonna have to fetch it from
probably gonna have to fetch it from something like google fonts and font
something like google fonts and font loading in JavaScript and front-end in
loading in JavaScript and front-end in general is a very costly expensive
general is a very costly expensive process like it usually depending on
process like it usually depending on your strategy of course but like when
your strategy of course but like when you when you lower the font that blocks
you when you lower the font that blocks the entire thread for rendering the
the entire thread for rendering the styles chlorophyll kid asks do you
styles chlorophyll kid asks do you prefer CSS properties in alphabetical or
prefer CSS properties in alphabetical or semantic order alphabetical yeah I mean
semantic order alphabetical yeah I mean III yeah like I used to use ITC SS which
III yeah like I used to use ITC SS which is something that you organize your CSS
is something that you organize your CSS properties in order of semantics like
properties in order of semantics like you had the Trump’s which was the most
you had the Trump’s which was the most like overrides like important and things
like overrides like important and things they’re gonna override something else
they’re gonna override something else and the opposite was like block-level
and the opposite was like block-level things like positioning and stuff I used
things like positioning and stuff I used to like this and apparently there’s some
to like this and apparently there’s some performance optimizations on top of it
performance optimizations on top of it but the thing is that I used to keep
but the thing is that I used to keep having to think for so much time and
having to think for so much time and that was before we had something like
that was before we had something like prettier or yes meant that just
prettier or yes meant that just reorganize the thing for us yeah so I
reorganize the thing for us yeah so I used to keep having to think of okay but
used to keep having to think of okay but position comes before or after margin
position comes before or after margin like and I used to have to think a lot I
like and I used to have to think a lot I think nowadays that we have all these
think nowadays that we have all these fancy tools for organizing our code for
fancy tools for organizing our code for us that’s probably a better call but
us that’s probably a better call but like I’ve grown used to organizing my
like I’ve grown used to organizing my properties and alphabetical order
properties and alphabetical order because for me it’s more straightforward
because for me it’s more straightforward yeah as an adult that knows the alphabet
yeah as an adult that knows the alphabet tea software but isn’t it’s a system app
tea software but isn’t it’s a system app so it won’t be doing any font fetching
so it won’t be doing any font fetching are these phones are here just make it
are these phones are here just make it good look good and
good look good and different systems yeah that’s a good
different systems yeah that’s a good comment yes or no like I think that no
comment yes or no like I think that no but it’s uh it’s not a system map it’s
but it’s uh it’s not a system map it’s it’s on when it’s a weapon yeah but I
it’s on when it’s a weapon yeah but I think he means like its its employees I
think he means like its its employees I like to make things pretty I don’t know
like to make things pretty I don’t know especially since this kind of such as
especially since this kind of such as performance like even if it’s a system
performance like even if it’s a system thing
thing nobody likes a wait for the
nobody likes a wait for the phones to load so like it’s a good
phones to load so like it’s a good practice yeah I think that like
practice yeah I think that like developers are way too like our attitude
developers are way too like our attitude of having slow development tools we’re
of having slow development tools we’re way too permissive
way too permissive without yeah it’s so much waiting for
without yeah it’s so much waiting for development tools because we’re like
development tools because we’re like yeah developers can wait like it’s only
yeah developers can wait like it’s only uses care about performance developers
uses care about performance developers use their tools so much yeah like it’s
use their tools so much yeah like it’s so important to have like these fast
so important to have like these fast loading and snappy tools yeah like let’s
loading and snappy tools yeah like let’s say that you have like the CLI tool with
say that you have like the CLI tool with docker and it takes like 5 seconds or
docker and it takes like 5 seconds or one second or perhaps like 100
one second or perhaps like 100 milliseconds that’s a huge difference in
milliseconds that’s a huge difference in how pleasurable the toolless years yeah
how pleasurable the toolless years yeah I think we had this bet habit of like
I think we had this bet habit of like burn the stuff that are for us or
burn the stuff that are for us or internal tools we tend to be more sloppy
internal tools we tend to be more sloppy yeah
yeah which is it kind of speaks of this scene
which is it kind of speaks of this scene in Brazil which is like Casa Jeff a
in Brazil which is like Casa Jeff a theater Spitzer’s pub which is where on
theater Spitzer’s pub which is where on the blacksmith’s housing the stick is
the blacksmith’s housing the stick is made of wood which is literally like
made of wood which is literally like that when when you’re doing stuff for
that when when you’re doing stuff for yourself usually you don’t perfect your
yourself usually you don’t perfect your craft enough but that’s something that
craft enough but that’s something that we should do so gear Augie and rickety
we should do so gear Augie and rickety music comment like know it’s important
music comment like know it’s important to talk here oh yeah I mean I prefer not
to talk here oh yeah I mean I prefer not using them like if I can get around
using them like if I can get around I want using important just by
I want using important just by recreating the the Dom hierarchy within
recreating the the Dom hierarchy within the CSS I usually prefer doing that
the CSS I usually prefer doing that rather than important because it’s very
rather than important because it’s very hard to have it like just without
hard to have it like just without looking at the code
looking at the code it’s very hard to understand okay this
it’s very hard to understand okay this is being overwritten because someone
is being overwritten because someone else has a different so I think it’s
else has a different so I think it’s kind of hard to visualize when you’re
kind of hard to visualize when you’re trying to debug some style but yeah I
trying to debug some style but yeah I don’t think it’s like forbidden like a
don’t think it’s like forbidden like a lot of people tend to think of important
lot of people tend to think of important as this thing that you should never use
as this thing that you should never use well there are use cases or even like in
well there are use cases or even like in lining some styles because you also want
lining some styles because you also want to overwrite them yeah but yeah I
to overwrite them yeah but yeah I usually if I can stay away from it I
usually if I can stay away from it I usually do so in this case it’s where I
usually do so in this case it’s where I see a PR that hasn’t important usually I
see a PR that hasn’t important usually I asked like hey do you know if there is a
asked like hey do you know if there is a any way to make this property B be
any way to make this property B be prioritized in front of other words can
prioritized in front of other words can you can you try to recreate that with
you can you try to recreate that with the higher hierarchy because there are
the higher hierarchy because there are some times where there it just can’t be
some times where there it just can’t be done so like it’s it’s nice you don’t
done so like it’s it’s nice you don’t jump to the conclusion of the person as
jump to the conclusion of the person as being sloppy I think it’s always nice to
being sloppy I think it’s always nice to ask yeah then again like to in a pull
ask yeah then again like to in a pull request it’s kind of like yes ask yeah
request it’s kind of like yes ask yeah and one last thing I think in this CSS
and one last thing I think in this CSS part which is the colors I always try to
part which is the colors I always try to put the colors especially in these cases
put the colors especially in these cases in in variable CSS variables because
in in variable CSS variables because it’s very easy to fall into the trap of
it’s very easy to fall into the trap of like having fifty shades of gray for
like having fifty shades of gray for real
real because then you have like so many super
because then you have like so many super similar like colors that are not exactly
similar like colors that are not exactly the same and then you have like so much
the same and then you have like so much code that could be reused and yeah
code that could be reused and yeah and maybe for a more like what is the
and maybe for a more like what is the word for a more like if you have a good
word for a more like if you have a good eye for design you’re probably gonna
eye for design you’re probably gonna spot these differences we don’t go into
spot these differences we don’t go into websites not all yeah yeah it’s and a
websites not all yeah yeah it’s and a word of advice if you’re working for a
word of advice if you’re working for a music company with a green logo
music company with a green logo right it’s like like do a variable
right it’s like like do a variable called Spotify green because that will
called Spotify green because that will change and you won’t know which sport if
change and you won’t know which sport if I agree
I agree being referred to so it’s like it’s it’s
being referred to so it’s like it’s it’s it support like generations yeah again I
it support like generations yeah again I would get rid of it yeah like you can
would get rid of it yeah like you can definitely check this out on the gist
definitely check this out on the gist were another branch or even though the
were another branch or even though the history in the bridge yeah and also here
history in the bridge yeah and also here we see like a little bit of
we see like a little bit of inconsistency between the the spacing
inconsistency between the the spacing and stuff like this is just fixed with
and stuff like this is just fixed with having like just use circle CI or
having like just use circle CI or something prettier like when we have I
something prettier like when we have I like tools dedicated styling I think
like tools dedicated styling I think that we should like use those I really
that we should like use those I really like having separated like that’s a big
like having separated like that’s a big achievement with pretty right yeah that
achievement with pretty right yeah that we have separated out styling it with
we have separated out styling it with its own thing and I like linting in
its own thing and I like linting in something because the importance of
something because the importance of these things is so different like
these things is so different like limiting actually like it’s actually
limiting actually like it’s actually there to catch proper errors and bugs
there to catch proper errors and bugs and stuff like styling and that’s that’s
and stuff like styling and that’s that’s way more down the line and and really
way more down the line and and really like that because of the different
like that because of the different priority in things it’s so nice to you
priority in things it’s so nice to you like because you a linter you probably
like because you a linter you probably want to have run all the time what
want to have run all the time what prettier is something that I want to
prettier is something that I want to like I don’t want my code jumping around
like I don’t want my code jumping around yeah like well I wanna hear it
yeah like well I wanna hear it oh yeah so no comments I prefer it that
oh yeah so no comments I prefer it that way yeah these are all like project
way yeah these are all like project preferences
preferences yeah in this case he’s choosing to send
yeah in this case he’s choosing to send most of the styling is props I don’t I
most of the styling is props I don’t I don’t think it’s bad I just kind of
don’t think it’s bad I just kind of prefer to have like a class that handles
prefer to have like a class that handles all that because then you can maybe if
all that because then you can maybe if you have like another place where you
you have like another place where you where you have the same definite
where you have the same definite as in like top 0 right 0 height 18
as in like top 0 right 0 height 18 pixels you can reuse that especially if
pixels you can reuse that especially if you’re using something like some CSS and
you’re using something like some CSS and GS framework which I he isn’t so maybe
GS framework which I he isn’t so maybe that’s why he’s sending as props you can
that’s why he’s sending as props you can just reuse that or send like the class
just reuse that or send like the class name as a prop and then you interpret
name as a prop and then you interpret the class name where you’re receiving it
the class name where you’re receiving it with something like class names which is
with something like class names which is a package just confusing because
a package just confusing because everything has a same name anyway last
everything has a same name anyway last part – I suppose class and yeah also the
part – I suppose class and yeah also the unclick when you’re doing something like
unclick when you’re doing something like that can you
that can you yeah if you’re not like passing any
yeah if you’re not like passing any params or if you’re not handling
params or if you’re not handling anything within this only thing you can
anything within this only thing you can just like call the function name without
just like call the function name without any programs because that’s literally
any programs because that’s literally the same as he doing but shorthand it so
the same as he doing but shorthand it so it’s so nice yeah yeah yeah this is just
it’s so nice yeah yeah yeah this is just an unnecessary wrapper was like your
an unnecessary wrapper was like your August says I still use BM for CSS
August says I still use BM for CSS classic oh yeah yeah BM is that the
classic oh yeah yeah BM is that the meaning architecture where you have like
meaning architecture where you have like the container and then you you fall down
the container and then you you fall down there was specific names or it’s been a
there was specific names or it’s been a while since I use last but it’s very
while since I use last but it’s very nice because then you can have a very
nice because then you can have a very clear view of like this is in this
clear view of like this is in this container which is a parent of everyone
container which is a parent of everyone and this has a and then you separated by
and this has a and then you separated by underlines underscores and then you have
underlines underscores and then you have like all the sons you have the the
like all the sons you have the the elements which are kind of like the
elements which are kind of like the leaves if you think of a tree shaped
leaves if you think of a tree shaped architecture it’s pretty nice because
architecture it’s pretty nice because you can just like look at the function
you can just like look at the function name at the class name and see okay this
name at the class name and see okay this is a son of that and if we have some
is a son of that and if we have some overriding and styles maybe you can be
overriding and styles maybe you can be coming from the parents or something
coming from the parents or something like that
like that and you know who the parent is it’s it’s
and you know who the parent is it’s it’s nice it’s a pretty nice I also really
nice it’s a pretty nice I also really enjoy it but lately I’ve been using CSS
enjoy it but lately I’ve been using CSS modules which is also a very good thing
modules which is also a very good thing because it keeps you from like
because it keeps you from like replicating styles all the time it just
replicating styles all the time it just has like a hash it has the function that
has like a hash it has the function that you’re the the name that you’re passing
you’re the the name that you’re passing through the class but then internally
through the class but then internally they do parsing and
they do parsing and turns everything into a single hash that
turns everything into a single hash that avoids you from like having that
avoids you from like having that annoying thing where you just change
annoying thing where you just change something in the class and then it
something in the class and then it changes in a mom you’re not expecting so
changes in a mom you’re not expecting so I like CSS modules right we’re out of
I like CSS modules right we’re out of time Oh like one all right like that’s
time Oh like one all right like that’s not a lot of time yeah so I guess we
not a lot of time yeah so I guess we will wrap this out like no you have any
will wrap this out like no you have any like final questions or anything yeah
like final questions or anything yeah unfortunately we didn’t have time to
unfortunately we didn’t have time to review this c-sharp repo no sorry
review this c-sharp repo no sorry but next time thank you so much for
but next time thank you so much for sending all of these yeah it was nothing
sending all of these yeah it was nothing how much responses sirness yeah like you
how much responses sirness yeah like you enjoyed this a lot it was so much fun
enjoyed this a lot it was so much fun thank you so much for coming
yeah it’s I think like did you like did you think that this format worked do you
you think that this format worked do you think that like let the whole like doing
think that like let the whole like doing code review on stream do you think that
code review on stream do you think that there is anything that we could like
there is anything that we could like improve for next time something that you
improve for next time something that you think
think where are you using that good oh this
where are you using that good oh this almost work but you can should do this
almost work but you can should do this or maybe crazy ideas just so there’s
or maybe crazy ideas just so there’s crazy ideas yeah please like we use
crazy ideas yeah please like we use organic this is super our fun at this
organic this is super our fun at this points of like I’m just experimenting me
points of like I’m just experimenting me yeah and also like this is while you’re
yeah and also like this is while you’re thinking about that this is now like the
thinking about that this is now like the actual time that I’m gonna try to do
actual time that I’m gonna try to do these streams so next week at this same
these streams so next week at this same time we’re gonna have Dan Abramov oh and
time we’re gonna have Dan Abramov oh and I try to treat teach me hooks which I
I try to treat teach me hooks which I have in actually intentionally never
have in actually intentionally never looked at yet because I figured like I
looked at yet because I figured like I should have done a drum of teach me
should have done a drum of teach me hooks and and yeah that’s gonna be
hooks and and yeah that’s gonna be spoiled
spoiled but most people just learn hooks by
but most people just learn hooks by reading the documentation like
reading the documentation like mortals yeah exactly and like yeah yeah
mortals yeah exactly and like yeah yeah it’s so important god I really kissed do
it’s so important god I really kissed do more code yeah but it’s gonna be amazing
more code yeah but it’s gonna be amazing their number buff yeah yeah all right
their number buff yeah yeah all right chlorophyll kiss I fixed the 30fps yep
chlorophyll kiss I fixed the 30fps yep yeah I will yeah I like the QA followed
yeah I will yeah I like the QA followed by code review what school may be set at
by code review what school may be set at Pomodoro for each PR so you can show
Pomodoro for each PR so you can show more than we we set the Pomodoro for
more than we we set the Pomodoro for like the whole time of comb reviewing we
like the whole time of comb reviewing we just like an hour so yeah that’s a great
just like an hour so yeah that’s a great idea that we should just like separate
idea that we should just like separate time slots yeah noted Thank You agents
time slots yeah noted Thank You agents you know very participant in the street
you know very participant in the street no it’s awesome yeah it’s really cool to
no it’s awesome yeah it’s really cool to have you it’s so much fun to do these
have you it’s so much fun to do these things
things yeah because it’s so so cool to have a
yeah because it’s so so cool to have a chat and like jump back in exactly I had
chat and like jump back in exactly I had a blast
a blast yeah it would be really cool if like I
yeah it would be really cool if like I am looking forward to like involving
am looking forward to like involving people with visual studio like yeah yeah
people with visual studio like yeah yeah because I have a twitch mode yeah so
because I have a twitch mode yeah so they can like you can highlight things
they can like you can highlight things it’s gonna be super day yeah day you’re
it’s gonna be super day yeah day you’re all get an IDE like more planets yes
all get an IDE like more planets yes this is gonna be so much more prettier
this is gonna be so much more prettier eventually plants yeah I will sort that
eventually plants yeah I will sort that out I would like to do have that as well
out I would like to do have that as well yeah all right brilliant thank you so
yeah all right brilliant thank you so much for tuning in this has been a blast
much for tuning in this has been a blast and see you all next week saying thank
and see you all next week saying thank you so much you guys for having thank
you so much you guys for having thank you for having me and thank you guys for
you for having me and thank you guys for watching that was so fun
watching that was so fun bunny
Please follow and like us: