Cho đến nay tôi đã làm cái nghề Coder cũng phải được 14, 15 năm. Năm nay cũng 39 tuổi rồi, nếu so sánh với một cầu thủ bóng đá chuyên nghiệp thì có lẽ nghỉ hưu cũng đã từ lâu. Vậy mà mình vẫn còn miên man code và code, bug và bug…
Hồi đó Skill chủ yếu của tôi vẫn là C#, Jquery, Asp.Net, Sql Server v.v… Và sau nhiều năm coder như vậy tôi có rất nhiều kinh nghiệm. So với những ngày đầu code một cách vô ý thức, bạ đâu code đó thì giờ đây cách code cũng đã thay đổi rất nhiều và với mỗi yêu cầu tôi thường phân tích kỹ, code sử dụng design pattern và code trừu tượng trước khi làm cụ thể một trường hợp nào đó.
Nếu như trong các dự án tôi làm mà các Module, Form nào na ná nhau. Tư duy thông thường của mọi người là đều copy lại và chỉnh sửa sao cho phù hợp. Không chỉ những Form quản lý mà còn nhiều các Form khác ví dụ như báo cáo. Code của dự án nào vì thế cũng khá là nặng. Và có một nhược điểm là nếu Form nào mà có lỗi thì hầu như phải chỉnh sửa lại ở tất cả các Form. Và cần thêm tính năng nào thì cũng phải mở từng đấy Form ra mà thêm. 😀 😀 nói chung là căng nhỉ?
Chính vì vậy đa số nhiều lập trình viên sau một thời gian đi làm cũng thường kêu là không có gì mới mẻ, làm đi làm lại một việc. Công việc hầu như không có sáng tạo. Đấy là cái tôi thấy, hầu như code không có thiết kế, không sử dụng design pattern và không tận dụng được tính chất OOP để kế thừa, đóng gói. Các hàm, biến static
được sử dụng tràn lan vô tội vạ, code thì copy và không được viết thành thư viện.
Phải nói thật thế hệ lập trình viên bây giờ, do hệ quả của giáo dục mình và cũng do luôn cả thị trường IT mình phát triển quá nóng trong vài năm trở lại đây, các trung tâm lập trình mở mới cứ gọi là như lợn con…thậm chí có trung tâm dạy lập trình mà người dạy cũng chỉ đạt level junior or hơn chút…và cách dạy thì có thể đoán được là dạy cho biết code thôi chứ chả hiểu mẹ gì dẫn đến các thế hệ lập trình hiện tại yếu về mặt tuy duy, basic cơ bản cực kỳ kém….( mình ko nói tất cả nhé kẻo các bạn ném đá, vì cũng có 1 số bạn mình tiếp xúc ở thế hệ trẻ họ cũng rất giỏi trong việc tư duy code sao cho chuẩn. nhưng con số này thì rất nhỏ so với phần đa là các bạn được học, được người ko kinh nghiệm dạy…nên tư duy ăn xổi và học kiểu tip, trick…)
Hồi đi làm mình cũng rất thích đi giải quyết hậu quả code của đồng nghiệp và đã từng cứu rất nhiều dự án bị fail chứ mình ko ngại gì vì lúc đó mình nghĩ, dự án fail đó mới có nhiều cái hay ho để mình học và thể hiện được hết những ideas của mình để biến dự án fail đó thành dự án code sạch và đẹp hơn. Tuổi trẻ mà đúng ko? Trẻ thì thường nhiệt tình và máu lửa 😀
Okay, quay lại chủ đề, mình sẽ lấy 1 ví dụ và tư duy từ đầu đến cuối để các bạn hiểu được phần nào qua đó tự bản thân rút ra bài học để áp dụng cho mình nhằm cải thiện chất lượng code của mình qua đó kiếm được tiền nhiều hơn. Hãy mạnh rạn suy nghĩ “Mình junior tại sao không thể code được như các anh senior?”, câu trả lời là: hoàn toàn có thể làm được nhé, nếu chúng ta biết dùng cái đầu vào việc coding, nào cùng xem ví dụ bên dưới
Hãy thiết kế code, sử dụng Design pattern, code trừu tượng trươc khi đi vào cụ thể
Quay trở lại các dự án thường chúng ta hay phải làm các danh mục trong đó có các tính năng như tìm kiếm, thêm, sửa, xóa, xuất excel. Form nào các bạn cũng phải làm một lưới hiển thị, làm sự kiện thêm mới, sửa, validate dữ liệu khi lưu, sự kiện xóa. Form nào cũng từng đấy bước không thể khác được.
Tôi ví dụ như làm một Form quản lý danh mục tin. Đây chỉ là ví dụ mô phỏng thôi nhé. Ta có thể có đoạn code như sau
Như các bạn thấy thì Form nào chúng ta cũng phải làm từng đấy bước. Mà đấy là code server, chưa kể code javascript cũng vậy. Các Form mà cứ code đi code lại như vậy hoài rất mất công và sinh ra chán. Lúc gặp lỗi hoặc thêm chức năng thì Form nào cũng phải vọc vào mà sửa.
Vậy bây giờ chúng ta hãy nghĩ khác đi. Trừu tượng nó thành như này