Viết code có hiệu quả? Lời khuyên từ chuyên gia
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ì đó.
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.
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!
- Quản lý quảng cáo online, marketing với OpenX
- Làm app hot thế nào để không… phá sản?
- Tài khoản mặc định của các loại Modem internet
- 9 ứng dụng iPad tuyệt vời cho học tập
- Giới thiệu về Xpath (XML Path Language)
- Nhiều người không biết iPhone có thể thay pin
- Sách hay về khởi nghiệp và cuộc sống
- Lượng tiêu thụ smartphone lần đầu “vượt mặt” điện thoại cơ bản
- Cách vệ sinh bao da iPad, vệ sinh bao da máy tính bảng, vệ sinh bao da smartphone
- Có một thứ mà mọi kỹ sư phần mềm đều nên?
- Khắc phục lỗi đăng nhập Windows 10, không thể login vào Windows 10
- Strong Parameters
DVMS chuyên:
- Tư vấn, xây dựng, chuyển giao công nghệ Blockchain, mạng xã hội,...
- Tư vấn ứng dụng cho smartphone và máy tính bảng, tư vấn ứng dụng vận tải thông minh, thực tế ảo, game mobile,...
- Tư vấn các hệ thống theo mô hình kinh tế chia sẻ như Uber, Grab, ứng dụng giúp việc,...
- Xây dựng các giải pháp quản lý vận tải, quản lý xe công vụ, quản lý xe doanh nghiệp, phần mềm và ứng dụng logistics, kho vận, vé xe điện tử,...
- Tư vấn và xây dựng mạng xã hội, tư vấn giải pháp CNTT cho doanh nghiệp, startup,...
Vì sao chọn DVMS?
- DVMS nắm vững nhiều công nghệ phần mềm, mạng và viễn thông. Như Payment gateway, SMS gateway, GIS, VOIP, iOS, Android, Blackberry, Windows Phone, cloud computing,…
- DVMS có kinh nghiệm triển khai các hệ thống trên các nền tảng điện toán đám mây nổi tiếng như Google, Amazon, Microsoft,…
- DVMS có kinh nghiệm thực tế tư vấn, xây dựng, triển khai, chuyển giao, gia công các giải pháp phần mềm cho khách hàng Việt Nam, USA, Singapore, Germany, France, các tập đoàn của nước ngoài tại Việt Nam,…
Quý khách xem Hồ sơ năng lực của DVMS tại đây >>
Quý khách gửi yêu cầu tư vấn và báo giá tại đây >>