Laravel trong công việc

Mọi người cho em hỏi ngoài thêm, sửa, xóa, tìm kiếm…các thao tác cơ bản với DB trong Laravel thì trong công việc thực tế cần tìm hiểu thêm những gì nữa ạ?

Học PHP vững chưa? Nếu chưa vững, đây là lúc ôn lại PHP luôn và các khái niệm/ thực hành lập trình web hiện đang là mốt:

Template Engine
Unit Test
ORM
… còn một chùm các thứ nữa như Security, Migrate database, MVC,… các kiểu. Cứ tìm “Why choose Laravel” là ra cả đống thứ, học hết bấy nhiêu đủ già.

Nói đến Laravel mà không đề cập đến Artisan là một thiếu sót lớn, nghiên cứu vọc Artisan cho rành để xử lý một số việc thật mạnh mẽ.

3 Likes

lâu rồi mình không làm việc với laravel nhưng cũng làm việc với web nên cũng có chút ý kiến cho câu hỏi này

Khi bạn đi làm, CRUD nó không còn đơn thuần là thực thiện trên 1 table (relation hay collection, object hay gọi là gì đó khác thì tùy), nhất là thể loại xuất ra report.
Design data, seeding data để test (test trong lúc dev, có thể seed cho QC test nếu được)
Validate dữ liệu mà người dùng request, xử lý những người dùng thích vọc phá, phải bắt được những cái trò người dùng có thể làm sai. Hầu hết thời gian suy nghĩ của dev là để xử lý vấn đề này
Cài đặt môi trường: development, test, staging, production
Lựa chọn những thứ mà mình sử dụng cho phù hợp với dự án: ví dụ trong laravel, bạn sẽ dùng gì để xác thực? ghi nhớ xác thực như thế nào, xác thực request như thế nào
Làm tool nho nhỏ để phục vụ cho việc dev của mình (có thể không liên quan laravel nhưng phục vụ cho việc dev)
Nếu làm cả backend nữa thì lại có cái trò design UI/UX. Ví dụ: ban gọi ajax cho chức năng thêm gì đó, bạn phải xử lí được cái chuyện là người dùng click cái nút thêm đó 5 lần liên tục, rất nhanh (giả sử ajax mất 0.5s thì cũng đủ click được 5 cái rồi).
Chuyển đổi cấu trúc dữ liệu sau khi lấy từ database sang api response. dữ liệu là SQL nhưng api design là trả về dạng cây (NoSQL hay JSON hay gì đó, gọi sao gọi)
Xử lí file người dùng up. Ví dụ web cho phép user up nhiều avatar, chọn 1 để hiện thị. Task này bạn sẽ làm gì, Design data thế nào để biết người dùng có những avatar nào mà hiển thị lên web? những avatar đó lưu ở đâu (base64 in db, file in resource, nếu là file in resource folder thì lưu cấu trúc ra sao, nếu đơn giản up gì lưu đó thì trùng tên thì sao?, nếu là file như vậy thì sao biết file nào của user nào). lưu file upload hay viết sql để curd ai cũng làm được, chủ yếu là ý tưởng/thiết kế xử lí cho hợp lý thôi
Chưa kể task bạn làm có liên quan task khác thì sẽ thế nào, phải thương lượng với thằng khác nữa
Nói chung laravel hay framework khác chỉ là công cụ ai học cũng được, thậm chí vừa làm vừa học luôn cũng được. Quan trọng vẫn là giải pháp cho những task cụ thể.

Nếu bạn đang cần những task cụ thể thì cứ thấy thích tính năng của cái web gì đó thì search và làm thôi.
Ví dụ:

  1. web bán hàng X có cho lưu giỏ hàng chẳn hạn, nếu là có đăng nhập thì lưu giỏ hàng đó vô account để user có đăng nhập vô thiết bị khác vẫn thấy được giỏ hàng, còn nếu là khách lướt ngang thì cũng ghi nhớ giỏ hàng trên trình duyệt đó để hôm sau người ta còn thấy giỏ hàng, đỡ phải tìm lại. bonus thêm cái nữa là người ta lựa hàng xong rồi mới đăng kí account thì phải move giỏ hàng đó vô account của người ta. 1 cái nữa phát sinh là người ta lựa món A, B, C trong giỏ hàng lức chưa login, sau khi login thì xử lí thế nào cho trong trường hợp [người ta đã có giỏ hàng chứa X,Y,Z trước đó, vậy là giỏ hàng đó thành 6 món hay 2 giỏ hàng] (vậy tới đây phải QA lại với bên thiết kế là user có 1 giỏ hàng hay nhiều giỏ hàng, có thay đỏi thiết kế thì có thể thay đổi luôn cấu trúc db, tốn thời gian, người có kinh nghiệm sẽ QA từ lúc đọc thiết kế, fresh đưa gì làm đó, tới khi làm mấy task mới thấy vấn đề, hơn nhau chỗ đó)
  2. chức năng gửi mail reset mật khẩu. làm sao cho an toàn, bảo mật. Gửi cho người ta cái link trong mail, cái link đó chỉ xài được 1 lần. Xử lí trường hợp user rảnh rỗi gửi 100 lần quên mật khẩu thì sao => phải giới hạn? thời gian bao lâu thì được gửi hay giới hạn gì khác?
    Link đó chỉ valid trong vòng 24h. Nếu có request link mới thì link cũ còn hạn sử dụng cũng không đươc, báo với người ta link này không xài được vì lý do đã có link mới
  3. Sếp nói ổng muốn ghi log lại để biết người dùng sử dụng gì, ví dụ như người ta click xem món nào, người ta thích vô mục nào, người ta cập nhật profile lúc nào, cập nhật tên lúc nào, thêm hàng vào giỏ lúc nào, giỏ hàng đó đã lâu rồi chưa mua thì email nhắc người ta mua đi, ghi log để kiểm tra lúc vận hàng có lỗi gì đó hay không, bla bla
7 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?