Konform Kotlin跨平台验证库
Kotlin 的跨平台验证,konform搞得挺不错。利用 Kotlin 的类型安全和扩展函数,验证规则写起来既直观又干净。像你在多平台项目里经常会碰到字段校验的问题,比如表单、用户数据、接口响应啥的,用 konform 就能一套写法走天下,Android、iOS、JVM 都能用。
声明式写法是它的一大特色,跟你平时写 Kotlin DSL 一样顺手。比如你有个User数据类,想验证name不能为空、email是合法地址,写起来就跟下面这样:
data class User(val name: String, val email: String)
fun User.validate() = validate {
  name nonEmpty()
  email()
}
是不是挺直观?而且这个验证不是运行时才报错,而是编译时就能发现问题,效率高,坑也少。写验证规则也不复杂,内置支持像nonEmpty()、length()、range()这些通用校验,实在不够用,你还可以自定义规则。
再说个实用点的事,如果你项目是前后端同写,或者移动端+服务端一起上,那就能感受到 konform 的香了。验证逻辑复用起来省事,不用每个平台都重复造轮子。
结果也挺清晰,验证完会返回一个ValidationResult,你能方便地拿到失败信息,做错误提示也不麻烦。反正如果你在写 Kotlin 多平台项目,或者想让验证逻辑写得更优雅点,不妨试试 konform。
如果你还在找多平台的 Kotlin 模板,这里有个蛮适合的;想深入元编程,也可以看看Ruby 的元编程解析,思路上有点借鉴价值。
                            
                            konform-master.zip
                            预估大小:25个文件
                        
                        
                        
                                
                                konform-master
                                文件夹
                            
                                                        
                                
                                .gitignore
                                321B
                            
                                                        
                                
                                settings.gradle
                                70B
                            
                                                        
                                
                                build.gradle
                                4KB
                            
                                                        
                                
                                src
                                文件夹
                            
                                                        
                                
                                commonTest
                                文件夹
                            
                                                        
                                
                                kotlin
                                文件夹
                            
                                                        
                                
                                io
                                文件夹
                            
                                                        
                                
                                konform
                                文件夹
                            
                                                        
                                
                                validation
                                文件夹
                            
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
                            
                            
                                                        
                                        
                                    文件大小:71.79KB
                                
                                
                                
                            
评论区