THẢO LUẬN

thg 7 9, 2019 2:49 SA

bạn viết rõ hơn được không nhỉ, người mới học reactjs ko biết viết cái hàm renderItem ở chỗ nào, thấy bảo viết ở App.js nhưng sau lại thấy import './components/Item' ở đâu đâu 😦

0

ở trên mình cũng có nói là trước khi release cần phải trải qua bước test tải để xác nhận xem hệ thống cần bao nhiêu con server thì đủ. Ví dụ như có thể dựa vào những đợt campaign trước để dựa đoán DAU tầm bao nhiêu để từ đó tính toán số server cần thiết. Công ty mình trước là công ty game cũng đang làm theo kiểu này.

Ngoài ra ở kiến trúc trên mình vẽ 1 con API Server để mọi người dễ hình dung. Còn thực tế để hệ thống có tính Availability cao thì sẽ cần thêm 1 số bộ phận khác nữa như 1 con load balance ở trước đó (kèm theo cả auto scaling nữa) chẳng hạn ...

Với cả hệ thống này xây dựng theo cơ chế queue worker nên phía API sẽ ko làm quá nhiều nhiệm vụ phức tạp, chỉ xử lí việc authen và đẩy data vào queue và trả về trực tiếp response đến người dùng là xong nhiệm vụ. Còn phía client chỉ subscribe để nghe data changed.

Đương nhiên là cũng có 1 vấn đề là giả sử hệ thống đang esitmate là lượng access max nhất cũng chỉ 1 triệu request/s chẳng hạn. Nhưng chẳng may lúc đó lại đến 3 triệu, 10 triệu request/s thì có thể hệ thống sẽ bị sập. Nên giai đoạn test tải trước là điều vô cùng quan trọng.

Trước có vụ công ty game của nhật release game fifa server cũng bị sập liên tục, cứ 5 phút lại sập do bên đó chưa thực hiện kĩ quá trình test tải. estimate sai số lượng người dùng nên server scale không kịp.

+2
thg 7 9, 2019 2:40 SA

mấy case đó thì thực ra không phải chỉ là JS đâu, mà ngôn ngữ nào cũng thế.

nó liên quan tới việc biểu diễn số thực, về cơ bản thì máy tính nó chỉ là binary thôi, biểu diễn số thực cũng chỉ gần đúng được thôi chứ ko phải là chính xác tuyệt đối.

so sánh số thực thì không nên dùng so sánh bằng, mà hãy đưa ra một cái ngưỡng rất nhỏ nào đó để so sánh gần đúng

ví dụ:

Math.abs(0.1 + 0.2 - 0.3) < ngưỡng
+1

1 realtime DB của Firebase có thể chịu tối đa 1 triệu requests mỗi giây, nhưng với flow này thì 1 triệu requests đó phải đi qua server của mình trước (step 1), và nó nghẽn cổ chai ở server mình trước khi kịp làm firebase quá tải mất rồi 🤔

Nhung nếu để client có quyền write vào Firebase realtime DB thì nguy hiểm, không biết có cao nhân nào có cao kiến ở chỗ này hợp lý không nhỉ.

+1
thg 7 9, 2019 2:07 SA

Còn case này thì sao anh, có lời giải thích gì không :v

0.5 + 0.1 == 0.6 // true

0.1 + 0.2 == 0.3 // false
0

bài viết rất hay. 👍

+1
Avatar
đã bình luận câu trả lời trong câu hỏi
thg 7 9, 2019 1:10 SA

@thanh_tuan

Nếu bạn sử dụng onChange cho input thay vì onPressEnteronBlur thì cũng bị issue tương tự đó.

+1

Anh không rõ lắm về bài toán element thay đổi liên tục của e lắm, nhưng do thằng thư viện này nó chỉ render những element trong khung view cộng thêm 1 số thằng phía trước và phía sau nó cho việc scroll nó smooth hơn, nên trừ khi list của e nó quá ngắn thì có thể tệ performance hơn, chứ nhiều thì a thằng này sẽ tốt cho performance hơn, e có thể lấy ví dụ giúp a bài boán mà e đang gặp phải là gì không?

0

Chào bạn, Cảm ơn bạn vì bài chia sẽ hết sức bổ ích. Cho mình hỏi là "Thêm các biểu tượng cảm xúc" như thế nào ạ?(cách thêm và resource ở đâu?) Thanks. 😃

0

giải thích ngắn gọn thì e có thể hiểu là sau khi em code ở file resources/assets/js/app.js thì e cần biên dịch nó ra để có được file public/js/app.js và trình duyêt nó chỉ hiểu file cuối này nhé 😃

0

public static int dem (Integer i,Integer j,int S,String Chuoi) { int a=0; if (i==10) { if (S==100) { System.out.println(Chuoi); return 1; } else return 0; }

	else
	{
		String h=j.toString()+i.toString();
		a=a+dem(i+1,i,S+i,Chuoi+"+"+Integer.toString(i) );
		
		
		a=a+dem(i+1,-i,S-i,Chuoi+"-"+Integer.toString(i));
		
		if(S==j)							
		a=a+dem(i+1,Integer.parseInt(h),Integer.parseInt(h),Chuoi+i.toString());				
		else
		{
			
			a=a+dem(i+1,Integer.parseInt(h),S-j+Integer.parseInt(h),Chuoi+i.toString());
		
						
		}
	
		return a;
	
	}
}
public static void main(String[] args) {
	int i=0;
	
	int huy=dem(2,1,1,"1");
	System.out.println(huy);
	
}
0

e chạy npm run watch chưa, có thể của e trình duyệt bị cache, e thử clear cache rồi load lại xem

0

e chạy npm run watch chưa, có thể của e trình duyệt bị cache, e thử clear cache rồi load lại xem

0

mình làm theo và khi reload lại page thì bị kich ra trang đăng nhập, có thể chỉ mình cách khắc phục dc k a @baongan

0

thanks bác, đang bối rối về phần này. Mà nếu được thì bác làm bài hướng dẫn dùng socket io thay cho pusher =D

0

bạn không hiểu cái gì thế ạ ^^

0

bạn giải thích thêm giúp mình đc ko, hok hỉu gì cả

0
thg 7 8, 2019 6:55 SA

Bài viết bố cục rõ ràng, lành mạch nhưng thiếu nguồn tham khảo, ngoài ra nên dịch thuần Việt hơn thay vì dùng translate. Hi vọng tác giả có thể dành ít thời gian để sửa lại nội dung bài viết.

+1

Phần 1 em bổ sung thêm 1 cách nữa đó là set: .parent { display: flex } .child-to-center { margin: auto } Cách ni có vẻ ngắn hơn nữa nè a

+2
thg 7 8, 2019 4:31 SA

Bài viết khá hay và chi tiết

0
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí