Nhật ký Ngày... Tháng.. Năm...
blank
Trang chủ » Nghiệp Code » Bạn có phải là 1 Web Developer?

Bạn có phải là 1 Web Developer?

Có thể bạn biết cách tạo ra một vài Website, nhưng đã đủ để bạn trở thành một Web Developer hay chưa? Sau đây là những dấu hiệu chứng tỏ rằng bạn là một Web Developer tuyệt vời.

0. Bạn sử dụng một Framework

Bạn nghĩ rằng tự tay lập trình nên một Website từ những dòng mã đầu tiên khó hơn là sử dụng một Framework hay Libraries có sẵn? Và điều đó sẽ chứng tỏ khả năng của bạn? Thực ra điều đó chỉ làm bạn mất thời gian hơn mà thôi, việc thấu hiểu kiến trúc và các API của một Framework, Libraries để áp dụng chúng một cách thành thạo vào các dự án Web của mình còn khó khăn hơn nhiều. Các Framework cung cấp cho bạn rất nhiều thứ hữu ích như: Template System, Routing System, Session Management, ORM, Test System để bạn có thêm thời gian tập trung vào các xử lý logic nghiệp vụ đặc trưng của dự án. Đây là những tinh hoa được đúc kết từ kinh nghiệm thực tế của nhiều lập trình viên, việc sử dụng chúng cũng như bạn áp dụng các Hằng đẳng thức đáng nhớ để giải toán vậy.
Hơn nữa, việc sử dụng các Framework sẽ giúp bạn quản lý mã nguồn tốt hơn, giảm thiểu việc phát sinh các vấn đề bảo mật, giúp bạn học hỏi được nhiều về Design Pattern và tư duy lập trình, chính vì thế bạn nên sử dụng chúng. Những Framework càng hỗ trợ ít thì càng dễ sử dụng, dễ tuỳ biến và ngược lại.
Để bắt đầu bạn có thể chọn một PHP Web Framework như CodeIgniterYii. Với Java các bạn nên chọn Play Framework, với Python hãy chọn Wheezy Webhoặc Django và cuối cùng là Grape cho Ruby.

Rất xin lỗi các fan của Zend, Struts, Rails nhưng với tôi thời đại của những bà già nặng nề, to béo và khó tính đã qua rồi.

1. Bạn sử dụng hệ thống quản lý phiên bản

Hệ thống quản lý phiên bản hay Version Control Systems (VCS) cho phép bạn theo dõi mọi thay đổi mà bạn đã thực hiện với mã nguồn để so sánh, phân nhánh (branch), làm việc nhóm một cách hiệu quả mà không “dẫm phải chân nhau” (khi nhiều người cùng sửa một file). Hiện nay, Git là hệ thống quản lý phiên bản phổ biến nhất với các Web Developer và bạn có thể làm quen với nó một cách rất dễ dàng, bạn có thể biến thư mục mã nguồn dự án của bạn thành một Repository với chỉ một lệnh init duy nhất. Các Web Developer có kinh nghiệm tận dụng tối đa các tiện ích mà Git mang lại bằng cách sử dụng các câu lệnh Command Line, tuy nhiên nếu bạn gặp khó khăn khi sử dụng nó bạn cũng có thể sử dụng một Git Client với giao diện đồ hoạ để thao tác bằng cách click chuột hay phím tắt. Hầu hết các IDE hiện nay đều tích hợp các tính năng của một Git Client.

Tôi thường sử dụng Mecurial, nó cũng tương tự như Git nhưng có một số ưu điểm nổi trội hơn và… ít phổ biến hơn.

2. Bạn tái sử dụng lại các đoạn mã có sẵn

Reinventing the wheel là cụm từ để chỉ việc lãng phí thời gian để tạo ra một thứ gì đó đã có sẵn và được làm tốt rồi, nó liên quan tới hội chứng Not Invented Here (NIH), đây là những vấn đề lớn với các lập trình viên. Bạn đã bỏ ra cả ngày để code 1 đoạn mã, cảm thấy vô cùng hiệu quả và sảng khoái, sau đó bạn phát hiện ra rằng chỉ với 30 giây tìm kiếm trên Google bạn có thể tìm thấy một đoạn mã hay thư viện thực hiện chính xác những gì bạn cần. Một lập trình viên kinh nghiệm phải có kỹ năng Google Search để tìm kiếm các thư viện có thể sử dụng trước khi tự tìm cách giải quyết vấn đề. Mỗi ngôn ngữ lập trình đều có một Repository để giúp cho việc tìm kiếm thư viện thuận tiện hơn như Packagist của PHP, NPM của Node.js hay Gems của Ruby. Sử dụng các thư viên hay lấy những đoạn mã từ các thư viện sẵn có sẽ tiết kiệm cho bạn rất nhiều thời gian.

