Viblo CTF

DISCUSSIONS

Feb 2nd, 2017 8:51 AM

Cảm ơn sự phản hồi của bạn. Mình đã đọc qua bài viết của bạn. Cho mình hỏi thêm tí nửa là trường hợp controller cần sử dụng cả ORM và Redis thì không thể sử dụng chung 1 interface rồi bind được(theo cách mình nghĩ). nên chỉ còn 2 trường hợp sau:

  1. "2 repository EloquentPostRepository và RedisPostRepository và inject vào __construct() của Controller." Có phải lúc này Reponsitory đã không còn tác dụng cho lắm vì khi cần sử cũng phải sửa rất nhiều.
  2. Nếu sử dụng "Chỉ viết PostRepository thôi và ta sẽ xử lý cả ORM và Redis" lúc nay Reponsitory cũng đã bị phụ thuộc vào 2 layout. Nhưng tốt hơn cách 1 là mọi sử chửa đều quy về 1 mối.
0
Feb 2nd, 2017 8:01 AM

@skd_nt : Cảm ơn bạn đã quan tâm đến bài viết. Mình có bài viết chi tiết hơn một chút về cách triển khai Repository Pattern trong Laravel. Trường hợp bạn muốn sử dụng đồng thời việc lấy dữ liệu của Post thông qua PostRepository bằng cách lấy thông tin thông qua ORMRedis thì nên xây dựng 2 repository EloquentPostRepositoryRedisPostRepositoryinject vào __construct() của Controller. Mình nghĩ còn phụ thuộc vào logic bài toán mà bạn định thực hiện nữa. Giả sử ta cần tìm các feature post, nếu không có trong Redis thì lấy từ Database, có những phương án sau:

  • Chỉ viết PostRepository thôi và ta sẽ xử lý cả ORMRedis ngay trong chính Repository đó, Controller chỉ cần biết sử dụng hàm featurePost() mà không cần quan tâm trong đó xử lý ra sao.
  • Tách ra 2 Repository và xử lý if ... then ... else ở trong Controller

Trường hợp bạn sử dụng ORMRedis ở những action khác nhau không phụ thuộc vào nhau thì nên tách thành 2 Repository.

0
Feb 2nd, 2017 7:42 AM

Chào bạn. Cảm ơn về nhưng chia sẻ của bạn. Cho mình hỏi. Nếu trong PostController mình cần sử dụng cả ORM và redis cả 2 đều extend PostRepository thì phải làm như thế nào. Cảm ơn ban

0
Feb 2nd, 2017 7:07 AM

bạn chat skype cho mình nhé : ngocduk54a2

0
Feb 2nd, 2017 3:58 AM

Mình đang đứng trên view của Tester nhé. 1 số công ty thì QA chính là Tester .

0
Feb 2nd, 2017 3:47 AM

Câu hỏi là gì vậy anh

0
Feb 1st, 2017 4:50 AM

như mình đã nói ở cách 3 phần nhược điểm. và nếu bạn đọc kỹ bài bạn có thể thấy mình đang nói đến 1 dự án mà tất cả các màn hình đều có thể thay đổi được ngôn ngữ bạn ạ(app mình dang làm thì là như vậy). mà khi đã làm thì k có gì là k thể xảy ra, cái này do khách hàng họ yêu cầu hãy tập sống với trường hợp xấu nhất. có 1 cách nữa gần giống với cách 3, cách này bạn chỉ cần custom lại view và có 1 interface lắng nghe. cảm ơn bạn đã có ý kiến

0
Jan 28th, 2017 5:47 PM

cho e xin cái sourse ạ

0
Jan 28th, 2017 3:07 PM

Bài này nghe có vẻ thú vị. Nhưng chờ đã! Mình cũng thói quen dùng enum nhưng ngoài việc type safety cho method, thì enum còn có tác dụng trong việc print giá trị 1 cách dễ hiểu. Ví dụ: public static final int TYPE_MUSIC = 0; public static final int TYPE_PHOTO = 1; public static final int TYPE_TEXT = 2; Mình có ghi log giá trị của biến type, thì chỉ có thể ra 0, 1 hoặc 2, và muốn biết nó có ý nghĩa gì thì mình phải mò mẫm vào trong file chứa 3 int constant như trên, hoặc mình phải viết 1 hàm util trung gian chỉ để print giá trị dưới dạng đọc được. if (type == 0) { Log.d("", "TYPE_MUSIC"); } else if (type == 1) { Log.d("", "TYPE_PHOTO"); } else { Log.d("", "TYPE_TEXT"); } Với enum thì khá dễ dàng khi print ra giá trị TYPE_MUSIC, TYPE_PHOTO, TYPE_TEXT luôn. Cái khoản print giá trị này thì dùng Enumerated Annotations ko giải quyết được nhỉ -.- Cá nhân mình thấy thì nếu app ko dùng quá nhiều enum thì vẫn cứ tiếp tục dùng enum bình thường thôi, apk size cũng ko lớn hơn là bao, nhưng bù lại thì dùng enum được print giá trị để debug maintain phần mềm về sau sẽ có lợi hơn nhiều.

+1
Jan 28th, 2017 11:34 AM

Chưa thấy ai comment hỉ @@ Thực ra thì mình thấy ở cách 3 nhìn vào code là thấy khó chịu rồi vì code phải loop qua 1 loạt view con trong viewgroup, mặc dù bạn nói performance vẫn ổn. Nhưng nhức mắt nhất vẫn là code if else quá nhiều kèm theo instanceof, làm cho code quá tight coupling mất đi flexibility và khó maintain lắm. Mà mình thấy ko có nhiều phần mềm có chức năng set language lắm, hầu như toàn để user vào system set language ko và sau đó app tự change theo thôi à @@

0
Jan 28th, 2017 2:59 AM

Thanks

0
Jan 28th, 2017 2:27 AM

Hi bạn, hiện tại Elm vẫn đang trong quá trình phát triển để có thể sử dụng cho phần back-end, nếu muốn bạn có thể tham khảo cách thức và khả năng sử dụng của Elm khi viết back-end thông qua một số repo sau : https://github.com/eeue56/elm-server-side-renderer/ , https://github.com/eeue56/take-home .

Còn nếu dùng Elm cho back-end production thì mình tạm thời mình nghĩ ko nên sử dụng, bởi nó chưa được hoàn thiện 😄

0
Jan 27th, 2017 4:32 PM

Em đang dùng javascript cả front-end lẫn back-end(nodejs). Vậy, sử dụng elm cho back-end được không?

0
Jan 26th, 2017 7:30 AM

Ad ơi em vẫn chưa hiểu bước tạo Scene cuối để làm gi v ad . ad có thể cho em facebook để hỏi thêm không ạ

0
Jan 25th, 2017 4:39 PM

Có vẻ như bạn này đang đứng ở vị trí của tester chứ ko phải QA.

0
Jan 25th, 2017 3:39 PM

Ôi tool rất hữu ích luôn, cảm ơn bạn.

0
Jan 25th, 2017 3:35 PM

Rất hay, bài của bạn giúp mình mở mang kiến thức về Laravel nhiều hơn. Cảm ơn chủ thớt đã chia sẻ

+1
Jan 25th, 2017 6:16 AM

Danh dau bai nay ve doc dan keke

0
Jan 25th, 2017 6:13 AM

ngon hi hi

0
Viblo
Let's register a Viblo Account to get more interesting posts.