SlideShare a Scribd company logo
1 of 13
Download to read offline
Itguru.vn - Hot job for IT Experts
10 NGUYÊN TẮC
LẬP TRÌNH CƠ BẢN
MỌI LẬP TRÌNH VIÊN
PHẢI BIẾT
Lập trình cũng như kể 1
câu chuyện: các biến là
các nhân vật. 1 số đóng
vai trò xuyên suốt cho
đến cuối và 1 số kết
thúc ở một nơi nào đó
Keep It Simple,
Stupid (KISS)
KISS nghĩa là bạn nên
viết code càng đơn giản
càng tốt
Sử dụng tên biến rõ ràng
Tận dụng thư viện & công cụ
hiện có
DRY Code
Don’t Repeat Yourself (DRY)
có nghĩa là không lặp lại code
Thay vào đó, hãy cố gắng tìm 1
thuật toán sử dụng một vòng
lặp để thay thế
1
2
3
Open/Close
Làm cho code của mình ở chế độ mở
rộng nhưng đóng đối với sửa đổi
Giúp tách biệt hành vi cốt lõi khỏi hành
vi đã sửa đổi
Code ổn định hơn và dễ bảo trì hơn
Ưu tiên hợp đối tượng (object
compostion) thay vì thừa kế lớp
(class inheritance)
Composition programming dễ
viết, dễ bảo trì hơn và cho phép
xác định các hành vi linh hoạt
Composition Over
Inheritance
Single
Responsibility
Mọi class/mô-đun trong 1 chương trình
chỉ nên cung cấp 1 chức năng cụ thể
Cẩn thận để không thêm quá nhiều trách
nhiệm vì các class trở nên phức tạp hơn
Separation of Concerns là một phiên
bản trừu tượng của nguyên tắc Đơn
nhiệm trên
Separation of
Concerns
Một ví dụ nổi tiếng về điều này là thiết
kế model-view-controller (MVC)
Bạn không nên viết code cho những chức
năng mà mà bạn chỉ cần trong tương lai
nếu nhận thấy các đoạn code được lặp đi
lặp lại, hãy triển khai một lớp trừu tượng
You Aren’t Going to
Need It (YAGNI)
Document Your
Code
Để lại ghi chú để giải thích
các đối tượng, nâng cao
định nghĩa biến và làm cho
các hàm dễ hiểu hơn.
Xem lại code của bạn và
tìm cách tối ưu hóa nó, làm
cho nó hiệu quả hơn
Refactor
Hãy để cái tôi của bạn ở cửa và quên
đi việc viết mã thông minh
Đừng cố gắng đóng gói hàng tấn
logic vào một dòng
Clean Code
Kết luận
Để trở thành 1 lập trình viên giỏi tốn khá
nhiều thời gian và công sức. 10 quy tắc
lập trình cơ bản này có thể giúp bạn!
Xem thêm bài viết TẠI ĐÂY

More Related Content

Similar to 10 nguyên tắc lập trình cơ bản mà mọi lập trình viên phải biết

TT_MTKPM.pptx
TT_MTKPM.pptxTT_MTKPM.pptx
TT_MTKPM.pptxTriPhan74
 
2 introduction to oop
2 introduction to oop2 introduction to oop
2 introduction to oopHThu104
 
Code Refactoring: Thay đổi nhỏ - Lợi ích lớn
Code Refactoring: Thay đổi nhỏ - Lợi ích lớnCode Refactoring: Thay đổi nhỏ - Lợi ích lớn
Code Refactoring: Thay đổi nhỏ - Lợi ích lớnNhật Nguyễn Khắc
 
lap-trinh-huong-doi-tuong_nguyen-manh-son_lthdt_ptit - [cuuduongthancong.com]...
lap-trinh-huong-doi-tuong_nguyen-manh-son_lthdt_ptit - [cuuduongthancong.com]...lap-trinh-huong-doi-tuong_nguyen-manh-son_lthdt_ptit - [cuuduongthancong.com]...
lap-trinh-huong-doi-tuong_nguyen-manh-son_lthdt_ptit - [cuuduongthancong.com]...tPhan78
 
Bạn cần chuẩn bị gì khi đi phỏng vấn vị trí DevOps?
Bạn cần chuẩn bị gì khi đi phỏng vấn vị trí DevOps?Bạn cần chuẩn bị gì khi đi phỏng vấn vị trí DevOps?
Bạn cần chuẩn bị gì khi đi phỏng vấn vị trí DevOps?ITguru.vn
 