3. Bạn viết các bài Test tự động

Tất nhiên ít có Web Developer nào tin tưởng tuyệt đối rằng những dòng mã mình viết ra sẽ chạy đúng hoàn toàn, các bạn sẽ refresh trình duyệt, click vào vài button để chắc chắn rằng nó chạy đúng. Nhưng lỗi có thể xuất hiện bằng rất bất ngờ và không lường trước được. Mỗi lần thay đổi mã nguồn bạn lại phải lặp lại các thao tác kiểm tra này, gây mất thời gian và có thể bỏ sót nhiều trường hợp. Chính vì vậy ta cần có các bài Test tự động thường được hỗ trợ bởi chính Framework mà bạn sử dụng hoặc cũng có thể tìm kiếm các Test Libraries khác để tích hơp vào mã nguồn. Ngoài ra còn có các công cụ như Selenium, công cụ này giúp bạn mô phỏng các kịch bản mà người dùng sẽ tương tác với trang Web của bạn.

4. Bạn rất chú trọng bảo mật

CSRF, SQL Injection, XSS, Session Fixation, MITM là những kỹ thuật tấn công phổ biến mà một Web Developer cần nắm rõ. Thông thường các Framework mà bạn sử dụng đã có những biện pháp ngăn chặn những vấn đề trên nhưng điều quan trọng là bạn phải biết về chúng và làm thế nào để giảm thiểu các nguy cơ tạo ra lỗ hổng bảo mật.

5. Bạn tạo tài liệu và chú thích mã nguồn

Các lập trình viên kinh nghiệm hiểu rằng một đoạn mã nguồn có thể được viết một lần nhưng được đọc lại rất nhiều lần bởi chính bản thân họ hoặc người khác. Đây là lý do tại sao họ cố gắng viết mã một cách dễ hiểu nhất có thể bằng cách đặt tên biến, hàm mang nhiều ý nghĩa thể hiện vai trò của nó, để lại comment ở các đoạn mã khó hiểu hay dễ gây hiểu lầm. Mỗi ngôn ngữ có một quy ước viết Doc Blocks, chú thích cho Class hoặc Function thể hiện rõ ý nghĩa, các tham số truyền vào, kết quả trả về,… Những thông tin này có thể hiển thị dưới dạng Popup trên các IDE khi Class hay Function được sử dụng. Chúng cũng có thể được trích xuất ra dưới dạng các file HTML.
Nhiều lập trình viên thậm chí còn viết các chú thích mã nguồn của họ dưới dạng các trang Wiki hay Tài liệu ngoài. Tài liệu hướng dẫn như vậy rất có giá trị tham khảo khi các lập trình viên khác cùng tham gia phát triển mã nguồn. Nếu bạn không viết Tài liệu, hãy cố gắng comment để chú thích các đoạn mã mà bạn viết ra.

Ngoài những ý nghĩa trên, tôi rất thích viết Doc Blocks vì nhìn chúng… rất đẹp và chuyên nghiệp (haha)

6. Bạn quản lý Web Server bằng Command Line thông qua SSH

Kỹ năng quản trị Server sẽ theo chân bạn một đoạn đường dài nếu bạn là một Web Developer, tất cả các trang Web mà bạn tạo ra phải được chạy trên một Web Server được cấu hình đúng. Bạn cần có những kiến thức cơ bản để gỡ rối và giải quyết những vấn đề phát sinh, cũng như điều chỉnh các thông số hệ thống sao cho phù hợp với ứng dụng Web của bạn. Quản trị server dựa trên các trình quản lý tương tác bằng giao diện Web như Webmin, cPanel, Direct Admin, Kloxo,… gây ra rất nhiều hạn chế, lãng phí tài nguyên không cần thiết và bảo mật không cao, bạn cũng có thể phải trả phí nếu sử dụng cPanel. Hơn nữa có rất nhiều service quan trọng không thể quản lý bằng các trình quản lý trên mà phải dùng Command Line thông qua SSH.

7. Bạn luôn theo dõi các công nghệ và nền tảng mới

Thế giới Công nghệ thông tin nói riêng và Lập trình Web nói riêng phát triển nhanh một cách chóng mặt. Trong khi bạn đang mày mò làm quen với một công nghệ mới thì có thể đã có công nghệ mới hơn ra đời. Ngay khi bạn thành thạo một nền tảng nào đó thì có thể nó đã lỗi thời rồi. Chính vì thế bạn không được dừng chân quá lâu mà phải luôn luôn tìm hiểu, học hỏi và nghiên cứu những công nghệ mới nhằm áp dụng vào các dự án của mình khi có thể. Twitter và Google Plus là những nơi giúp bạn có thể theo kịp sự phát triển của Công nghệ.

Facebook không cởi mở bằng Twitter và Google Plus. Người dùng Facebook thường chỉ giao tiếp với những người mà họ quen biết. Người dùng Twitter và Google Plus giao tiếp  với những người có cùng sở thích, cùng mối quan tâm. Ngoài mạng xã hội các bạn cũng có thể theo dõi tin tức tại các trang công nghệ nổi tiếng như TheNextWeb(link is external) haySmashingMagazine(link is external) hoặc chưa kịp nổi như izLearn ;)

8. Bạn quản lý thời gian hiệu quả

Đây là kỹ năng quan trọng của tất cả mọi người và tối quan trọng đối với một lập trình viên, một Web Developer. Đừng lãng phí thời gian trước màn hình máy tính để làm những việc vô nghĩa, cũng đừng để tâm trí bị chi phối bởi những thứ ngoài lề khi đang làm việc. Các lập trình viên chuyên nghiệp có thể lập kế hoạch trước cả tuần, sau đó chia nhỏ mục tiêu thành các task (nhiệm vụ) nhỏ hơn và giải quyết lần lượt từ dễ đến khó. Những task đã hoàn thành (dù dễ dàng) cũng cho bạn động lực và niềm tin để giải quyết các Task khó hơn. Họ cũng chọn cho mình một thời điểm và địa điểm làm việc thoải mái và đạt hiệu suất cao nhất. Cũng đừng quên cân bằng giữa công việc và cuộc sống.

9. Bạn luôn giữ sức khoẻ

Khoẻ mạnh là điều quan trọng nhất để bạn đạt hiệu quả cao trong công việc, công việc của một lập trình viên đòi hỏi bạn phải ngồi trước màn hình máy tính hàng giờ liền. Điều này sẽ gây ra các vấn đề về cột sống, đau cổ mãn tính, giảm thị lực, tăng cân, tim mạch và vô số các bệnh khác. Nhưng bạn vẫn có thể ngăn chặn hoặc chí ít là làm giảm thiểu chúng bằng cách nghỉ giải lao sau mỗi khoảng thời gian nhất định (khoảng 1 giờ), bạn có thể đi lại, tập thể dục và để mắt thư giãn bằng cách nhìn ra xa. Bạn có thể thức khuya, nhưng hãy đảm bảo rằng bạn ngủ từ 6 tới 8 tiếng một ngày.

10. Bạn không gian lận

Don’t be evil là khẩu hiệu của Google và cũng nên trở thành tôn chỉ của một Web Developer. Khi đặt mục tiêu hãy cố gắng hoàn thành nó bằng mọi giá, ngoại trừ việc gian lận, cũng đừng vì lợi ích bản thân gây phương hại tới người khác, làm những việc trái với lương tâm như sử dụng nội dung đồi trụy, sai sự thật. Hãy tôn trọng công sức mà người khác đã bỏ ra và cạnh tranh công bằng.
Cần chú ý rằng các dấu hiệu nêu trên chỉ được tính nếu bạn thực hiện nó. Biết và Làm chỉ cách nhau 4 ký tự, nhưng vượt qua được 4 ký tự đó hay không mới là điều quan trọng.

Có thể các bạn không để ý nhưng tôi đưa ra các dấu hiệu bắt đầu từ 0, theo cách của một Programmer.

Tác giả Martin Angelov
blank

Cương Phạm

Thêm bình luận