Viết code có hiệu quả? Lời khuyên từ chuyên gia

2650
Gay developer coder

Là 1 lập trình viên, có khi nào bạn giật mình nhìn lại quãng đường vừa qua với bao đêm thức trắng cùng những dòng code và tự hỏi “Code tốt liệu có đủ?”, hay “Tôi cần gì hơn để trở thành một lập trình viên xuất sắc?” và gỡ bỏ cái nhãn “code monkey” đang gắn trên trán mình?

Dưới đây là tóm tắt 1 số lời khuyên của  ông Jonathan Blow trong bài thuyết trình ở đại học UC Berkeley. Trong bài thuyết trình, ông mô tả tính thẩm mỹ trong lập trình của mình và làm thế nào để viết code có hiệu quả.

1. Đừng cố gắng tối ưu code từ lúc đầu

Thường thì các bạn sẽ thực hiện tối ưu hóa code của mình từ rất sớm, nhưng đôi khi chúng cũng làm cho mọi việc trở nên phức tạp hơn khi lúc nào bạn cũng phải nghĩ cách tối ưu cho code của mình. Hãy tập trung viết cho code hoạt động đúng trước, sau đó mới bắt đầu tối ưu những đoạn code.

2. Thực hiện tối ưu hóa với những điều đơn giản nhất

Bạn có thể tối ưu tốc độ thực thi hay tối ưu dung lượng ứng dụng nhưng điều quý giá nhất bạn cần tối ưu chính là thời gian của bạn. Hãy tối ưu hóa cho code của bạn dễ đọc, dễ hiểu và nếu như bạn phải dừng lại và tự hỏi “code này chạy như thế nào nhỉ?” hay “Tại sao mấy dòng code này không chạy?” – thì bạn đang lãng phí thời gian của mình đấy.

3. Những gì bạn học chưa chắc đúng

Một số phương pháp bạn được học tại trường nếu bạn sử dụng thì nên cẩn thận. Đa số những phương pháp đó chỉ áp dụng được trong 1 vài trường hợp nhất định. Không phải tất cả những phương pháp đó đều không đúng nhưng chúng thường được nói hơi quá so với thực tế. Và nếu bạn chấp nhận áp dụng những phương pháp đó, kết quả nhiều khi không được như ý muốn mà lại còn làm cho bạn rối thêm. Vì thế hãy cẩn thận.

4. Đơn giản thường là tốt nhất

Kẻ thù lớn nhất của hiệu suất công việc đó chính là ý chí của lập trình viên. Càng có nhiều suy nghĩ trong đầu bạn, bạn sẽ càng làm việc kém hiệu quả. Vì thế, sự phức tạp chính là kẻ thù của bạn. Bất cứ lúc nào có thể, hãy tìm cách đơn giản hóa suy nghĩ của mình. Nếu bạn luôn suy nghĩ đến những điều đơn giản, bạn sẽ tìm ra giải pháp nhanh hơn khi bạn có hàng tấn sự phức tạp ở trong đầu.

Những lập trình viên trẻ thường thích sử dụng những cấu trúc dữ liệu và ngôn ngữ lập trình nâng cao như một cách để thể hiện năng lực của họ. Nghe thì khá ấn tượng đấy, nhưng trừ khi bạn phải đảm bảo rằng nó sẽ làm cho dự án của bạn thành công. Nếu không hãy hạn chế dùng chúng.

Với mỗi class/phương thức bạn đưa vào đoạn code của mình, mức độ phức tạp sẽ tăng lên theo cấp số nhân chứ không phải cấp số cộng bình thường. Đưng đưa mọi thứ vào các hàm của bạn khi nó làm tăng thêm độ phức tạp.

5. Đừng viết những đoạn code chung chung, tổng quát

Những đoạn code chung chung có nhiều lợi ích nhưng thường lãng phí thời gian của bạn vì  nguy cơ tiềm ẩn những bugs và khá khó khăn trong việc khắc phục. Hardcode không phải là một lựa chọn tồi nếu đoạn code của bạn chỉ đơn giản thực hiện một điều gì đó.

Tham gia ngay đại hội Mobile lớn nhất Việt Nam tại đây

Ngoài ra còn có một số chia sẻ được rất nhiều độc giả yêu thích:

Luôn luôn có một vài dự án phụ sẽ giữ cho đầu óc của bạn minh mẫn. Khi mọi thứ trong công việc không làm bạn quá bận rộn hoặc chưa đủ thách thức với bạn, hãy dành nhiều thời gian vào các dự án phụ của bạn vào những lúc sau giờ làm việc hay cuối tuần. Thực hiện các dự án phụ có thể sẽ giúp bạn có thêm những kỹ năng mới trong việc thiết lập công cụ của bạn cũng như thử nghiệm nó với các công nghệ mới.

Cấu trúc lại code của bạn bất cứ khi nào có thể. Một khi bạn đã có một cái gì đó làm việc, bạn có thể nghĩ ra một cách tốt hơn để viết những code tương tự. Hãy dành thời gian để viết lại các code trong một cách có ý nghĩa hơn. Có nhiều khả năng bạn sẽ có thẻ bổ sung thêm tính năng mới cho dự án của bạn.

