vue 未来会放弃 typescript 吗?

3个月前 (01-15) 0 点赞 0 收藏 0 评论 4 已阅读

推崇ts的人,我总觉得可笑。

类型是个枷锁。8年前我从c#转到js,瞬间有种挣脱枷锁的自由感。去tm的泛型,去tm的多态。

用js写代码就有一种躺在席梦思羽绒被的床上裸睡一样舒适。

换成ts,那不就如同穿着棉袄棉裤带着镣铐在床上睡觉吗?

# 补充一下

Ts需要首先编译成js,才能正常在浏览器和node环境里跑。

这算啥?

你本来可以极为精细的去控制你的代码里的每一个字母。到你现在却要借用优雅的名义去写更多的代码,去生成一堆你可能已经不知道执行时变成什么了的代码。

有没有一种脱裤子放屁的感觉?

用ts就像你渴了去喝咖啡,好像很优雅,但解渴的还不是咖啡里的水吗?咖啡还很贵。

你直接喝水去解渴不好吗?什么?喝水档次太低太低俗?哥你要知道你在沙漠里。

什么?你觉得js语法糖太少?es6,7,8,9,10,11,12。。。不是不断地在增加矿物质吗?抛弃了弱类型,那还是js吗?那你直接去用http://asp.net,jsp去写网站不好吗?

# 闲聊2

面向对象的编程好不好?

好,但有缺点。

尤其是当你并不是把编程当做一个艺术去搞创作的时候。

你想要的代码符合什么特征最合你的心意呢?

下面说一下我的代码美学。

在c#时期,我认为代码需要符合面向对象的特点,所有的类型要像一家人一样,串起来。符合开闭原则,那么怎么扩展呢?用类型扩展。新增一个扩展就好像我们自己设计一个大家庭添丁一样。所有的类型,就像一家人,和和美美的在一起。

用过几年js之后,我发现。我口味变了。

大多数情况下,写代码的目的是完成任务,不是让你当一个艺术家去创作一个让你孤芳自赏的艺术品。

你觉得你的代码写的挺美的,怎么看怎么觉得合理,有时候每过一段时间要拿出来自我欣赏一下,赞美一下自己的才华。可是再过一段时间,经过不断的扩展,修改以后,你再去看它,也不过是一坨。

你有多少次想要去重构它,可是好麻烦呀。本来你想要所有的类型和睦相处。可是它们经常发生乱伦的行为。这个代码好乱。好想重写。可是好浪费时间。算了。就这么着吧。

因为这需求在不断的变化,这个变化可能已经完全颠覆了你最初的设计。

那回到最初的问题上,我们写代码时间都浪费到哪里了?

1,你定义了太多的类型,每定义一个类型,就创造了一个概念。那别人要搞懂你的程序,复杂性就多了很多。尽管这些类型行为都很有条理性。但它存在的本身,就是需要熟悉成本的。你愿意花时间去熟悉类型本身,还是愿意花时间在行为本身呢?

2,文件个数。每个类型都是家里的一员。它们都想单独占一个文件。一个大一点的项目,各种文件夹,各种文件,你晕不晕。是,每个文件简单了,行为单一了。可是,文件是不是多了?看一段逻辑本来很简单的代码,却要在不同文件之中来回切换,累不累?

3,命名。每一个类型,都要属于自己的名字。今天你创建了类型小花,你要伺候小花的吃喝拉撒。起名字是不是得查字典?百度翻译?你英文再好,你就能不在这个上面浪费时间?你花了很多的时间,却为自己增加了更多的概念和复杂度。

因此,在处理简单的问题这方面,面向过程,反而有了更多的优势。你可以用最少的类型,概念,变量来搞定一个原本并不复杂的事情。

所以我现在的美学是什么?

1,你把解决这个问题时需要创建的类型,简化了,减少了

2,你创建了一个个黑盒子,它的接口简单易懂,第一次看见它的人就知道怎么调用。

3,你用最少的代码行数实现了黑盒子的内部逻辑。别人写需要100行,而你只用了十几行。

4,你减少了逻辑中的代码块深度,就是大括号的纵深。原本需要嵌套五个if的大括号。你只用了一层的深度

5,你用了很少的变量来完成同一件事,每一个变量都是一个概念,没一个概念都有熟悉成本。每一个变量都需要名字。起名字就好麻烦。这时候善用匿名函数,解构,等等,技巧,你就减少了逻辑中的变量。减少了变量,就降低了黑盒子的复杂度。

6,黑盒子之间,遵循了相同的接口行为规范。那就以为着,你不用每次去调一个函数,都得猜应该传什么。

总之,复杂的东西,简化了,简单了。那就美了

大的项目是不是一定要用复杂的对象架构设计呢?你喜欢你就用呗。反正我不喜欢。我讨厌起名字。

你的代码是要服务于别人还是自己呢?首先当然是自己。你工作效率提高了,你出东西快了。你是不是更容易交付,你节约的时间是不是可以让你做更多的事情。如果你是架构师,那别人就得按你的逻辑来工作。如果你是码农,你更容易解决同质化的工作。

那么,在满足首先服务于自己的基础上,保证你的接口规范化,行为统一化并足够合理,一般逐渐你的编程方式就会具有驯化的作用。并不存在合作沟通的问题。

说白了你能制定规则,你就在架构层面黑盒子外部去推广自己的美学。你得遵守别人的规则,你就在黑盒子内部去贯彻自己的美学。

vue 未来会放弃 typescript 吗?

本文收录在
0评论

登录

忘记密码 ?

切换登录

注册