当前位置:网站首页>什么是无副作用的函数方法?如何取名? - Mario
什么是无副作用的函数方法?如何取名? - Mario
2020-11-06 01:19:00 【解道jdon】
函数名称应描述函数所做的所有事情。换句话说,功能不应隐藏副作用。这符合“最小惊喜原则”。但是,有时候这并不容易。下面函数名词名副其实吗?

众说纷纭:
它会返回一个Cusomter,但是如果没有可用的Customer,它将创建一个没有参数的Customer。我将遵循GetCustomerOrDefault()的C#命名风格。
如果创建客户是完全封装的,并且没有外部代码会知道新客户和现有客户之间的区别,那么我认为这个名称很好。另一方面,如果没有封装,也许应该是两个功能。
坏名称不仅会降低可读性,而且通常是更深层质量问题的征兆。例如,如果找不到某个函数的好名称,则该函数的设计可能不好。您如何命名此功能?它的名称含糊不清,因为该函数没有内聚性。
取名TryGetCustomerOrInstantiate?
如果您需要副作用,我可以将其重命名为getCustomerOrDefault()之类的名称,以便消除副作用。如果不这样做,则对空客户抛出异常。您甚至可以同时使用这两种方法,具体取决于您的API需要多么精细。
它做了两件事:允许访问私人客户字段;如果缺少客户,则创建客户我建议避免这种编码方式!
banq:违反单一职责,做了两件事情;包含可变状态,带有副作用,无法让调用者调用getCustomer方法时确定返回一个Customer,不符号函数式编程原则。
版权声明
本文为[解道jdon]所创,转载请带上原文链接,感谢
https://www.jdon.com/55231
边栏推荐
- The practice of the architecture of Internet public opinion system
- 【QT】 QThread部分原始碼淺析
- 用Keras LSTM构建编码器-解码器模型
- How to demote a domain controller in Windows Server 2012 and later
- Flink on paasta: yelp's new stream processing platform running on kubernetes
- nlp模型-bert从入门到精通(一)
- Asp.Net Core學習筆記:入門篇
- 快快使用ModelArts,零基础小白也能玩转AI!
- hadoop 命令总结
- 嘘!异步事件这样用真的好么?
猜你喜欢

Gradient understanding decline

Basic principle and application of iptables

车的换道检测

nlp模型-bert从入门到精通(二)

Technical director, to just graduated programmers a word - do a good job in small things, can achieve great things

GBDT与xgb区别,以及梯度下降法和牛顿法的数学推导

Didi elasticsearch cluster cross version upgrade and platform reconfiguration

GUI 引擎评价指标

Troubleshooting and summary of JVM Metaspace memory overflow

DRF JWT authentication module and self customization
随机推荐
給萌新HTML5 入門指南(二)
技術總監7年經驗,告訴大家,【拒絕】才是專業
如何将数据变成资产?吸引数据科学家
被老程式設計師壓榨怎麼辦?我不想辭職
TensorFlow2.0 问世,Pytorch还能否撼动老大哥地位?
tensorflow之tf.tile\tf.slice等函数的基本用法解读
How to get started with new HTML5 (2)
Swagger 3.0 天天刷屏,真的香嗎?
【快速因數分解】Pollard's Rho 演算法
從小公司進入大廠,我都做對了哪些事?
(1)ASP.NET Core3.1 Ocelot介紹
c++学习之路:从入门到精通
用Keras LSTM构建编码器-解码器模型
面经手册 · 第12篇《面试官,ThreadLocal 你要这么问,我就挂了!》
In depth understanding of the construction of Intelligent Recommendation System
一时技痒,撸了个动态线程池,源码放Github了
DRF JWT authentication module and self customization
Elasticsearch 第六篇:聚合統計查詢
快快使用ModelArts,零基礎小白也能玩轉AI!
微服務 - 如何解決鏈路追蹤問題