foreign
[Music]
and welcome back
uh Keith is the co-founder and
co-organizer of taipei.py the largest
python User Group in Taiwan
he's lead back and engineer at ishef and
served as chairperson of python APAC in
2015. and Keith is going to talk to us
about code review for senior python
Engineers so please give it up for Keith
[Applause]
so today we'll explore the two
difference between a senior Python and 9
years
Thailand developers we'll also diving
into a profound impact the experience
and well-rounded participative can have
honorable quality and later on
production
so whether you are an aspiring the real
person or a seasoned experts I hope
you'll find insights and the principles
now we are going to describe
sorry so today's agenda was very two
points like first we'll uh
first we are dive into the six key
points I will see them pattern code
review and the second we'll discuss
about supportive environment and Tools
around before requests okay
feed vacation
so Indiana is we won't go into how to
details in this show talk and we don't
have the right talk about a career
framework which may be another talk and
then of course we can discover how to
find a good job in my how to learn
people in 10 toes okay
so have anyone do a call review before
um
let's make a few sure so I'll probably
spill likewise report because someone
may even have a reviewer called page for
the newness kernel anyway and hi I'm
Chris Young I just have introduced I'm
from Taiwan and if you can you want to
come let me you can find me later on at
home walk okay look at my video uh
imagination like my company is doing
like polls season in the restaurant we
have like I have like uh we doing the
all the preparation and the handle
translation for our iPad and we have
some like HRS jungle and a variety of
database my Sequel and the postgres and
the mongodb radius I'm gonna okay
so now back to our foreign
right so yeah you need to get sense then
to use this email address
now it's more to the GitHub already so
you can do it like your normal parties
but it's it might still want to really
it's like develop the sky there are many
advantages like you can even see let's
see pylons internals you can inform it
so so and it was early early yesterday
so
like the first point here comments no we
are going to uh the comments always
about the core visibility so but
sometimes it's even more important
medical he to be honest good rather than
just comment everywhere so let's see
some example Maybe
okay
so for example like you need to guess
your highest risk live call and also is
Aboriginal code was available mean so
like it's time to place the reader's
patience become down every day
so another example now we have some
comments on the call so it makes sense a
little better but coasters like them so
so you need to read a comment and you
just understand what the code is going
to do okay
sure let's compare another example so
now uh now we have a mode it's pretty
simple code to like you tell the build
total we are going to have a variable
naming and like iterates over the menu
items that should be much easier clear
right so it's like I think it's like
senior driver's Day live to learn
something okay so now back to a concise
call
so
um
so we like who who don't like a
descriptive and
purpose a previous call so back to
another core example no it's just the
same example before
the culture variable just tells the
purpose of your total right
so
so back to the
key points now is naming a set for this
creative and the purpose now we have
unicorns and come back to the variables
so like and so anybody thinks how to
name the variable and the module in
different files like you have a user in
users apply you have like remember in
cnn.pi it might be like
how can you do the right choice or a
better choice for your teammates how
they can find easier to find out let's
uh
so like another light or suggestion you
may try to regret those video search you
just bonus
so pattern name example so
usually we are talking about purpose we
read it in the code about purpose so in
the line remember logic or in member UTS
I think we are focused on what's the
function want to do so when you look at
the first one it repeats what is doing
equal remember roles and he said
function equivalent version but in a
second
if the employee list remembers is
properly the purpose of this function
want to do it okay so I think in more
normally the second one will be a better
choice
so and somehow is just not just about
code it went back to your even far your
module naming is can be like you
understand is instead of puncture or
spec and documents
okay
so let's back to the dental python
so if you haven't been scared before now
you are going to do this again I mean it
shows a lot of interesting course okay
so we're just Frozen sandwich so like
comments and naming you can have like
it's very simple and beautiful since the
principle we are going to have it
and uh with ability and easy to explain
and namespace like you know you it could
be our diverse daily life
so now let's go to six key points of the
senior python code review
so I think normally the senior theater
just don't write a unusual code but
sometimes I just found different reports
they are and use impose variables and
you are going to guess what's happening
there but actually it's easy to avoid
just by using some help later tools like
fake age so for example someone Imports
this but you have your remote started
thinking somewhere it might be the CSS
somewhere but no what and there is an
ambiguous variable l what does mean what
does it mean right okay
huh so uh so that's why I say you might
use a tool and like we can meet so when
you do git commit you just check like
your call with like you say use you
break a channel code for me so it says
this is imported when I use and the
local variable error is assigned but
never use it again okay and learn even
though complaining about the biggest
variable name oh cool let's enter but if
you really want we can skip it anyway
so another common point in life
everywhere I searched
python errors like and you have
sometimes you may have like default
function arguments in your your code
like you use this in your function
arguments or you modify this when you
iterating over it and the last one I'm
going to show
is a real party real case over this year
is an operation and someone usually like
the the
Lambda in a loop and I think okay you're
going to do every iteration but in the
end it only to the last one iteration so
so we've we spend some time to find our
case and wow it's a surprise in case
like you might search me and like come
and buy some people right
so now everyone say no paper but I'm not
sure if I will be read over the official
documents and actually is can be like
you find in Black in ISO or fake
somewhere if someone has done it for you
okay
so this is an example like you can have
the link in your editor so I filmed the
senior daily life is like you have
everything every arrows found very early
in your editor in your convinced in your
pull request so you find a errors as
early as possible so this is like you
have the fake Edge in your VIN editor
foreign
supportive environment and Tools around
the power request
okay
so
before the core review will let the
price like documentation when someone
like someone like coming message is safe
self safe who knows but we don't really
really comments every day but once you
are going to check out the history it
might be the last clue you can find in
your code why it do this code because he
didn't write the comments and you can
not get even variables so combination it
might be the simple only way to find add
a lot of time okay and if you are lucky
to find back to the poor request usage
and let's go to and the last and you're
going to find the 10 years ago documents
special speak about what the module is
doing so like we have like design review
document for years so in in there we'll
put person reasons about what is
Portugal the CRM projects like like
online ordering projects we have like
how we want to improve implement the
plan and we will often do we always do
it for recording of course
because we want it to find the errors
and do a discussion early when we before
the Improvement so I think the point so
and later we have like design review
templates and it's really helpful
because it because for human is so hard
to Define everything you are going to
climb Mountain where you are going to
bring with you so you have like this and
checklist and they feel the temperature
so you can find from the templates
so like it might be like somehow you're
going to have your API looks how you
want to you have your TV model looks yes
and there is there something performance
review do you need a plan B if
everything just doesn't work you're
going to roll by your release like the
heavy one so so right in the live if
like the company going to IPO so you are
going to have a security check for or
even just paperwork can you check I I
have done some security check anyway
it's a good one and so like for this
year we doesn't even have a developer
design review even we even have the SI
design review for someone going to
deploy a light info changes so they are
going to have like Plan B is very
important for SI because
since happens I think in si is even more
seriously okay so okay and there you now
when we have also like we have a Time
evaluation templates this year a lot of
other good one like every developer can
have a design tablets to evaluate the
speed in the projects it's a hard one
but okay I think it was to think of it
yeah you tell me some time okay so
documentation for 10 years company May
missions Google talk figma or something
but
that is okay
so like
anyone has decided in the dominance the
company so can you raise your hand
uh field okay so I was a CIA life
Jenkins get action in in your building
process and the city is like uh
you have like Auto ottoman
ottoman deploy your code to the
production okay
so it reduce the light pen for routine
so you don't need to type in so much
since to do early deploy and the levels
one time it even save our system because
AWS just like cannot really deploy the
machines so luckily we just have a
automation with the pro is CD the
process so we just do some buttons and
the service convert so I think it's also
good to Rob us and Recovery it's like
actually to for me I personally but if
you don't have cicd you are how to be a
senior dear person in your company
because you need to marry billing so
much since manually so how Focus to like
frozen documents something like that so
so you can have a CI in your code
request so it's just like uh like
building someone is going to reveal you
not always a review of merging is black
okay so make sure since the principle
instead of like human communication or
don't you can imagine that before I read
something so and I also spell pipeline
so there are many privileges like
Jenkins girl actions
AWS scope you and even for data there
are some new services
and they can like compare together use
with click on me and Netflix since I saw
black okay
so the other one is essential Point like
you we own even for data but I want to
find the error more early so they are
doing this kind of thing instead you
deploy and you find office on a
production that's not everyone that
that's fine yes
okay so uh
now there's cold coverage is how medical
lines in your repo have recovered like
for example our main report headline 95
courage is like I I ready to hear this
this number so uh it's for us we have
much confidence on deploy because we
have like every time every pull request
we check well find this light isn't the
test why is it are you sure this logic
is really working because you haven't
tested it so and then we do functional
tests in our
pull requests and we add about 95 to 100
coverage so and so it's easy to like for
people to review they don't need to
they don't need to guess what this code
that is work if you have already a test
for it
so there are many tools too so I
encourage that type and Nicole cup and
sonar Cube and there are some service
you can use
everywhere
so you have like a curry check in your
pool request of course so this example
in our company like 95 this one is oh 95
is our project this this product is 100
covered look you know the coverage page
you don't see that 100 yeah
so and we are more relief okay back to
the general python again
so see I encourage you we I think it
helps to find arrows array and you can
it's please find it find in your pull
request voice not cover and and if you
have document templates you can buy
Force the rules in your organization yes
so like that might be joke advising the
jewel is everywhere even like country
though so the preferably only one way to
like show in your teamwork your
organization the cicd document and
templates
so and nowadays the AI cancer so the
senior experience might be a challenge
for us now so like are you senior more
than judge Beauty something
co-pilot all right anyway
in Korean experience I think the real
still the terminology is still working
so it's like like it still tells the
wrong answer so we still need to finger
our life while and they cannot like is
about like AWS
info since but I always get around maybe
I'm not good good prom Mountain anyway
but every time you travel official
attack is kind of help and at one time I
even asked a direction and let something
is even not on the official talk about
let's say like did have probably going
to songs in like April but it's just so
hard to find out of your document and no
not to mention the church if you never
know buy it and my one day no no okay no
and the light the sharing experienced
the tour experiments with your team I
think it's also good life someone in our
team to give GitHub for Pilots for us so
we we might learn for it and everybody
get going okay
so is teamwork and uh you know in our
organization there's a key point about a
senior is a mentorship so if we are very
careful how you how you can help others
or not is marry our key point of view
and uh is that the official
self-learning Ovation books or the
latest AI iteration I think it's all
helping like during the python Taiwan
you may have a consideration
all right the last summary is like
actually I think the senior point is not
not so important or it's more about how
we be helpful to others so like
mentorship or you help others or you
have the icicially helping you so you
find and you have yourself knowing like
common errors so I think that's the
point of this talk so the supporting
environment tools and the final first
error in very very first place is the
key principle all about this story is
going to take away
so
and thank you this is my talk today
[Applause]
foreign
[Applause]