Quy trình từ zero đến hero của một dự án thực tế

Hé lô mọi người lại là mình đây, tuần sau mình sẽ được làm một dự án thực nên tiện đây muốn chia sẻ với anh em chút kinh nghiệm làm việc mà mình học được ở công ty nè.
Giai đoạn 1. Đầu tiên các bạn sẽ nhận được một bản requirement, các bạn có thể xem nó như một bài kiểm tra đi thì cái yêu cầu này là để bài. Tiếp theo sau khi có đề bài, team leader và technical cùng anh em trong team sẽ ngồi lại với nhau phân tích requirement vạch ra các hướng phân tích và yêu cầu mọi người phải hiểu tường tận chi tiết bản yêu cầu này để tránh gặp phải rắc rối sau này khi mình đã build hoàn chỉnh mà sai requirement thì rất mất thời gian. Sau khi họp xong nếu có câu hỏi thác mắc gì chúng ta sẽ note lại và gửi Q&A với khách hàng. Khi mọi vấn đề đã được giải đáp ổn thỏa thid chúng ta bắt đầu gì tiếp theo nhỉ? Thiết kế database, viết code luôn …..
Giai đoạn 2. Câu trả lời là “Chưa phải lúc này”, sau khi đã confirm với khách hàng team sẽ họp lại tạo một bản High-level hệ thống các module cần làm trong dự án, trong các module đó chúng ta sẽ có các chức năng gì? Trong từ chức năng chúng ta lại tiếp tục chia nhỏ thành các task. Mockup UI từ bản Module này từ đó gửi lại cho khách hàng confirm.
Giai đoạn 3. Tiến hành ước lượng thời gian cuae các module, qua trình implementation và integration lên front-end. Quá trình này được gọi là Estimationm, việc ước lượng thời gian này càng chi tiết, càng chia nhỏ các task ra thì chúng ta càng kế hoạch được dự án, quản lý thời gian cũng như dự án, resource của team một cách tốt nhất. Mình sẽ chia sẻ với các bạn chi tiết về giai đoạn này trong các bài viết sau.
Giai đoạn 4. Thiết kế database tùy vào độ “khủng” của dự án mà ta lựa chọn cơ sở dữ liệu cho phù hợp và các quan hệ giữa các bảng có cần thiết hay không nếu không chúng ta sẽ tạo ràng buộc dữ liệu ngay trong code mà không cần phải tạo ràng buộc dữ liệu trong database. Bước thiết kế database cũng cực kỳ quan trọng bởi vì chúng ta phải tính các field chúng ta sẽ dùng đến trong quá trình code, cấu trúc database để sau này có chỉnh sửa thì cũng chỉnh sửa mau lẹ gọn gàng :D.
Giai đoạn 5. Sau bước này team sẽ hoàn thành công việc setup project, structure, environment, tạo 1 project trên gitlab. Tiến hành tạo các entity model các package của một dự án. Ở đây mình đang làm việc với dự án Spring Boot Web Application nên sẽ tạo các package như API, Service, Repository, Utils,…
Giai đoạn 6. Tiếp theo lần lượt implement thực thi các module, các bạn nên nhớ bước này chúng ta nên hoàn thành có thứ tự các chức năng sau thì nên hoàn thành chức năng tiền xử lý của nó. Ví dụ chúng ta thực hiện cho Admin tạo user thì cần xử lý các bước đăng nhập, phân quyền, kiểm tra authentication, session, nếu phân quyền liên quan tới các API của bên thứ 3 thì nên hoàn thiện các API này như grant Access Token, refresh Access Token chẳng hạn. Continue reading

Advertisements

Sau một tháng thực tập học được những gì?

Xin chào mọi người lâu lắm rồi mới viết lại bài, xin lỗi vì series Gulp mình chưa ra kịp nhé mình sẽ cố bù lại cho mọi người ngay. 2 tháng rưỡi hè vừa qua có cực kỳ nhiều kỷ niệm đối với bản thân mình. Chạy đồ án cuối kỳ cho 2 môn tự mình viết ứng dụng Android, làm quen với Firebase từ đó nhận thấy khá nhiều điều hay và thú vị bên cạnh đó rút ra một số kinh nghiệm theo lời nhận xét của giáo viên. Sau đó về quê có chút việc của gia đình về 2 tuần lại quay vào lại thành phố, tưởng thế là được chơi cả hè rồi thế mà hứng lên lại nộp CV đi thực tập surrender . Buổi phỏng vấn được anh Technical Leader và anh CEO phỏng vấn cũng tạm ổn có một số câu hỏi giải quyết vấn đề thì mình còn hơi kém nhưng vân đề ra giải pháp được hehe. Sau đó 1 tuần thì mình đi thực tập đó là ngày 16/7/2018 . Mới vào công ty còn khá lạ mình cũng ít nói nên khó hòa nhập, nhưng anh chị với mọi người trong công ty khá vui nên sau 1 tháng thì giờ cũng tạm ổn rồi tuy vẫn ít nói như vậy phải cố gắng khắc phục thôi. À quên mất mình thực tập Java Web Developer ở công ty, công ty chuyên về cloud, giải quyết về các vấn đề bảo mật sử dụng Spring Boot và front end thì làm việc với AngularJS. Sau một tháng thì mình học hỏi được một số kinh nghiệm sau mình sẽ chia sẻ cũng như tự nhìn nhận lại :
1. Thường sẽ có 30 phút Daily Scrum mỗi ngày báo cáo công việc ngày hôm trước và các task sẽ làm trong ngày hôm nay, cuối tuần thì đặc biệt hơn một chút có khoảng 1 tiếng để Weekly Report báo cáo lại tiến độ dự án, các task đã làm trong tuần qua. Cá nhân mình thấy buổi scrum này cực kỳ thú vị và có giá trị, công ty được ngồi lại nói về tất cả dự án của công ty chứ không riêng gì các dự án mà mình đang tham gia. Công ty là công ty startup nên các buổi scrum này khá hay, anh CEO chia sẻ về các kinh nghiệm, các sự kiện mà anh tham gia từ đó chia sẻ khá nhiều thứ.
2. Cuối ngày sẽ có một bản report chúng ta ghi lại những task đã hoàn thành “DONE” và task nào đang còn làm dở “ON-PROGRESS” từ đó có kế hoạch cho ngày hôm sau. Mình khá may mắn khi thực tập 2 tuần thì được join vào dự án thực làm quen với các cấu hình, các thiết lập của một dự án thực, kết hợp giữa Front-end và backend như thế nào.
3. Sử dụng IDE nào không quan trọng, quan trọng là việc coding và cấu hình dự án, đa phần công ty mình sẽ sử dụng IDE IntelliJNetbeans. Bên cạnh đó một điều không thể thiếu là làm việc với Git, Gitlab, các bạn phải tập làm quen với Git nhé sau này dùng nhiều lắm, cuối ngày Leader sẽ review code sau đó mọi thứ ok sẽ commit, pull, push code và merge code lại cho ngày hôm sau. Một điều quan trọng nữa là luôn luôn phải nhớ câu thần chú “COMMIT – PULL – PUSH” kẻo làm mất code của đồng nghiệp đấy nhé hungry Continue reading