为什么说动态语言开发快呢?感觉为了保障代码的可用性需要在相当多的地方判断参数的数据类型,写了好多代码。。。
Float()
Integer()
Array()
respond_to?
is_a?
Hash
fetch
&.
order.paid_at&.strftime("%Y-%m-%d %H:%M:%S")
以上内容均来自《优雅的 Ruby》,推荐楼主去看一下,京东有售,上去看了下刚好有活动,现到手价只要¥36.6
使用动态语言的正确姿势是:自己记住每个函数每个方法的参数类型和返回类型,记住项目的每一行代码,对整个项目了如指掌。调用每个函数每个方法时,都在自己的脑子里跑一遍,在自己的脑子里填上几次不同的参数把这个方法测试一下。
这种情况适合: 1、自己一个人写项目,一砖一瓦一草一木,都是自己亲手打造起来的。 2、使用无自动完成功能的编辑器,需要自己记住方法的名字,乃至每一个参数 3、写长期维护的项目,比如 rails 框架这种,作者写了十几年了,整个项目的代码成了作者生命的一部分。
所以,在编程行业还没有现在这么浮躁的早期,动态语言编写出了很多优秀又经典的程序。艺术家手里那把灵活的刻刀永远比车床更有创造力。前提是艺术家靠谱 + 有足够的打磨时间。
但是现在,特别是国内,IT 行业已经变成了拼成本拼人力的劳动密集型血汗行业,公司希望一个人一个月之内就出一个中型项目,一个项目做完立马就上另一个项目,程序员根本没有一刻喘息的时间。在这种情况下再把整个项目往自己脑子里装非爆栈不可,很多良心程序员就是这样被累垮的,明明老板拿他当牲口用,他还抱着做艺术品的心态打磨每一个细节。在重压之下结果最后把自己搞内伤了。
就现在浮躁的这个环境,IDE + 强类型语言 是最优解,强类型可以保证类型 100% 的正确,程序员不用再动这个脑子了,IDE 帮程序员记住了类名、方法名、属性名、参数类型、返回值类型这些东西,程序员只需要做填空题即可,这种状态最适合当下浮躁内卷的大环境。其实国外也好不到哪里去,不然现在 PHP、PYTHON、RUBY 这些语言不会向强类型靠拢。这些语言向强类型靠拢,也有 jetbrains 的一大功劳,这个 IDE 打的动态类型语言毫无还手之力。
很少写类型判断,都是从数据库,从 json 格式上都解决类型问题,或者本来写的就是多类型通用的。
几乎不会。