跟读练习: Why 95% of Android Developers Get Use Cases Wrong - 通过视频学习英语口语
正在创建课程...
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.
📺 同频道
✨ 推荐视频
真实场景:开发者如何误解用例?
这段视频探讨了安卓开发者常见的用例设计误区,通过生动的例子解释了软件工程中“用例”的真正含义。就像我们学习英语时容易混淆相似表达,开发者也常把“用户感知的操作”和“背后的技术细节”混为一谈。这种贴近实际工作的场景,非常适合我们通过看YouTube学英语来提升听力和理解能力。
实用表达与搭配
- business logic:业务逻辑(指软件中处理具体业务的规则和流程)
- side effect:副作用(文中指用户操作引发的间接结果)
- remote API:远程接口(用于与服务器通信的技术术语)
- handle errors:处理错误(软件开发中的常见任务)
- forward to:转发给(指将信息或请求传递给其他组件)
这些表达不仅在技术场景中常用,也是英语口语练习的优质素材。记住它们的搭配和用法,能让我们在描述流程或问题时更准确。
你的影子跟读挑战
现在就来试试shadowing site的训练方法吧!选择视频中“注册用例”的讲解部分(约1分钟),反复播放并跟读。注意模仿说话人的语调、重音和节奏,尤其是“validate the email”“make the call to our remote API”等短语的发音。完成后,用自己的话总结“好的用例”的特点,这既能锻炼提高英语发音,也能提升逻辑表达能力,对雅思口语练习也很有帮助哦!
通过这样的练习,你会发现看YouTube不仅能学技术,还能轻松提升英语水平,一举两得!
什么是跟读法?
跟读法 (Shadowing) 是一种有科学依据的语言学习技巧,最初开发用于专业口译员的培训,并由多语言者Alexander Arguelles博士普及。这个方法简单而强大:您在听英语母语原声的同时立即大声重复——就像是一个延迟1-2秒紧跟说话者的影子。与被动听力或语法练习不同,跟读法强迫您的大脑和口腔肌肉同时处理并模仿真实的讲话模式。研究表明它能显着提高发音准确性,语调,节奏,连读,听力理解和口语流利度——使其成为雅思口语备考和真实英语交流最有效的方法之一。













