前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >设计理念-数组的褒与贬

设计理念-数组的褒与贬

作者头像
needrunning
发布2019-07-04 10:50:04
4070
发布2019-07-04 10:50:04
举报
文章被收录于专栏:图南科技
对于PHP开发者来说,数组是非常舒服的一种数据结构,方便,自由,灵活。但是这种数据结构对于以PHP为入门语言,并且一直从事PHP开发的一类开发者来说,并不是好事,他们会缺少针对属性,实体相关的设计思路,认为一切皆数组,如下图《PHP数组传递》。严格的数据类型,整齐的数据类型约束,他们不会理解,并且很难赞同,如下图《c#实体》。

优秀的设计思想应该是应该以对象的角度看待事物,分析业务,而不是临散的属性,随意的数组。而你在附属于框架,服务于业务时,势必要做些妥协。

PHP数组传递

之前在阅读go语言代码时,发现go语言中的结构体和C#语言中的实体使用思路有很大相似之处。

c#实体

层次之间参数传递

层次之间参数传递集中反映了数组与对象的差别

按照PHP开发者经验和习惯,层次之间传递的是数组,优点自然是方便,灵活,缺点是对于方法签名来说缺少固定的业务语义约束,不明确。

按照Java或者c#严格面向对象语言开发者的经验习惯,层次之间传递的是对象或者实体,实体可以作为容器在层次之间传递,而没有层次给予的职责约束。也就是在传统的三层开发模式中,任何一层都可以使用实体,实体包装的是对象属性。

关于实体和模型的区别不在这篇文章的讨论范围内,后续我会单独写文章叙述这两个概念以及用法的区别。

以免引起语言争论,这里补充一个观点,语言之间各有所长,应该使用到最适合的场景上。应该看到每种语言的优势,而不是做无谓的比较

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-06-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 图南科技 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档