为什么不用分号作终止符?
在开发不同的工程时,可以创建并激活不同的虚拟环境。这样,不同的工程就会用到不同环境下的解析器,我们也可以把依赖包安装到不同虚拟环境的site-packages路径下。 因此,在Python中依赖管理一般指代依赖管理+虚拟环境。 以往,针对Python依赖管理和虚拟环境经常会用到2个工具:pip和virtualenv。 其中pip用于依赖包的管理,virtualenv用于虚拟环境的管理。 这样虽然解决了不同工程之间环境隔离的问题,但是也存在着明显的不足:
但是,Python则不同,在Python中无法通过工程对依赖包进行隔离。 当我们之间使用pip安装第三方包时,所有的依赖都会安装到安装目录下的site-packages。 试想一下,如果我们开发A工程,用到了TensorFlowv0.1。但是,开发B工程,需要用到TensorFlowv0.2。这时候,site-packages下的依赖包就会产生冲突,后面安装的依赖包就会把前面已经安装的版本卸载掉然后再安装新版本依赖包。 显然,这样是非常不友好的。
为了解决这个问题,虚拟环境就起到了至关重要的作用。 虽然不同编程语言的依赖管理工具不尽相同,但是它们追求的目标都是大同小异的。能够对项目以来进行更加轻松统一的管理,能够更加便捷的进行项目迁移和部署。 因此,就出现了maven、npm、pip这些依赖包管理工具,但是,对比于Java和JS,Python在依赖管理方面更加特殊。所以,先后出现了多款不同的管理工具,每一次升级都是为了更好的做好Python的依赖包管理工具。
Python在依赖包管理方面主要的特殊性就来自于,不仅需要考虑项目以来的第三方包,还要着重考虑虚拟环境。这一点,是由于Python和Java、JS这些编程语言本质上存在差异导致的。 getter中的使用 对于一个java bean,所有的属性都有可能返回null,那是否需要改写所有的getter成为Optional类型呢? 给大家的建议是,不要这样滥用Optional. 即便 我java bean中的getter是符合Optional的,但是因为java bean 太多了,这样会导致你的代码有50%以上进行Optinal的判断,这样便污染了代码。(我想说,其实你的实体中的字段应该都是由业务含义的,会认真的思考过它存在的价值的,不能因为Optional的存在而滥用) 我们应该更关注于业务,而不只是空值的判断。 不要在getter中滥用Optional. 小结 可以这样总结Optional的使用:
(编辑:信阳站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |