
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 lý ử
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 lýử
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 lýử
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 lýử
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ề ớ ừ