Cách đt tên ti ng Anh c a bi n, class, method đúng ế ế
ng pháp khi code
Nhi u k s ng i Nh t (và c k s Vi t Nam - ng i d ch) không gi i ti ng Anh l m. ư ườ ư ườ ế
Chùm bài báo này nói s l c v m i quan h gi a ng pháp ti ng Anh và vi c l p trình. ơ ượ ế
Riêng bài này nói v các quy t c đt tên bi n, class, method đúng ng pháp ti ng Anh. ế ế
Khi dùng chu n ti ng Anh có th giao ti p d dàng v i các k s n c ngoài (ví d trên ế ế ư ướ
GitHub...). Chính tác gi nh thông qua GitHub mà đc tuy n d ng vào 1 công ty c a M . ượ
Trong bài ký s này, thông qua vi c gi i thi u m t ph n nh h ng đó hy v ng có th h u ưở
ích cho vi c l p trình c a đc gi .
N i dung
1. Ti ng Anh l p trình đn gi nế ơ
2. Đi u quan tr ng nh t là c n hi u s khác nhau gi a n i đng t và ngo i đng t
2-1 N i đng t , ngo i đng t là gì?
2-2 M i quan h gi n i đng t , ngo i đng t v i quy t c đt tên
2-3 Chú ý khi s d ng n i đng t , ngo i đng t
3. Method dùng n i đng t
3-1 Câu lo i 1 s d ng tên method chính là object
3-2 Câu lo i 2 s d ng trong câu có chu i object. bi n static ế
4. Method dùng n i đng t
4-1 Câu lo i 3: ch ra object
4-2 Câu lo i 4: S d ng k t h p các object ế
4-3 Câu lo i 5: s d ng trong tr ng h p mu n thay đi tr ng thái c a object ườ
5. Câu kh ng đnh cũng bi n thành câu h i ế
5-1.Method tr l i d ng Boolean
6. Hi n th thu c tính (attributes)
6-1 Hi n th danh t + danh t
6-2. S d ng gi i t trong tên method
1. Ti ng Anh l p trình đn gi nế ơ
Ngôn ng l p trình v c b n là d a trên ngôn ng t nhiên. Vì th , c n hi u đc c ơ ế ượ ơ
b n ngôn ng t nhiên.
Có th có nhiêu ng i nghĩ ng pháp ti ng Anh khó, nh ng th c s , v c b n, trong l p ườ ế ư ơ
trình ti ng Anh đc s d ng m t cách đn gi n. Trong code không dùng would, may, ế ượ ơ
might... cũng không c n bi t v thì c a đng t nh hi n t i hoàn thành, quá kh . Ch ng ế ư
may mà có ai đó dùng các cách vi t ti ng Anh ph c t p s gây khó hi u cho ng i đc nên ế ế ườ
c n ph i dùng ti ng Anh đn gi n khi code. ế ơ
2. Đi u quan tr ng nh t là c n hi u s khác nhau gi a n i đng t và ngo i đng t
Khi chúng ta không bi t t nào đó, chúng ta có th tra nghĩa trong t đi n. t đi n, ti ngế ế
Anh và ti ng Nh t (ti ng Vi t) đc trình bày d i d ng b ng hash. Ph n l n các tr ng ế ế ượ ướ ườ
h p có th tra t và s d ng đúng nh ng cũng có khi ch d a vào nghĩa c a 1 t không th ư
có cách s d ng đúng. Hãy th xem xét ví d sau:
He ran a coffee shop: Anh ta kinh doanh quán cà phê
He ran to a coffee shop: Anh ta đã ch y t i quán cà phê
Ch khác 1 gi i t to nh ng nghĩa đã khác h n nhau. T i sao l i có s khác bi t này. Là do ư
t run đã đc dùng d i hai d ng là ngo i đng t và n i đng t khác nhau. ượ ướ
N u không phân bi t đc cách dùng n i đng t và ngo i đng t , có th s d n t i ế ượ
dùng sai. Vì th khi tra 1 t trong t đi n, chúng ta ph i xem 1 đng t đc dùng v i t ế ượ ư
cách là n i đng t hay ngo i đng t .
2-1 N i đng t , ngo i đng t là gì?
V y n i đng t , ngo i đng t là gì? V m t ng pháp, n i đng t là đng t dùng
trong câu ch c n có ch ng (Subject) và đng t (Verb), tùy theo tr ng h p có th có ườ
thêm ph n ph (Complement). Ng c l i, v i ngo i đng t , ngoài ch ng và đng t ượ
nh t thi t ph i có b ng (Object). Có 5 lo i câu sau trong ti ng Anh ế ế
Lo i 1: Subject + Verb
Lo i 2: Subject + Verb + Complement
Lo i 3: Subject + Verb + Object
Lo i 4: Subject + Verb + Object + Object
Lo i 5: Subject + Verb + Object + Complement
Trong l p trình, ch ng t ng ng v i class ho c object đc instant hóa, b ng t ng ươ ượ ươ
ng v i object, ph n ph v c b n là không có th c th , h u nh không có object đc ơ ư ượ
instant hóa. Java thì là primitive, các giá tr constant; Ruby thì th ng là symbol. Đng ườ
t đng nhiên là tên method. Tóm l i, n i đng t có th x lý hoàn toàn trên 1 object, ươ
ngo i đng t c n x lý trên 1 object và 1 ho c 2 object khác v i vai trò là bi n. ế
N i đng t : run, wait, go(to...), become + status
Ch c n 1 object là x lý đc ượ
Ph n ph là giá tr static ho c đc hi n th d i d ng symbol. ượ ư
Ngo i đng t : search + keyword, give (+ đa cái gì đó ; + ai đa cái gì đó), make (it...) ư ư
Ngoài object ti n hành x lý, c n object bi n khác.ế ế
2-2 M i quan h gi n i đng t , ngo i đng t v i quy t c đt tên
V y s khác bi t gi n i đng t , ngo i đng t có quan h th nào v i quy t c đt tên ế
trong l p trình. Ví d , v i ví d v đng t run trên, mu n vi t m t method đ bi t ế ế
[object c a class Person @person có ch y đn quán cà phê không] thì thi t k trên Ruby nh ế ế ế ư
sau:
1Class Person
2 def running?(to)
3 # x
4 end
5end
Method này đc dùng nh sau:ượ ư
@person.running?(@coffee_shop)
Nhìn qua thì có v thi t k đúng. Tuy nhiên code này khi n ta liên t ng đn câu: ế ế ế ưở ế
Is the person running the coffee shop?
h n là ơ
Is the person running to the coffee shop?
Tóm l i, n u thi t k nh th này, ng i đc code có th hi u nh m là [object @person ế ế ế ư ế ườ
qu n lý @coffee_shop]. Đ truy n đt đúng ý đ, nên thi t k nh sau: ế ế ư
1class Person
2 def running_to?(place)
3 # x
4 end
5
6 def running?(args =
{})
7 place = args[:to]
8 running_to?(place)
9 end
10 end
V i thi t k này có th vi t code chính xác ế ế ế
1@person.running?(to:
@coffee_shop)
Ho c
@person .running_to ?(@coffee_shop)
2-3 Chú ý khi s d ng n i đng t , ngo i đng t
Có th trong th c t l p trình g p method Run không nhi u. Nh ng có th g p tr ng ế ư ườ
h p l n l n gi a n i đng t và ngo i đng t . Khi code s d ng ngôn ng l p trình h ng ướ
đi t ng, trong software có nhi u tên class, method nên l i thi t k nh trên cũng d g p. ượ ế ế ư
Trong tr ng h p này, ch s d ng t đi n là ch a đ. Vì v y nên t bây gi nên chú ý xem ườ ư
t tra đc là n i đng t hay ngo i đng t . Đi u này theo th i gian s nh h ng l n ượ ưở
đn ch t l ng code. Khi m t đi n tra t đ code nên chú ý đ làm th nào vi t đc ế ượ ế ế ượ
code d hi u.
3. Method s d ng n i đng t
3-1 Câu lo i 1 s d ng tên method chính là object
C u trúc trong Ruby nh sau: ư
1class Subject
2 def verb
3 # x
4 end
5end
Ví d v s d ng lo i 1 là:
xxxConverter ho c xxxEncoder th c thi method #run
class Worker ho t đng background, th c hi method #wait
Method #close object d ng File
Method #run th c thi converter ho c encoder bao g m c x lý chuy n đi, mã hóa. nh
h ng ph n l n d li u là d ng c u trúc, r t hi m khi #run c n đi s . Object d ng file ưở ế
v c b n s d ng xong là ph i g i method #close. Đây là các ví d dùng d ng 1. ơ
Ví d , object @worker c a class Worker th c thi method #wait class method c a Worker
nh sau:ư
1@worker = Worker.new
2
3# Worker trạng thái
đợi job
4Worker.wait(@worker)
Nhìn qua thì có v đúng nh ng code này l i tr thành [Class Worker đi @worker]. Ngoài ư
ra Wait có nghĩa là [trì hoãn] nh ng n u dùng v i nghĩa trì hoãn, c n keep th i gian cho b ư ế
ng .
X lý trên n u vi t đúng ng pháp ti ng Anh s ph i là: ế ế ế
1@worker = Worker.new
2
3# Worker trạng thái
đợi job
4@worker.wait
Cho phép đi s c n thi t method lo i 1. ế
Method dùng c u trúc câu lo i 1 dù không s d ng đi s nh ng có nhi u tr ng h p nó ư ườ
mu n s d ng đi s . Go ho c Live là các t hay đc s d ng nh t v i d ng 1. Tuy v y, ượ
trong nhi u tr ng h p, Các t ch v trí hay đc dùng. ườ ượ
He will go to Shibuya today.
Does he live in the United States.
Khi mu n bi u th các câu trên b ng code, ta s đnh nghĩa các method b ng t p h p các
tr ng t ch v trí.
Ví d , v i 2 câu trên:
1# The person will go to
Shibuya.
2@person.go_to(place)
3
4# He lives in the united
states?
5@person.lives_in?("United
States")
#go_to dùng v i ý nghĩa đng t th i t ng lai will nên không c n dùng s, #ives_in dùng ươ
trong câu kh ng đnh dùng nh câu h i nên có s. V method tr l i giá tr yes, no, tham ư
kh o thêm bài v method tr l i giá tr Boolean.
Ngoài ra, trong ti ng Anh, v c b n, sau gi i t là danh t . Cũng có câu gi i t đng cu iế ơ
câu nh ng trong l p trình h u nh là không có nên t m b qua. Nên đt câu h i [nên s ư ư
d ng gi i t gì]. V i Go có th có nhi u kh năng nh Go to hay Go for hay Go ư
through...Trong t đi n Nh t Anh có th th y nhi u tr ng h p tùy theo lo i c a gi i t mà ườ
ý nghĩa thay đi. Trong th c t s d ng, c n ch n đúng gi i t . ế
3-2 Câu lo i 2 s d ng trong câu có chu i object bi n static ế
Lo i 2 (S+V+C) có thêm 1 ph t cho đng t .
M i quan h gi a object và lo i 2:
Become(“hacker”), go(“crazy”)
C n đi s .
Nhi u tr ng h p giá tr thu đc không ph i là object. ườ ượ
Trên ph ng di n ng pháp ti ng Anh, tính t ho c danh t có th làm ph n phươ ế
1class
Subject
2
def
verb(comple
ment)
3 # x
4 end
5end
Có nhi u tr ng h p ph n ph không ph i là 1 th c th , hi m khi t i đi s thu đc ườ ế ượ
object. Đ bi u di n m t tr ng thái c th nào đó, có th dùng chu i object ho c bi n static ế
nh ng không tr l i object đc instant hóa. Ví dư ượ
The person went crazy.
The order just got shipped.
The person became a wizard.
Code Ruby s tr thành
1@person.go(:crazy
)
2@order.get(:shipp
ed)
3@person.become(:w
izard)
T code cũng có th hi u, có th dùng đng t c a c u trúc lo i 2 làm tên method trong
tr ng h p method liên quan quan đn tr ng thái.ườ ế
Hình dung v gi i t