Quốc Hưng Hoàng
6 questions
2 answers
Avatar
0
Quốc Hưng Hoàng Beginner
Cách mọi người kiểm thử trên môi trường production
Chào anh Dũng và mọi người,<p> Hiện tại em đang tham gia một dự án làm về CRM. Team em đã deliver sản phản cho khách hạn sử dụng và đang tiếp tục phát triển tính năng mới. </p> <p> Khách hàng và team em thống nhất sẽ tạo ra 1 bộ test data trên production để thực hiện kiểm thử. </p> <p> Với cách này, bản thân em thấy đôi chút lạ lùng do có khả năng end user sẽ truy cập đc test data đấy </p> <p> Nếu là em, em sẽ dump production db vào 1 môi trường riêng biệt, giả sử như staging (với cấu hình gần giống với production server). Tất cả hoạt động kiểm thử sẽ thực hiện trên staging với bộ production data. QA có thể tự do CRUD data mà ko lo ngại ảnh hưởng đến end user. Tuy nhiên, có vẻ như khách hàng của cty em budget ko dư dả nên ko set up 1 server riêng như vậy. </p> <p> Tiện đây, em muốn hỏi ở công ty anh Dũng cũng như mọi người, practice như trên có phổ biến hay ko ? Nếu ko, mời mọi người chia sẻ cách kiểm thử trên môi trường production. </p>
Answer
Avatar
0
Quốc Hưng Hoàng Beginner
[Design Pattern] Chain of Responsibility
Xin chào anh Dũng và mọi người,<p> Em đang đọc đến mẫu thiết kế Chain of Responsibility trong cuốn sách "Làm chủ các mẫu thiết kế kinh điểm trong lập trình", </p> <p> Đồng thời em cũng đang làm 1 pet project nhỏ để crawl data và đang làm 1 feature theo em nghĩ có thể ứng dụng mẫu thiết kế trên. Mong anh review qua ạ. </p> <p> Cụ thể, em crawl kết quả bóng đá của 1 câu lạc bộ, bao gồm tỉ số, người ghi bàn, v.v. </p> <p> Sau khi lấy kết quả, em muốn đánh dấu 1 trận đấu là 1 trận "đáng chú ý" bằng cách xác định: </p> <ul> <li>có 1 cầu thủ ghi hattrick</li> <li>cách biệt tỉ số > 3 bàn</li></ul> <p> ... </p> <p> nếu đó là "đáng chú ý" thì em sẽ thực hiện 1 hành động dựa trên nghiệp vụ của dự án. </p> <p> Tiếp theo em sẽ tiếp tục quá trình ETL data của em. </p> <p> Theo em thì với logic như trên, Chain of Responsibility khá phù hợp để implement nhưng em chưa đọc hết sách nên ko rõ có phải là sự lựa chọn tốt nhất ko. Mong anh giải đáp ạ </p> <p> Cảm ơn anh Dũng và mọi người </p>
Answer
Avatar
1
Quốc Hưng Hoàng Beginner
Làm thế nào để unsubscribe email
Chào anh Dũng và mọi người, <p> </p> <p> Em đang nghiên cứu làm chức năng unsubscribe email </p> <p> </p> <p> Sau khi xem qua tính năng này ở một số website thì unsubscribe url sẽ có path chứa 1 chuỗi các kí tự random. </p> <p> </p> <p> Vì vậy, em dự định sẽ encode/decode user pk sang uid string để identify người dùng khi họ request to unsubscribe. </p> <p> </p> <p> Em ko rõ liệu như vậy đã an toàn hay chưa (1) ?  vì em có liên hệ sang tính năng password reset thì 1 vài open-source project dùng kết hợp uid-token. Phần token ấy em chưa hiểu rõ mục đích của nó nên k có ý định sử dụng (2) </p> <p> </p> <p> Rất mong anh Dũng và mọi người giải đáp giúp e 2 vấn đề trên ạ. Em cảm ơn </p>
Answer
Avatar
1
Quốc Hưng Hoàng Beginner
Lưu trữ text with formatting trong database
Chào anh Dũng, <p> </p> <p> Hiện tại em đang làm 1 project mà ở đó người dùng có thể soạn văn bản kèm format (in đậm, in nghiêng, hyperlink, hình ảnh v.v...) để gửi mail. </p> <p> </p> <p> Trong project có tính năng là người dùng có thể tuỳ chỉnh signature của họ (tương tự signature của gmail, nằm cuối cùng trong 1 nội dung mail). </p> <p> </p> <p> Hiện em ko chắc mình sẽ lưu signature này như thế nào. Theo suy nghĩ của em là phía frontend sẽ dùng 1 markup language (như markdown) để convert các định dạng (in nghiêng, in đậm, hyperlink) để trở thành 1 chuỗi string thuần. </p> <p> </p> <p> Vì vậy em có hỏi cấp trên (TA) là system sẽ dùng markup language gì để khi nhận đc input từ frontend, backend sẽ biết đc đó là định dạng gì (thay vì ghi nhận là các kí tự đặc biệt). </p> <p> Phía backend cũng cần biết vì có những tính năng backend sẽ trực tiếp gửi mail đến người dùng ạ (ví dụ reset password) </p> <p> </p> <p> Sau khi hỏi thì TA có bảo em là cứ lưu nguyên HTML code mà k cần convert gì hết. Em nghe thấy lấn cấn nhưng cũng k có lí do gì để phản biện lại. Nên trước mắt e vẫn làm theo yêu cầu đấy. </p> <p> Xin anh Dũng cho em lời giải ạ. </p>
Answer
Avatar
1
Quốc Hưng Hoàng Beginner
Cách xử lí exception trả về từ 3rd-party library
Chào anh Dũng và mọi người <p> </p> <p> Em đang thực hiện task: tích hợp <a href="https://www.twilio.com/">Twilio</a> vào dự án backend của công ty. </p> <p> </p> <p> Em định nghĩa 1 class tên MessageClient trong <code>Service layer</code> như sau: </p> <p> </p> <pre> import TwilioClient class MessageClient: def __init__(self): self.twilio_client = TwilioClient(twilio_account_sid, twilio_auth_token) def send_message(body, from, to): self.twilio_client.send_message(body, from, to) </pre> <p> </p> <p> send_message có thể successful hoặc failed, nếu fail <code>twilio</code> sẽ raise exception, em đang phân vân liệu mình sẽ handle exception trong service layer hay trong view (API) layer? </p> <p> </p> <p> Mong anh giải đáp giúp ! </p> <p> Em cảm ơn ạ. </p>
Answer
Avatar
1
Quốc Hưng Hoàng Beginner
Như thế nào thì được gọi là thành thạo về cơ sở dữ liệu ?
Chào mọi người, <p> </p> <p> Mình hiện là một backend developer, hiện tại chưa tiếp xúc nhiều với database. Khi đọc các mô tả công việc của một backend developer trên các trang tuyển dụng rất hay bắt gặp các yêu cầu chung chung như: </p> <blockquote><strong>Good knowledge &amp; proficient in using: <i>SQL, MySQL, PostgreSQL, or similar </i></strong></blockquote> <p> Vậy thì như thế nào để một junior backend developer được xem là có kiến thức tốt và thành thạo trong việc dùng các database engine ? </p> <p> </p> <p> Mình chưa đề cập đến các khái niệm nâng cao như distributed system hay optimization tuning </p> <p> </p> <p> Rất mong nhận được những keyword cụ thể từ các bạn để giúp mình tập trung ôn tập những kiến thức thực sự cần thiết </p>
Answer