#每天一个知识点# 周末跟老婆和她几个同事一起吃饭聊天,发现他们做副业的脑洞完全打破了我对副业的认知,有一个同事专门养那种纯种的宠物猫,先买几个幼崽,养大之后自己给他们配种、生崽,然后卖幼崽,或者养大一点当宠物猫卖,如此循环,一个幼崽大众一点的就一两千,稀有品种得小一万,养大之后价格直接翻几倍。
还有一个同事养的是宠物龟,这玩意儿看着小,但简直是天价,6只宠物龟幼崽就得9万块钱,也是养大了之后生蛋,蛋可以直接卖,也可以孵出来当宠物龟卖,价格更是天价。
我想了一下,这个小众的副业也有很高的门槛,首先你得找到货源,其次你得懂怎么养殖,还有最重要的,怎么建立销售渠道,找到心仪的买家。
果然,人无法赚到自己认知以外的钱。
- 5 赞 · 45 评论
- #每天一个知识点#
Jetpack Compose 基于可组合函数构建,下面用最简示例印证和解读
```kotlin
@Composable
fun Greeting(name: String) {
Text(text = "Hello $name!")
}
@Preview(showBackground = true)
@Composable
fun GreetingPreview() {
Greeting("Compose")
}
```
它的核心是可组合函数,用`@Composable`注解标记普通Kotlin函数,和传统View的XML布局、View树模式不同。注解告诉编译器:该函数用来描述UI,可嵌套调用其他`@Composable`函数、参与重组。函数不返回View实例,只声明界面内容,属于声明式UI,描述状态对应的界面,而非命令式修改控件。
`Greeting`接收name参数,调用内置`Text`渲染文本。入参即UI状态,状态变化触发重组,函数重跑生成新UI描述。重组不是全量重绘,编译器记录调用点,只执行受状态影响分支,局部更新带来高性能。
`@Preview`给Android Studio预览使用,不会打入APK。`GreetingPreview`是预览入口,传固定参数调用Greeting,编辑器侧边直接预览,不用开模拟器;`showBackground=true`增加底色,方便看文本范围。
对比传统View:XML是静态布局,拿到控件后调用setText等命令API更新;Compose把UI写在Kotlin中,布局控件逻辑合一,省去布局解析、找控件的开销。可组合函数两点规则:只能在其他`@Composable`函数内调用;参数尽量不可变,状态单独抽取,不要在内部维护可变变量,防止重组异常。
这个小样浓缩了Compose核心:UI由可组合函数嵌套组合,入参驱动界面、状态驱动重组。Text、Button、Column等控件都是系统封装的可组合函数,业务页面就是自定义组件层层拼装,这就是Compose“组合”的含义。7 赞 · 1 评论 - #每天一个知识点# 我最近建了个小群,主要交流 Agent 全栈 这块。不是单纯说传统前后端没用了,而是感觉只靠写页面/接口越来越卷,后面更吃香的是能把业务拆成 Agent 工作流,串起工具调用、数据、接口和端到端交付。群里主要聊落地案例、思路和避坑,不搞焦虑。你要感兴趣我拉你进来,一起交流。1 赞 · 19 评论