Luyện nói tiếng Anh bằng Shadowing qua video: Why 95% of Android Developers Get Use Cases Wrong

Đang tạo bài học...
1
Hey guys and welcome back to a new video.
2
95% of Android developers use use cases wrong.
3
It's a catchy title, but I really mean that number.
4
I will tell you why.
5
Because use cases on Android and in software development in general are so often misunderstood.
6
I also myself misunderstood them when initially getting into these.
7
I'm pretty sure you can still find some super old videos on my channel where I'm also making the mistake
8
that I talk about in this video.
9
If your use case looks like this to get some user information, then you are doing it wrong.
10
Why is that?
11
In order to understand what use cases should contain and what kinds of use cases you should create, if you decide to stick to use cases,
12
we need to understand what a use case is originally meant to be in the context of software engineering.
13
And if we actually just Google for that, use cases software development, and we just click on a random picture here, then we have, for example, a library information system.
14
And then we have some use cases.
15
This is what we call a use case diagram.
16
Maybe you remember that from university or so.
17
to browse books, checkout books, return books, update the catalog, clicking here, view items, make purchase, checkout, client register.
18
If we carefully think about these use cases here, how they are named, view items, browse books, checkout books, what do all these have in common?
19
They all have in common that the user is actively aware about these things happening
20
because it is a real use case of your app.
21
And if you have a use case, then you can use it as a user.
22
Now, when we talk about email validation, is that a use case?
23
Is this something where a user would go to your app and now say, ah, now I'm going to validate my email, or now I'm going to clear my session.
24
Or hey, now I will retrieve a user by its ID.
25
No, they actually have no idea that these things happen.
26
These are rather just side effects of a real use case.
27
The user definitely knows that they are currently registering an account.
28
And email validation is just a side effect, something that happens as part of registering an account, but it's not something that the user actively has in their mind when they go through registration.
29
So if we take a look at some real use cases, the way it's really intended here on the correct, then we, for example, have this register use case.
30
And you can see suddenly it starts to contain real logic.
31
It's not just a single line of code that calls a repository or some kind of validation class, but it's a real use case that combines multiple pieces of business logic into a use case,
32
into something the user can do with your app that they are aware about.
33
So this would be a good example for a use case because the user knows that they are registering an account.
34
Of course, what's part of the use case is actually validating the email.
35
It's validating the password.
36
It is actually making the call to our remote API, for example.
37
It is then handling the errors and actually forwarding these to whatever class calls this use case.
38
That is a good example of a use case.
39
Well, let's take a look at this logout use case a user certainly knows that they are logging out.
40
But what internally happens as part of logging out, like actually making the network call, clearing the session, clearing their shopping cart, that's something they don't know and they don't have to know.
41
So the use case actually just bundles these function calls and makes sure that they are executed in the right order.
42
So we have a reusable kind of package for logging out and we just need to invoke the logout use case.
43
So other parts of our app also don't need to know what internally happens when we log out.
44
And all these other classes that act as utility for our use cases, like validating an email, this is of course still business logic.
45
This still lives in your domain layer, but it's not a use case.
46
So you really just make this a plain class, call it whatever it's responsible for, email validator, password validator, and then suddenly use cases make a lot more sense.
47
As you know, I'm usually not for using use cases a lot
48
because you will still often have these pretty much empty use cases, even when doing it the correct way.
49
So for example, if you say you want to fetch your nodes, so you actually want to see the nodes as a list, and then there's usually just a call to a REST API.
50
So you just forward this to your repository.
51
There's no error handling or so.
52
Maybe the repository already handles that, but no real business logic error handling in the use case itself.
53
But there are certainly use cases that make a lot of sense.
54
Like here, bundling these different calls here into a logout use case makes a lot of sense
55
because you will never again have to memorize what logging out really does in your app.
56
Instead, you just call this use case.
57
You never have to memorize what registration actually means and does in your app, unless you're, of course, responsible for working on that part.
58
But you can really just invoke the use case
59
and you know the use case involves the business logic to take care of that.
60
And if you stick to use cases in your app and you actually stick to them like this the right way, then I don't have a big problem with that.
61
Still, I personally lean more towards not using them at all
62
and just also bundling such business logic either in the view model or the repository, at least for small to medium-sized projects.
63
But for larger projects, this can make a lot of sense and I would also really consider having use cases there.
64
Now, if you feel like, okay, there is still a lot to learn about Android architecture, about Kotlin multi-platform architecture, then I can help you with exactly that
65
because we have our senior app developer mentoring where you get to build a real production project over multiple months
66
and have all your code reviewed by your personal mentors, including me.
67
This way we can spot issues in your app's architecture.
68
You actually have no idea about that these even exist.
69
If you're making mistakes you don't know of, then you obviously can learn from these mistakes.
70
So this is really a fast lane program here for you to grow to a senior developer level.
71
Link is below.
72
You can apply to this program.
73
We can have a chat if this could be a fit.
74
You can't just buy it on that website like a course, but we really first of all have to talk if we can help, how we can help, how it makes sense for you in order to also craft an individual learning plan for you.
75
So take a look at that.
76
Thanks for watching and I will see you back in the next video.
77
Have an amazing rest of your week.
78
Bye bye.

