全栈工程师成长记

编程重新定义人生

“写”代码的收获

在Rails课前练习里有一个作业是老师要求手抄一份CRUD,抄第一遍的时候,笔记本纸张的最后一行已经被用完了,却还有最后一行代码没得写,是最开始的 class GroupCotroller 的 end。

于是按照这个“错误”在atom里面也真的把这一行代码删除了,再次刷新页面果然报错了

syntax error, unexpected end-of-input, expecting keyword_end

类似的定义不完整错误之前曾经碰到过,有一次在手打module的时候拼写错误,最后web页面提示end错误,可这一行代码就end三个字,该从何下手?后来重新对着教程看了代码,原来是开头的问题,这才知道有时候要去抓真正的源头,而不一定是当前的这行代码本身。

以上是收获,接下来是展开联想,当然也可以算是进步一的收获。

在计算机语言的世界里,前后一致以及语法正确都是很重要的,大多时候一个不完整的定义、一个感叹号、一个等号甚至一个空格都会导致一个或大或小的逻辑错误,虽然它有一定的容错性,但它更注重的是逻辑正确,这当然也是它本身的强项。而人类的语言呢,同一个意思,你可以换着很多说法来说,就算语法不正确,对方也能大概凭着“语言模式”来重新解构,所以从容错性的角度来看,人类语言似乎更胜一筹。

顺着这个思路,我们可以注意到有时候你代码的一些错误它会提示你是不是要表达某个意思,
比如你输入git stats,它会提示你

Did you mean this?
    status

如果它能顺着我的上一条命令git init或者历史的操作记录(代表着一种惯性、模式),直接帮我执行正确的命令git status,同时提示我刚才输入的指令是错误的,这样的结果应该能够让我更关注于开发本身,而不用拘泥于偶尔的拼写错误。这应该能成为程序语言下一个发展的突破点。

end