Savage 的笔记

Stay hungry ,Stay foolish

2022-09-24 00:24

关于一个函数的长短

Savage

其它

(458)

(0)

收藏

关于一个函数的长短


我们班的web项目结束了,主要使用了javaScript编写代码。这段时间帮同学解决了很多问题,也对编程有了进一步的理解。


Javascript和我之前接触的语言很不一样,在写JavaScript代码时我想不出来计算机到底是如何帮我完成的那些功能,无法理解底层实现过程,就让我有有一种单纯在背函数的感觉,任意的数据类型,函数可以当参数,大量的匿名函数,这些灵活的特性也可能是JavaScript的优点。


后续了解到JavaScript是一种函数式编程语言,通过对各种短小精悍的函数的封装和灵活的调用方式,让代码更容易编写,注重整体逻辑简化其具体的实现过程。


现在来说说这次使用匿名函数的感想,老师在讲课时用匿名函数绑定了事件,导致班里的大多数同学都用匿名函数去写代码,所有事件都去绑定匿名函数。同时,很多功能都写在一个函数中,当总代码量只有两三百行可能还可以写下去,随着我们制作的游戏功能越来越复杂,需要实现的功能就越来越多,每次要加东西时,发现匿名函数不能调用,只能再写一个几乎差不多的函数,我们班有个同学写了四个函数对应四个方向,每个函数只有两个变量不一样,这种类似情况还有很多很多。


还有同学的一个事件绑定的匿名函数中有几十行代码,中间有各种循环遍历,if条件判断还有定时任务和超时任务,每次加东西都需要把无关的实现过程从头看一遍,费时又费力,关键还不一定能加进去,越走越累,尤其是用了定时任务的程序,非常难区分各个线程之间的关系。


前段时间看了Clean Code 这本书的前半部分,说的是如何去给变量、函数、类、定义名称,还有如何编写函数,这次写程序是我尽力按照书中的要求去写:短小的函数、有意义的命名,简洁的参数。但还是会因为调用方式不合理出现超级长的函数,和一些命名区分度太低以至于混淆的情况,但是整体写起来还是比较轻松的。


因为没有学习JavaScript关于类和对象的知识,这让我的代码中有非常多的函数,总共1000行代码写了接近50个函数,也有很多全局变量,看起来也是比较头疼的。


通过这次的web小游戏,我初步体验到了写出复用率高的函数可以减轻后期维护的成本,看见函数名可以知道它的具体功能也会让我们编写代码更方便,期待下次的项目能够写出更好的代码。


0条评论

点击登录参与评论