Tình Huống Thực Tế

Trong video này, diễn giả đã chia sẻ về việc 95% lập trình viên Android hiểu sai về các use case trong phát triển phần mềm. Điều này không chỉ liên quan đến lập trình viên mà còn ảnh hưởng đến cách mà người dùng tương tác với ứng dụng. Khi một người dùng muốn đăng ký tài khoản, họ rõ ràng biết rằng họ đang thực hiện một hành động cụ thể chứ không phải chỉ là những bước bên lề như xác thực email hay xóa phiên làm việc. Việc hiểu rõ tình huống này sẽ giúp bạn cải thiện khả năng giao tiếp và hiểu biết về ngữ cảnh, điều này rất quan trọng trong việc học tiếng Anh.

Các Cụm Từ Hữu Ích & Cách Ghép Từ

  • register an account: đăng ký tài khoản
  • validate email: xác thực email
  • logging out: đăng xuất
  • business logic: logic kinh doanh
  • network call: cuộc gọi mạng

Thử Thách Shadowing Của Bạn

Hãy thử thách bản thân với một bài tập shadowing tiếng Anh ngay bây giờ! Chọn một đoạn ngắn từ video mà bạn cảm thấy thú vị. Nghe và lặp lại từng câu một cách chăm chú. Chú ý đến intonation (ngữ điệu) và pronunciation (phát âm) của diễn giả. Điều này không chỉ giúp bạn cải thiện kỹ năng nói mà còn gia tăng khả năng hiểu biết ngữ cảnh trong giao tiếp. Đừng ngần ngại thử nghiệm với phần mềm shadowing để theo dõi sự tiến bộ của bạn. Hãy tận dụng shadow speech để nâng cao kỹ năng giao tiếp tiếng Anh của bạn mỗi ngày!

Phương Pháp Shadowing Là Gì?

Shadowing là kỹ thuật học ngôn ngữ có cơ sở khoa học, ban đầu được phát triển cho chương trình đào tạo phiên dịch viên chuyên nghiệp và được phổ biến rộng rãi bởi nhà đa ngôn ngữ học Dr. Alexander Arguelles. Nguyên lý cốt lõi đơn giản nhưng cực kỳ hiệu quả: bạn nghe tiếng Anh của người bản xứ và lặp lại to ngay lập tức — như một "cái bóng" (shadow) đuổi theo người nói với độ trễ chỉ 1–2 giây. Khác với luyện ngữ pháp hay học từ vựng bị động, Shadowing buộc não bộ và cơ miệng phải đồng thời xử lý và tái tạo ngôn ngữ thực tế. Các nghiên cứu khoa học xác nhận phương pháp này cải thiện đáng kể phát âm, ngữ điệu, nhịp điệu, nối âm, kỹ năng nghe và độ lưu loát khi nói — đặc biệt hiệu quả cho người luyện IELTS Speaking và muốn giao tiếp tiếng Anh tự nhiên như người bản ngữ.

Phương pháp shadowing: đọc hướng dẫn từng bước đầy đủ →