Reverse Engineering .NET - Advanced Patching, Playing with IL
Reverse Engineering .NET - Advanced Patching, Playing with ILReverse Engineering .NET - Advanced Patching, Playing with IL
Reverse Engineering .NET - Advanced Patching, Playing with ILLevis Nickaster
 
T d que_lap_trinh_huong_doi_tuong
T d que_lap_trinh_huong_doi_tuongT d que_lap_trinh_huong_doi_tuong
T d que_lap_trinh_huong_doi_tuongtoiseden91
 
Lap trinh huong doi tuong voi java tran dinh que
Lap trinh huong doi tuong voi java   tran dinh queLap trinh huong doi tuong voi java   tran dinh que
Lap trinh huong doi tuong voi java tran dinh queNguyễn Công Hoàng
 
Lập trình hướng đối tượng với Java - Trần Đình Quế
Lập trình hướng đối tượng với Java  - Trần Đình QuếLập trình hướng đối tượng với Java  - Trần Đình Quế
Lập trình hướng đối tượng với Java - Trần Đình Quếf3vthd
 
Lap trinhhuongdoituong v3.1
Lap trinhhuongdoituong v3.1Lap trinhhuongdoituong v3.1
Lap trinhhuongdoituong v3.1volll
 
C++ dai hoc cong nghe[bookbooming.com]
C++ dai hoc cong nghe[bookbooming.com]C++ dai hoc cong nghe[bookbooming.com]
C++ dai hoc cong nghe[bookbooming.com]bookbooming1
 
Lập trình hướng đối tượng với java
Lập trình hướng đối tượng với javaLập trình hướng đối tượng với java
Lập trình hướng đối tượng với javaNgô Đăng Tân
 
Mô hình MVC trong lập trình web với Java
Mô hình MVC trong lập trình web với JavaMô hình MVC trong lập trình web với Java
Mô hình MVC trong lập trình web với JavaHuy Vũ
 
Phong cach lap trinh c++
Phong cach lap trinh c++Phong cach lap trinh c++
Phong cach lap trinh c++ptquang160492
 

Similar to 10 nguyên tắc lập trình cơ bản mà mọi lập trình viên phải biết (20)

TT_MTKPM.pptx
TT_MTKPM.pptxTT_MTKPM.pptx
TT_MTKPM.pptx
 
2 introduction to oop
2 introduction to oop2 introduction to oop
2 introduction to oop
 
Code Refactoring: Thay đổi nhỏ - Lợi ích lớn
Code Refactoring: Thay đổi nhỏ - Lợi ích lớnCode Refactoring: Thay đổi nhỏ - Lợi ích lớn
Code Refactoring: Thay đổi nhỏ - Lợi ích lớn
 
lap-trinh-huong-doi-tuong_nguyen-manh-son_lthdt_ptit - [cuuduongthancong.com]...
lap-trinh-huong-doi-tuong_nguyen-manh-son_lthdt_ptit - [cuuduongthancong.com]...lap-trinh-huong-doi-tuong_nguyen-manh-son_lthdt_ptit - [cuuduongthancong.com]...
lap-trinh-huong-doi-tuong_nguyen-manh-son_lthdt_ptit - [cuuduongthancong.com]...
 
Bạn cần chuẩn bị gì khi đi phỏng vấn vị trí DevOps?
Bạn cần chuẩn bị gì khi đi phỏng vấn vị trí DevOps?Bạn cần chuẩn bị gì khi đi phỏng vấn vị trí DevOps?
Bạn cần chuẩn bị gì khi đi phỏng vấn vị trí DevOps?
 
Code convention
Code conventionCode convention
Code convention
 
Reverse Engineering .NET - Advanced Patching, Playing with IL
Reverse Engineering .NET - Advanced Patching, Playing with ILReverse Engineering .NET - Advanced Patching, Playing with IL
Reverse Engineering .NET - Advanced Patching, Playing with IL
 
T d que_lap_trinh_huong_doi_tuong
T d que_lap_trinh_huong_doi_tuongT d que_lap_trinh_huong_doi_tuong
T d que_lap_trinh_huong_doi_tuong
 
Lap trinh huong doi tuong voi java tran dinh que
Lap trinh huong doi tuong voi java   tran dinh queLap trinh huong doi tuong voi java   tran dinh que
Lap trinh huong doi tuong voi java tran dinh que
 
Lập trình hướng đối tượng với Java - Trần Đình Quế
Lập trình hướng đối tượng với Java  - Trần Đình QuếLập trình hướng đối tượng với Java  - Trần Đình Quế
Lập trình hướng đối tượng với Java - Trần Đình Quế
 
Lthdt
LthdtLthdt
Lthdt
 
Ho trobaiday tin11bai9
Ho trobaiday tin11bai9Ho trobaiday tin11bai9
Ho trobaiday tin11bai9
 
Ho trobaiday tin11bai9
Ho trobaiday tin11bai9Ho trobaiday tin11bai9
Ho trobaiday tin11bai9
 
Lap trinhhuongdoituong v3.1
Lap trinhhuongdoituong v3.1Lap trinhhuongdoituong v3.1
Lap trinhhuongdoituong v3.1
 
Coding standard
Coding standardCoding standard
Coding standard
 
C++ dai hoc cong nghe[bookbooming.com]
C++ dai hoc cong nghe[bookbooming.com]C++ dai hoc cong nghe[bookbooming.com]
C++ dai hoc cong nghe[bookbooming.com]
 
OOP
OOPOOP
OOP
 
Lập trình hướng đối tượng với java
Lập trình hướng đối tượng với javaLập trình hướng đối tượng với java
Lập trình hướng đối tượng với java
 
Mô hình MVC trong lập trình web với Java
Mô hình MVC trong lập trình web với JavaMô hình MVC trong lập trình web với Java
Mô hình MVC trong lập trình web với Java
 
Phong cach lap trinh c++
Phong cach lap trinh c++Phong cach lap trinh c++
Phong cach lap trinh c++
 

More from ITguru.vn

9 lý do các công ty phần mềm có thể từ chối các lập trình viên giỏi
9 lý do các công ty phần mềm có thể từ chối các lập trình viên giỏi9 lý do các công ty phần mềm có thể từ chối các lập trình viên giỏi
9 lý do các công ty phần mềm có thể từ chối các lập trình viên giỏiITguru.vn
 
Làn sóng nghỉ việc ồ ạt và những tác động đối với các nhà phát triển phần mềm
Làn sóng nghỉ việc ồ ạt và những tác động đối với các nhà phát triển phần mềmLàn sóng nghỉ việc ồ ạt và những tác động đối với các nhà phát triển phần mềm
Làn sóng nghỉ việc ồ ạt và những tác động đối với các nhà phát triển phần mềmITguru.vn
 
Serverless là gì và học gì để làm việc với serverless?
Serverless là gì và học gì để làm việc với serverless?Serverless là gì và học gì để làm việc với serverless?
Serverless là gì và học gì để làm việc với serverless?ITguru.vn
 
Làm thế nào để kỹ sư phần mềm có thể quản trị dự án một cách hiệu quả
Làm thế nào để kỹ sư phần mềm có thể quản trị dự án một cách hiệu quảLàm thế nào để kỹ sư phần mềm có thể quản trị dự án một cách hiệu quả
Làm thế nào để kỹ sư phần mềm có thể quản trị dự án một cách hiệu quảITguru.vn
 
10 Python framework hàng đầu để phát triển web năm 2022
10 Python framework hàng đầu để phát triển web năm 202210 Python framework hàng đầu để phát triển web năm 2022
10 Python framework hàng đầu để phát triển web năm 2022ITguru.vn
 
Dapp là gì và lộ trình để trở thành một nhà phát triển ứng dụng phi tập trung
Dapp là gì và lộ trình để trở thành một nhà phát triển ứng dụng phi tập trungDapp là gì và lộ trình để trở thành một nhà phát triển ứng dụng phi tập trung
Dapp là gì và lộ trình để trở thành một nhà phát triển ứng dụng phi tập trungITguru.vn
 
Lập trình viên có thể làm gì nếu đã chán viết code? Đây là 23 công việc khác ...
Lập trình viên có thể làm gì nếu đã chán viết code? Đây là 23 công việc khác ...Lập trình viên có thể làm gì nếu đã chán viết code? Đây là 23 công việc khác ...
Lập trình viên có thể làm gì nếu đã chán viết code? Đây là 23 công việc khác ...ITguru.vn
 

More from ITguru.vn (7)

9 lý do các công ty phần mềm có thể từ chối các lập trình viên giỏi
9 lý do các công ty phần mềm có thể từ chối các lập trình viên giỏi9 lý do các công ty phần mềm có thể từ chối các lập trình viên giỏi
9 lý do các công ty phần mềm có thể từ chối các lập trình viên giỏi
 
Làn sóng nghỉ việc ồ ạt và những tác động đối với các nhà phát triển phần mềm
Làn sóng nghỉ việc ồ ạt và những tác động đối với các nhà phát triển phần mềmLàn sóng nghỉ việc ồ ạt và những tác động đối với các nhà phát triển phần mềm
Làn sóng nghỉ việc ồ ạt và những tác động đối với các nhà phát triển phần mềm
 
