Em có nhiệm vụ tạo 1 tool code bằng java và dùng selenium - nhiệm vụ là tạo tool đó lắp trong API được gửi đi với 3 tham số ( nội dung văn bản , giọng nam / nữ , tên file ) và truyền vào trang web https://ttsfree.com/ để biên dịch thành file mp3 và tải về lưu về máy tính và phải tương thích với 3 tham số trên
đây là dự án của em
hàm chính tên là public ResponseEntity<?> LastAPI
code nhìn chung chạy ổn và ko vấn đề gì
nhưng người hướng dẫn em yêu cầu em chạy các yêu cầu " thực tế hơn sao cho giống user ,
nó sẽ ntn , sử dụng ntn , nếu mà sử dụng ntn , thì của e nó có chạy được hay không , chạy trường hợp này thì code của e có bị sao không " , đó là những gì người hướng dẫn em yêu cầu nhưng em ko rõ cần phải làm gì tiếp vì em đã sử dụng Jmeter chạy 2 case sau :
case 1 : chạy 1 luồng request gửi đi ( lặp lại vài chục lần )
case 2 : chạy > 2 luồng request gửi cùng 1 lúc vào API đó ( lặp lại như trên )
nhưng vẫn ko được duyệt ok , em nên làm gì và phải làm như thế nào ạ mọi người , mọi người chỉ em với ạ
Ngoài ra em cũng có lắp API này vào telegrambot với nhiệm vụ hỏi user về 3 tham số kia , và sau khi hỏi xong thì sẽ tự động truy cập API và tải về -> nhưng vẫn ko dc duyệt oke
Tớ hoàn toàn không hiểu cậu đang nói gì. Cậu có thể giải thích rõ hơn được không?
Tớ hiểu yêu cầu đầu tiên là thế này rồi:
Sao Jmeter lại liên quan tới vụ này à cậu?
Và “duyệt ok” là gì à cậu? Ý cậu là anh chàng hướng dẫn cậu duyệt phương án làm đó á? Mà phương án của cậu là gì? Để giải quyết vấn đề gì?
Tớ vẫn không hiểu cậu đang muốn giải quyết vấn đề gì, mà phải “lắp” API này vào telegram bot (ý cậu là tích hợp phải không?).
người hướng dẫn tớ yêu tớ với các yêu cầu như trong tin nhắn tớ trích trong dấu ngoặc kép
" thực tế hơn sao cho giống user "
" nó sẽ ntn "
"sử dụng ntn "
“nếu mà sử dụng ntn”
“thì của e nó có chạy được hay không”
"chạy trường hợp này thì code của e có bị sao không "
tớ sử dụng jmeter để test các kiểu gọi API đó , vì jmeter có cho gọi api kiểu 1 lúc 4 5 request cùng truy cập api , và oke ở đây là đạt đó , nhưng mỗi lần tớ gửi thì anh ấy bảo phải nghĩ kĩ lại và tư duy lại nên tớ kbt như thế nào
đúng rồi , tích hợp tool này telegrambot , thay vì nhét các thông số vào jmeter , thì bot ở telegram sẽ hỏi người dùng để lấy thông tin , khi đủ thông tin rồi thì crawl thôi ấy , nhưng cách này bị bãi bỏ rồi
Cái này đơn giản có vẻ như người hướng dẫn muốn bạn xác định lại AI sẽ là người sử dụng code của bạn:
Chỉ một mình bạn?
Một developer khác, có thể clone và sửa code của bạn như ý họ để chạy cho project?
Một developer khác chỉ biết clone và gọi code của bạn như là 1 library/framework/api?
Một bạn không biết gì về tin học, chỉ biết tải app về rồi chạy?
Một bạn không phải IT, làm review phim/truyện trên youtube, muốn tích hợp code của bạn để tự động đọc text sẵn rồi gắn vào video?
…
Sau khi xác định được “user” bên trên, bạn sẽ phải tưởng tượng cách user sẽ sử dụng code của bạn như nào? code/project của bạn support được chưa? có vấn đề gì hay không, cần sửa đổi gì không…
Cậu ơi, cậu chỉ copy mấy câu chat cụt lủn không có context, thì làm sao cậu kỳ vọng bọn tớ hiểu đây? @@
Cậu nên trình bày rõ yêu cầu của anh chàng đó, như cách cậu trình bày dưới đây, chứ không phải copy mấy câu chat vô nghĩa và để mọi người tự hiểu:
Tớ đoán cậu cũng chẳng hiểu ông kia nói gì. Tớ theo dõi cả cuộc trò chuyện ở topic trước của cậu, và chỉ thấy cậu panic trong việc diễn dịch những câu vô nghĩa của anh chàng đó, và cố gắng spam tất cả giải pháp mà cậu nghĩ nó liên quan. Dưới đây là ví dụ mới nhất:
Cậu có thể thấy nó chẳng liên quan gì tới yêu cầu ban đầu, cậu cũng chẳng chứng minh được gì khi chỉ dùng jmeter để tạo ra vài thread cùng truy cập API (nó chắc chắn sẽ thảnh công, 4 - 5 request một lúc là quá ít).
Vậy nên, vấn đề hiện tại nằm ở việc giao tiếp giữa cậu và ông bạn kia (khả năng cao nằm ở khả năng diễn đạt kém cỏi của anh chàng kia, không phải ở cậu. Tớ thấy cậu có khả năng diễn đạt tương đối ổn với một fresher, dù cậu vẫn chưa được tới mức cần có để làm việc chuyên nghiệp đâu).
Tớ sẽ dạy cậu vài điều, mà tớ tin là nó không chỉ giúp cậu trong TH này, mà còn trong sự nghiệp của cậu.
Cậu phải hiểu requirement trước, rồi mới nói tới giải pháp.
Cách cậu trình bày requirement đầu tiên cho thấy cậu đã hiểu nó, nhưng ở đoạn sau, tớ chỉ thấy cậu rất confuse với yêu cầu.
Thế nên, cậu cần làm việc rõ với ông ấy, hỏi cho rõ ông ấy muốn gì, kỳ vọng gì ở cậu, trước khi bàn tới bất cứ thứ gì khác.
Trong môi trường chuyên nghiệp, nếu cậu gặp ai đó nói mập mờ, mơ hồ, hay yêu cầu cậu “tự suy nghĩ thêm”, khả năng cao người đó đang giấu diếm/nói dối một thứ gì đó (thường là năng lực cá nhân của họ).
Cậu cũng nên có kỳ vọng trong môi trường chuyên nghiệp, mọi thứ cần rõ ràng, minh bạch, và dễ hiểu, và không có bất cứ phỏng đoán nào liên quan tới requirement.
Khi cậu giao tiếp với một đồng nghiệp như cậu đang gặp (một người rất kém trong việc diễn đạt ý kiến cá nhân), cậu cần kiên nhẫn.
Với thứ gì ông kia nói mà cậu không hiểu rõ, cậu có thể đưa ra phỏng đoán, và hỏi xem có phải ý ông ấy là thế hay không. Lặp đi lặp lại cho tới khi cậu hiểu hết mọi thứ mà ông ấy nói, và thống nhất được requirement.
Nếu ông ấy tỏ ra không hợp tác, set một buổi meeting với ông ấy và sếp của bọn cậu (hoặc trao đổi ở nơi có ông sếp kia, CC ông ấy ở mọi comment, nếu cậu chỉ dùng chat), rồi lặp lại thao tác trên một cách chuyên nghiệp nhất có thể (tức là không đưa cảm xúc cá nhân vào). Cậu hoàn toàn có thể raise vấn đề với sếp của cậu sau buổi họp, tùy thuộc vào độ trơn tru của buổi họp đó.
Thử cân nhắc nhé cậu! Cho tớ biết chính xác kỳ vọng của ông ấy là gì nhé!
Tớ cũng có đọc code của cậu, và thấy rất nhiều vấn đề liên quan tới coding practice ở đây. Tớ sẽ list ra một vài vấn đề để cậu sửa nhé!
Code của cậu được design chỉ để chạy trên máy cậu, với chat ID đã được tạo trước, username password được hard code, file ảnh được lưu ở đường dẫn cũng được hard code, chrome driver path hard code,…
Nếu tool của cậu chỉ chạy trên máy cậu thì không sao, nhưng nếu cậu muốn deploy lên một server nào đó, cậu không thể làm được với cách hard code này. Cậu cần làm tất cả những thứ kể trên configurable, để khi deploy ra nơi khác (chẳng hạn, clone ra máy tớ để tớ check), code vẫn có thể chạy mà không phải edit source code + rebuild project.
Không bao giờ được phép lưu raw password + authenticate token như cậu đang làm!
Cậu còn giữ kiểu code này, sớm muộn cậu cũng sẽ nhận hậu quả.
Cậu có 1 method dài gần 300 dòng. Cậu nên refactor lại nó.
Cậu có thể thử sử dụng chí ít là kiến trúc MVC để cài đặt code, hơn là tất cả trong 1 method.
Cậu không nên swallow hết exception như cậu đang làm. Chí ít cậu phải in ra stacktrace để troubleshoot sau này.
Cậu nên rename lại tên API của cậu cho rõ nghĩa, trừ khi cậu muốn nói đây là API cuối cùng cậu viết.
Trên đây là những lỗi tương đối cơ bản, nhưng thường gặp ở những bạn fresher. Cậu cần hiểu đây chưa phải project hoàn chỉnh đâu (tớ ước lượng cậu mới chỉ hoàn thành đâu đó dưới 40% công việc để code này có thể được deploy ở bất cứ đâu). Thế nên, đừng hiểu nhầm thế này nhé!
nếu thật sự người hướng dẫn mô tả hời hợt y như bạn nói vậy thì làm sao đảm bảo bạn làm cho đúng ý được?
bạn từng học qua môn phân tích thiết kế hệ thống rồi thì sẽ biết có khâu lấy yêu cầu , hiểu yêu cầu, phân tích yêu cầu, thậm chí xác nhận lại với khách hàng là mình đã hiểu đúng ý họ chưa, rồi mới bắt đầu lên phương án xây dựng hệ thống,
mình nhớ hồi xưa học đh có nguyên 1 buổi ông thầy nói về 1 cái pattern để solve problem nữa,đại loại là ko nên giải quyết vấn đề liền mà phải hiểu và phân tích nó trước , phân tích sâu đến mức nào thì tùy thuộc vào kiến thức của người phân tích , có lẽ ng hướng dẫn bạn mong muốn bạn cho họ thấy bạn phân tích như thế nào hơn là viết code cái roẹt rồi fix
cái này nhiều khi người kia ở trình cao,nên đối với họ cái đó là hiển nhiên phải biết đó bạn, nói chung mấy cái này ở cty chuyên nghiệp ít xảy ra, chứ ở cty dạng vừa và nhỏ dễ gặp lắm, kiểu ông mentor thì mặc định ông fresher phải biết kiến thức đó, còn ông fresher thì ngẩn tò te rồi tự suy diễn
IMO cái này có lẽ mentor của bạn đang nói đến là trong thực tế thì k thể có user nào tương tác với website nhanh như vậy cả, nó không giống hành vi của “người”. Các website lớn thì đều có hệ thống nhận dạng bot -> tool của bạn cần phải cố gắng bắt trước “người” (delay, move chuột, scroll,etc) để bypass hệ thống này.
1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?