关于代码语义的一些疑问
一般而言我希望代码尽可能贴近人类正常的语义,最近碰到两个疑问
- 类和对象的取舍
比如做一个游戏吧,那肯定有很多小兵,就需要写一个小兵类;可能还需要些一个精英怪类;但是最终BOSS只有一个,按照编码的惯性(和强迫症),就很想也写一个BOSS类,但实际上这并没有必要。有人说你把它写成单例不就好了,但我还是认为很怪。 方法的使用和内部逻辑矛盾
function process(data) { /*...*/ } const obj = { data: { /*...*/ } get: name => process(obj.data[name]), get_raw: data => process(data) }
注意到
get
和get_raw
都返回一个处理过的数据。但是这个process
函数它并不存在,我也不想让它存在。它只是我为了描述一个处理过程。也就是说现在get
和get_raw
后面都拖了一串链式调用。比如function process(data) { /*...*/ } const obj = { data: { /*...*/ } get: name => obj.data[name].f().g(), get_raw: data => data.f().g() }
这个时候很自然地,我就会在
get
那里复用get_raw
的代码。function process(data) { /*...*/ } const obj = { data: { /*...*/ } get: name => obj.get_raw(obj.data[name]), get_raw: data => process(data).f().g() }
这样在我看来就很怪了。明明
get_raw
是后加入的,名字还比get
长,也暗示着它是一个不常用的方法;然而常用的get
方法却依赖于它运行。- 取名
写了
getXxx
之后发现没有setXxx
和他凑成一对,该用什么单词替换呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
要不试试函数式吧
不希望process存在 可能是你函数名没取好(process这个名字完全没意义啊) 试试换个更通用且能体现其用途的名字 看起来你的get和get_row都是从某个地方提取数据的样子 process换成体现他根据某种方式提取数据的名字试试