Serverless là gì và học gì để làm việc với serverless?
Serverless là gì và học gì để làm việc với serverless?Serverless là gì và học gì để làm việc với serverless?
Serverless là gì và học gì để làm việc với serverless?
 
Làm thế nào để kỹ sư phần mềm có thể quản trị dự án một cách hiệu quả
Làm thế nào để kỹ sư phần mềm có thể quản trị dự án một cách hiệu quảLàm thế nào để kỹ sư phần mềm có thể quản trị dự án một cách hiệu quả
Làm thế nào để kỹ sư phần mềm có thể quản trị dự án một cách hiệu quả
 
10 Python framework hàng đầu để phát triển web năm 2022
10 Python framework hàng đầu để phát triển web năm 202210 Python framework hàng đầu để phát triển web năm 2022
10 Python framework hàng đầu để phát triển web năm 2022
 
Dapp là gì và lộ trình để trở thành một nhà phát triển ứng dụng phi tập trung
Dapp là gì và lộ trình để trở thành một nhà phát triển ứng dụng phi tập trungDapp là gì và lộ trình để trở thành một nhà phát triển ứng dụng phi tập trung
Dapp là gì và lộ trình để trở thành một nhà phát triển ứng dụng phi tập trung
 
Lập trình viên có thể làm gì nếu đã chán viết code? Đây là 23 công việc khác ...
Lập trình viên có thể làm gì nếu đã chán viết code? Đây là 23 công việc khác ...Lập trình viên có thể làm gì nếu đã chán viết code? Đây là 23 công việc khác ...
Lập trình viên có thể làm gì nếu đã chán viết code? Đây là 23 công việc khác ...
 

10 nguyên tắc lập trình cơ bản mà mọi lập trình viên phải biết

  • 1. Itguru.vn - Hot job for IT Experts 10 NGUYÊN TẮC LẬP TRÌNH CƠ BẢN MỌI LẬP TRÌNH VIÊN PHẢI BIẾT
  • 2. Lập trình cũng như kể 1 câu chuyện: các biến là các nhân vật. 1 số đóng vai trò xuyên suốt cho đến cuối và 1 số kết thúc ở một nơi nào đó
  • 3. Keep It Simple, Stupid (KISS) KISS nghĩa là bạn nên viết code càng đơn giản càng tốt Sử dụng tên biến rõ ràng Tận dụng thư viện & công cụ hiện có
  • 4. DRY Code Don’t Repeat Yourself (DRY) có nghĩa là không lặp lại code Thay vào đó, hãy cố gắng tìm 1 thuật toán sử dụng một vòng lặp để thay thế
  • 5. 1 2 3 Open/Close Làm cho code của mình ở chế độ mở rộng nhưng đóng đối với sửa đổi Giúp tách biệt hành vi cốt lõi khỏi hành vi đã sửa đổi Code ổn định hơn và dễ bảo trì hơn
  • 6. Ưu tiên hợp đối tượng (object compostion) thay vì thừa kế lớp (class inheritance) Composition programming dễ viết, dễ bảo trì hơn và cho phép xác định các hành vi linh hoạt Composition Over Inheritance
  • 7. Single Responsibility Mọi class/mô-đun trong 1 chương trình chỉ nên cung cấp 1 chức năng cụ thể Cẩn thận để không thêm quá nhiều trách nhiệm vì các class trở nên phức tạp hơn
  • 8. Separation of Concerns là một phiên bản trừu tượng của nguyên tắc Đơn nhiệm trên Separation of Concerns Một ví dụ nổi tiếng về điều này là thiết kế model-view-controller (MVC)
  • 9. Bạn không nên viết code cho những chức năng mà mà bạn chỉ cần trong tương lai nếu nhận thấy các đoạn code được lặp đi lặp lại, hãy triển khai một lớp trừu tượng You Aren’t Going to Need It (YAGNI)
  • 10. Document Your Code Để lại ghi chú để giải thích các đối tượng, nâng cao định nghĩa biến và làm cho các hàm dễ hiểu hơn.
  • 11. Xem lại code của bạn và tìm cách tối ưu hóa nó, làm cho nó hiệu quả hơn Refactor
  • 12. Hãy để cái tôi của bạn ở cửa và quên đi việc viết mã thông minh Đừng cố gắng đóng gói hàng tấn logic vào một dòng Clean Code
  • 13. Kết luận Để trở thành 1 lập trình viên giỏi tốn khá nhiều thời gian và công sức. 10 quy tắc lập trình cơ bản này có thể giúp bạn! Xem thêm bài viết TẠI ĐÂY