Có một sự hiểu biết về các công cụ và môi trường phát triển của bạn. Biết các công cụ soạn thảo cũng như hiểu rỏ bàn tay của bạn. Biết tất cả các thư viện có sẵn trong các ngôn ngữ bạn học và biết làm thế nào để sử dụng chúng. Ép buộc mình phải viết một ví dụ với mỗi thư viện. Lưu những ví dụ đó để bạn có thể xem chúng bất cứ khi nào cần thiết. Một khi bạn đã hiểu một số thư viện, bạn có nhiều khả năng sẽ nhanh chóng nhớ ra chúng khi gặp vấn đề, bạn cũng biết làm thế nào để sử dụng chúng.

Đọc code của người khác. Đây là một cách học hỏi tuyệt vời. Nếu bạn gặp phải các thành ngữ, các thư viện, các ví dụ hoặc các kỹ thuật mà dường như xa lạ với bạn, hãy tiếp tục khám phá chúng cho đến khi bạn cảm thấy sẵn sàng để thử chúng trong code của riêng bạn.

Đến với sự kiện Vietnam Mobile Day 2017, bạn sẽ được trực tiếp thực tập những lời khuyên trên: Cách tối ưu hóa công việc lập trình – Hiểu biết hơn về nhiều công cụ, môi trường phát triển phổ biến – Cơ hội nhận ra: Những điều bạn học chưa chắc là đúng – Được đọc code của nhiều chuyên gia nổi tiếng trong ngành. Ngoài ra còn có rất nhiều điều thú vị sẽ được tiết lộ dần dần trong mỗi topic mà các diễn giả của Vietnam Mobile Day 2017 đem đến!

Điểm qua những topic đinh trong 100 topic đỉnh của sự kiện bên dưới. Cập nhật toàn bộ Agenda tại mobileday.vn

  • Chủ đề “Xây dựng hệ thống xử lý bất đồng bộ có độ ổn định và hiệu năng cao” – Diễn giả Lê Minh Nghĩa – Solution Architect tại Tiki.
  • Chủ đề Develop Mobile App fast with Ionic Framework 101 – Diễn giả Nguyễn Đức Minh Quân, Solution Manager tại FPT Technology Solution
  • Chủ đề Automated Testing of Embedded Software – Diễn giả Nguyễn Đức Thái Bình, Specialist engineer của BOSCH Việt Nam
  • Chủ đề “Tăng tốc lập trình Android với Kotlin” – Diễn giả Trần Duy Thanh, Giảng Viên Khoa Hệ Thống Thông Tin, Đại Học Kinh Tế-Luật, ĐH Quốc Gia TP.HCM
  • Chủ đề “Kinh nghiệm làm mobile và những bài học thất bại” – Diễn giả Nguyễn Trung Thành, Head of Research & Development Department của VNG Corporation
  • Chủ đề “Killer Feature sẽ làm cho ứng dụng của bạn trở nên khác biệt – Diễn giả Nguyễn Hoài Anh – Online Channel Manager của Giao Hàng Nhanh
  • Chủ đề “Quy trình phát triển Mobile App Giải pháp fullstack cho phát triển Mobile App nhanh nhất và chi phí cơ hội thấp nhất với React ecosystem” – Diễn giả Phạm Thanh Tú, CTO của Agiletech
  • Chủ đề “Những câu chuyện từ những dự án phần mềm thất bại” – Diễn giả Hoàng Văn Hậu, CTO của Rada JSC
  • Chủ đề “Ứng dụng AI và blockchain để tối ưu hóa đầu tư mạo hiểm, và hơn thế nữa” – Diễn giả Võ Việt Anh – CEO của DropDeck và diễn giả Phan Đình Sơn – CTO của DropDeck
Tham gia ngay đại hội Mobile lớn nhất Việt Nam tại đây
  • Đăng kí tham dự Vietnam Mobile Day 2017: http://topdevvn.com/s/c7xU3gG5
  • Thời gian & địa điểm:
    – 20/05/2017 tại Trung tâm hội nghị 272, Võ Thị Sáu, Q.3, Hồ Chí Minh

    – 27/05/2017 tại Trung tâm hội nghị và tiệc cưới Forevermark, 614 Lạc Long Quân, Quận Tây Hồ, Hà Nội
    – 03/06/2017 tại One Opera Danang hotel, 115 Nguyễn Văn Linh, Q. Hải Châu, Đà Nẵng
  • Website thông tin chi tiết: http://mobileday.vn
  • Mọi chi tiết thắc mắc xin liên hệ
    ngoc.do@applancer.net (Ms. Ngọc) | 0944 685 243

    event@applancer.net (Event Team) | 08 6273 3497

Nhìn chung, có rất nhiều cách để lập trình viên code hiệu quả, cải thiện tư duy lập trình và tiến xa hơn trong sự nghiệp của mình. Trong số đó, việc mở rộng networking, học hỏi từ các guru trong ngành là 1 trong những cách tối ưu nhất.

Keep calm and Code Smart nha các dev!

Nguồn tham khảo: gamestudio via careerbuilder.vn