chone
2021-05-02 03:11:38 +08:00
dart 属于那种看起来很美,但实际用了就知道问题很多的东西,真算不上优雅,最近有在大量的用 dart 就感觉很疼,比如:
官方推荐局部变量用 const,var 动态类型来处理,但碰到 list 的各种方法 .map .forEach 等,动态类型就很容碰到类型转换错误,很多时候还不如像 java 一样老老实实标类型。
再比如函数或者构造方法支持 named parameters 比如 run(id: "ABC", type: 1) 但也可以用 Map run({"id": "ABC", "type": }) 两种各有优点,但也各有明显的缺点,但两个都用??再碰到参数类型需要 override 的更是酸爽,远远不如 js es6 下来的清爽。
更别说 await,async,async*, yield, for await 这些糖了,你不用的时候觉得挺好的,一但用起来才发现很鸡肋,很多地方还不如直接用 Future Stream 的方法更舒服。
自己在写 dart 的时候总会自觉不自觉的想到 js 或者 clojure,dart 就是把各种东西堆在一起搞出来的,感觉就是 javascript 的 c++那种感觉,但你用 c++的时候至少没那么想念想,团队要用 dart 或者 flutter 劝大家最好能制定一个语言风格来把这也行那也行的问题做提前做一下抉择,不然编码和维护过程太痛苦了,有能力的大神甚至可以考虑写本书《 dart 语言精粹》出 xD