@nghiand1010 Nếu đã validate trước khi tạo command thì bên event-store sẽ không tạo ra event này nên việc phía read dù chưa đồng bộ cũng đâu ảnh hưởng gì đâu nhỉ
Nếu em có nền tảng kiến thức chắc chắn rồi thì nên apply vào những chỗ có lương. Lương không phải mục đích là mình kiếm tiền mà để mình có trách nhiệm hơn khi nhận tiền từ công ty cũng như là động lực để đi làm. Còn nếu em chưa đủ tự tin apply những chỗ có lương và không bị áp lực tài chính cũng có thể xem xét suy nghĩ để thực tập những chỗ không lương, nhưng hãy chọn những công ty lớn và uy tín để thực tập không lương và nhận được sự support tận tình nhé (vd như Sun Asterisk). Không thì mình cứ ngồi nhà cày kiến thức cho kỹ và làm vài app nhỏ nhỏ để đi thực tập có lương nhé. Anh thì thích chỗ nào có lương để còn có động lực đi làm hơn
@quocthinh861 Có điều là nếu có một command khác chạy trước đó, và chưa được đồng bộ sang bên read chả hạn, lúc đó sẽ bị trùng với command chạy trước đó, đã vào event source tuy nhiên chưa được đẩy sang bên read. Nếu validate bên read thì sẽ bị sai do dữ liệu chưa sang nên chưa bị trùng.
Mình nghĩ bạn có thể sử dụng Axon với kiến trúc SAGA, xử lý phần validate trùng ở phần lệnh commands, kiểm tra trước khi thực hiện rồi thông báo đến những nơi khác
mình muốn hỏi một chút về CQRS với,
Nếu mình muốn validate trùng (ví dụ trùng mã) trong CQRS thì như thế nào? Hoặc các validate cần realtime chứ không Eventual consistency với các framework DDD và CQRS xử lý như thế nào.
@Mathley_Neutron cấu hình 12GB thì cũng là khá nhỏ.
Bạn có thể cài theo cấu hình:
1 master: 3GB
1Worker :3GB
1 installation server: 2Gb (trên này sẽ cài đặt kubespray để bootstrap cluster)
B có thể dùng github để thay thế gitlab cho tiết kiệm nếu chỉ dùng như SCM
no_epochs = 2000
for epoch in range(1, no_epochs + 1):
model.train()
optimizer.zero_grad()
# NOTE: just use boolean indexing to filter out test data, and backward after that!
# the same holds true with test data :D
# https://github.com/rusty1s/pytorch_geometric/issues/1928
for i in train_data.y:
if i < 0:
continue
else:
loss = F.nll_loss(
model(train_data), train_data.y - 1, weight=torch.FloatTensor(_class_weights).to(device)
)
loss.backward()
optimizer.step()
# calculate acc on 5 classes
with torch.no_grad():
if epoch % 200 == 0:
model.eval()
# forward model
for index, name in enumerate(['train', 'test']):
_data = eval("{}_data".format(name))
y_pred = model(_data).max(dim=1)[1]
y_true = (_data.y - 1)
acc = y_pred.eq(y_true).sum().item() / y_pred.shape[0]
y_pred = y_pred.cpu().numpy()
y_true = y_true.cpu().numpy()
print("\t{} acc: {}".format(name, acc))
# confusion matrix
if name == 'test':
cm = confusion_matrix(y_true, y_pred)
class_accs = cm.diagonal() / cm.sum(axis=1)
print(classification_report(y_true, y_pred))
loss_val = F.nll_loss(model(test_data), test_data.y - 1
)
fmt_log = "Epoch: {:03d}, train_loss:{:.4f}, val_loss:{:.4f}"
print(fmt_log.format(epoch, loss, loss_val))
print(">" * 50)
Không sao đâu em ! phần quản lý thời gian em có thể rèn luyện được. Mỗi cái có một ít là chuẩn dân IT rồi, Kiên trì và cố lên em nhé ! Mới năm nhất cũng đừng lo lắng lắm, tập trung học những môn đại cương cho chắc để tạo nền tảng tốt nhất nhé e.
THẢO LUẬN
Hình như cái này không phát hiện được cùng lúc nhiều biển số trong một hình ảnh đúng không ạ
Tuyệt vời 💖
Repository pattern là một phần của SOLID design principles. Cho em xin in tư các thành phần khác của SOLID với anh.
:v idol cho em theo với
@nghiand1010 Nếu đã validate trước khi tạo command thì bên event-store sẽ không tạo ra event này nên việc phía read dù chưa đồng bộ cũng đâu ảnh hưởng gì đâu nhỉ
Chào bạn, bạn cho mình hỏi bạn đã đăng ký cho môi trường sandbox được chưa ạ?
Nếu em có nền tảng kiến thức chắc chắn rồi thì nên apply vào những chỗ có lương. Lương không phải mục đích là mình kiếm tiền mà để mình có trách nhiệm hơn khi nhận tiền từ công ty cũng như là động lực để đi làm. Còn nếu em chưa đủ tự tin apply những chỗ có lương và không bị áp lực tài chính cũng có thể xem xét suy nghĩ để thực tập những chỗ không lương, nhưng hãy chọn những công ty lớn và uy tín để thực tập không lương và nhận được sự support tận tình nhé (vd như Sun Asterisk). Không thì mình cứ ngồi nhà cày kiến thức cho kỹ và làm vài app nhỏ nhỏ để đi thực tập có lương nhé. Anh thì thích chỗ nào có lương để còn có động lực đi làm hơn
@quocthinh861 Có điều là nếu có một command khác chạy trước đó, và chưa được đồng bộ sang bên read chả hạn, lúc đó sẽ bị trùng với command chạy trước đó, đã vào event source tuy nhiên chưa được đẩy sang bên read. Nếu validate bên read thì sẽ bị sai do dữ liệu chưa sang nên chưa bị trùng.
Em sinh viên it đang học kỳ 3 tại cao đẳnng FPT , muốn tìm việc không lương để lấy kinh nghiệm thì có nê n không ạ . Rất mong anh giải đáp
Mình nghĩ bạn có thể sử dụng Axon với kiến trúc SAGA, xử lý phần validate trùng ở phần lệnh commands, kiểm tra trước khi thực hiện rồi thông báo đến những nơi khác
A minh hieu roi, because Wrapper is immutable
Hi bạn Trường hợp 2 wapper class, nếu mình sửa như thế này
public static void main(String[] args) { Integer obj1 = new Integer(69); Integer obj2 = new Integer(96); System.out.print("Values of obj1 & obj2 before wrapper modification: "); System.out.println("obj1 = " + obj1.intValue() + " ; obj2 = " + obj2.intValue()); modifyWrappers(obj1, obj2); System.out.print("Values of obj1 & obj2 after wrapper modification: "); System.out.println("obj1 = " + obj1.intValue() + " ; obj2 = " + obj2.intValue()); } private static void modifyWrappers(Integer x, Integer y) { x = 11; y = 1111; }
-> mình ko tạo tham chiếu mới, tại sao giá trị vẫn ko đổi (output van la 69, 96). Bạn giải thích giúp mình nhé. Thanks
mình muốn hỏi một chút về CQRS với, Nếu mình muốn validate trùng (ví dụ trùng mã) trong CQRS thì như thế nào? Hoặc các validate cần realtime chứ không Eventual consistency với các framework DDD và CQRS xử lý như thế nào.
Yên devy ơi mình dang bắt đầu học để thi Fe Bạn cho mình xin tài liệu ôn thi fe dc ko ah
@Mathley_Neutron cấu hình 12GB thì cũng là khá nhỏ. Bạn có thể cài theo cấu hình: 1 master: 3GB 1Worker :3GB 1 installation server: 2Gb (trên này sẽ cài đặt kubespray để bootstrap cluster) B có thể dùng github để thay thế gitlab cho tiết kiệm nếu chỉ dùng như SCM
cach nay cung hay day
Bác có niềm đam mê và sự tò mò với lập trình đáng kinh ngạc thật. Thật ngưỡng mộ bác.
from sklearn.utils.class_weight import compute_class_weight
model = InvoiceGCN(input_dim=train_data.x.shape[1], chebnet=True) device = torch.device("cuda" if torch.cuda.is_available() else "cpu") model = model.to(device) optimizer = torch.optim.AdamW( model.parameters(), lr=0.001, weight_decay=0.9 ) train_data = train_data.to(device) test_data = test_data.to(device)
indices = torch.where((train_data.y < 0) & (train_data.y < 5)) train_data.y[indices] =0
class weights for imbalanced data
_class_weights = compute_class_weight(class_weight="balanced", classes=np.unique(train_data.y.cpu().numpy()), y=train_data.y.cpu().numpy())
print(_class_weights)
no_epochs = 2000 for epoch in range(1, no_epochs + 1): model.train() optimizer.zero_grad()
Không sao đâu em ! phần quản lý thời gian em có thể rèn luyện được. Mỗi cái có một ít là chuẩn dân IT rồi, Kiên trì và cố lên em nhé ! Mới năm nhất cũng đừng lo lắng lắm, tập trung học những môn đại cương cho chắc để tạo nền tảng tốt nhất nhé e.
@haiyen4101 Cai này bạn có thể tra google mà.