5 bài học từ việc phát triển app cho web

2064

Lần đầu tiên tôi viết ra được một app dành cho web là khi làm cho project cuối khóa khi còn học đại học. Thay vì phát triển ra một ứng dụng chỉ để hoàn thành project, tôi quyết định tạo ra một app mang tính thực tiễn, có thể áp dụng vào đời sống luôn. Thế là  Cyber Manager, một hệ thống quản lí online cho các quán cyber cafe, được ra đời. Chỉ trong năm 2011, có tới hơn 3,000 lượt download kể từ khi tôi up nó lên SourceForge.net. Trong bài viết này, tôi sẽ kể cho bạn 5 bài học tôi rút ra được trong quá trình tạo ra Cyber Manager, hi vọng sẽ giúp bạn trên con đường lập trình app cho web.

Bài học 1: Đừng kiếm ý tưởng cho project. Hãy kiếm vấn đề để giải quyết

Nếu bạn muốn thử sức với việc viết ra một web app, thay vì cứ tìm kiếm ý tưởng “độc” để phát triển, hãy nghĩ về vấn đề cần được giải quyết. Một vấn đề từ thế giới thật sẽ đặt ra thử thách cho bạn cũng như mở ra cơ hội để mở rộng những kĩ năng của mình và trở nên thật chuyên nghiệp. Nó cũng sẽ giúp ích bạn trong quá trình kiếm việc bởi những kinh nghiệm từ việc coding giải quyết những vấn đề trong thế giới thực. Hơn nữa, bạn cũng sẽ hiểu rõ hơn về code.  

Bài học 2: Giải pháp luôn đến từ xung quanh bạn.

Khi tôi vẫn còn ở đại học, tôi thường ghé quán cyber cafe của một người bạn để học về lập trình web qua các khóa online. Có lúc, tôi dành tới hàng tiếng mỗi ngày, vài ngày mỗi tuần chỉ ở quán cafe. Tất nhiên, là tôi cũng phụ bạn quản lí quán khi anh ta nghỉ ngơi. Nhờ đó mà ý tưởng về cyber manager xuất hiện.

Bài học 3: Lựa chọn phương pháp phát triển dựa vào open source tool.

Sau khi đã quyết định bạn sẽ làm cái gì, việc tiếp theo là bạn phải tập trung vào cách phát triển project đó.  ASP.NET là một lựa chọn được khá nhiều sinh viên yêu thích, cũng như Java. Riêng tôi thì quyết định dùng PHP, Apache và MySQL, một open source language stack khá nổi tiếng và an toàn. Việc dùng cả 3 tool trên cũng cho tôi thêm kinh nghiệm làm việc với các cộng đồng online.

Bài học 4: người cố vấn, chỉ dạy còn quan trọng hơn cả technology stack.

Khi bạn bắt đầu project của mình, hãy ưu tiên việc kiếm một người thầy, cố vấn giỏi hơn cả technology stack. Công nghệ chỉ là một công cụ để hoàn thành project nhưng thầy cố vấn thì lại giúp hoàn thiện con người bạn – thầy giỏi sẽ khiến bạn làm ra được những ứng dụng tốt, giúp bạn phát triển trở thành một pro IT. Mặc dù nhiều trường đại học hiện nay có dịch vụ cố vấn cho học sinh nhưng bạn cũng nên dựa vào nguồn bên ngoài mà kiếm thêm người chỉ dạy.

Tôi rất may mắn khi được một người bạn làm thầy chỉ dạy khi làm project cho năm cuối. Anh ta là một pro PHP developer và là một entrepreneur. Tôi luôn dành thời gian bàn luận cùng với anh ấy và nhận được rất nhiều lời khuyên quí giá cho việc phát triển project. Anh cũng theo sát quá trình phát triển và luôn chạy test app để tìm ra bug cũng như vấn đề hiệu năng. Nhờ đó mà ứng dụng của tôi được cải thiện lên rất nhiều.

Bài học 5: Hãy để người dùng thật sự test và sử dụng app của bạn.

App chỉ thật sự hoàn thiện khi nó đã được test và dùng bởi nhóm người dùng mà bạn muốn nhắm vào. Để kết quả của một project chính xác, đáng tin cậy thì bạn cần phải thu thập feedback khi cho một nhóm người dùng, thuộc thị trường bạn đang nhắm vào, test sản phẩm của mình. Đây là điều vô cùng quan trọng bởi nó cải thiện chất lượng của app cũng như đóng vai trò then chốt cho sự phát triển của một project cũng như sản phẩm mà người dùng yêu thích nó.

Hãy xem sản phẩm app của tôi – Cyber manager:

Cyber Manager là một hệ thống quản lí web-based dành cho cyber cafe được tạo ra nhờ vào PHP/MySQL.

Cyber Manager

Như bạn thấy trong hình, nó bao gồm 9 section khác nhau:

Quản lí khách hàng: theo dõi quá trình sử dụng của khách hàng thông qua một online database.  Admins có thể add, edit, search, và xóa thông tin lưu trữ về khách hàng.

screenshot of Manage Customer view

Khách hàng Login: Cho phép khách hàng sử dụng một máy tính của quán. Ngay khi người quản lí cho phép khách hàng log/đăng nhập vào một máy tính thì đồng hồ tính giờ cũng sẽ chạy cho đến khi logout bởi người quản lí. Dựa vào tổng thời gian xài máy tính mà người quản lí sẽ tính bill cho khách hàng.

customer login module view

Quản lí bill/invoice: Tự động tính và tạo ra bill cho khách hàng. Số tiền sẽ được dựa theo số thời gian sử dụng máy tính cũng như khách hàng dùng thêm các dịch vụ khác. Ngoài ra nó còn lưu trữ các bill nhằm phục vụ cho việc kiểm tra để quản lí.

manage bills

Quản lí dịch vụ: Thêm, sửa hoặc xóa các dịch vụ có trong quán. Người quản lí có thể in ra một bản list những dịch vụ và giá thành của chúng.

manage services

Print Rate Card: In thẻ giá service có ghi rõ các loại service cũng như giá của nó.

Xem thẻ khách hàng: tạo và xem membership của khách hàng bao gồm tên, ngày sinh, ID và ngày hết hạn.

customer membership card

Thông báo membership hết hạn: List các khách hàng có ID card hết hạn và không được phép sử dụng dịch vụ của quán. Người quản lí cũng được quyền gửi email để thông báo cho người dùng về vấn đề trên để mở lại tài khoản hoặc thêm thời gian.

expired memberships

Nguồn: blog.topdev.vn via Opensource