如果你在写服务端 (PHP) ,会因为项目须求(做app、pc、mobiel、微信) 而写几套代码的,你不觉得很累吗? 现在的很多开源框架商用版本在做程序方面都是这么一套一套的,维护起来,二开起来特别的蛋疼呀,所以本人就有了一想法,如果各端能写一套,或某些代码一套就会少写很多代码了

好久没有上cnblogs了,也是因为自己最近的时间忙于其它事情,也在为上面说的问题大费心思,最后决定弄一个开发方快速、维护方便、扩展灵活、可组件式开发、代码复用高、耦合低的这么一个系统tpframe,这是一个用thinkphp 5.o基础上开发的管理系统,刚开始选择框架,在yii、laravel、thinkphp之间不好说哪个好与不好,但最后选择thinkphp的原因是他用起最简单,上手很快,别说它好与不好,能快速入手的,肯定是大家认可的,加上它的用户量,所以最后就选择它了,tpframe已应用于一些项目,项目结构基本完善,百分百开源,希望你能喜欢(我又不是人民币~)... 下面我就大体说一下是怎么减少我们很代码工作量的,具体它有什么好处,谁用谁知道,点击去tpframe官网看年

APP端

对于app端我们写的更多的就是后台数据管理,然后就是api接口,估计也没再多其它的了

H5:

如果你们做的是前、后端分享的形式,那跟app端差不多,写后台跟接口,又或者你直接套代码的形式

微信:

这个跟h5一样,多的就是一些微信二开的东西,比如微信登录,微信分享,微信推送等等之类的

PC:

现在pc端也有很多做前后端分享的,当然这样服务器又得写api,个人觉得直接套代码也很快(OK)了,这个项目负责人或客户怎么想了

结论:

不管你写哪一端,感觉只写api就可以了,哈哈~~,说起是这样的,PHPer写一api,全套都用上了,so easy!再也不用写那么多代码了。哈哈。。。。。。。 我笑了,理想是完美的,现实是苦B的。为了以后扩展,维护,老实分开写才是上上策

有人想,分开写不就写几套了吗,是的,这里的分开仅仅是数据处理分开写,数据库的一些操作我们就可以共用了呀,更确切的说,数据库的增、删、改、查,以及数据处理逻辑这些可以共用,但这也是我们写得比较多的,那其它的数据处理为什么要分开呢? 因为不同的端可能返回的数据格式不一样,APP端我们返回的通常就是json格式,而Pc我们不仅要赋值模板,还要渲染视图操作。

系统数据分层:

logic :数据处理层,也可以说是数据库的粒子操作

service:引用logic层的操作,进行数据后期处理,判断之类的,像一个操作可以会跨多个logic操作的时候,写在service就显得很有必须

controller:数据转发与响应操作

validate:数据验证层

model:模型层

view:视图层

然后:我们可以把逻辑放在公共(Common)模块里面,然后每个模块都可以共用这个模块的逻辑,分别调用数据后进行相应的处理。

最后:不建议把后台逻辑放公共模块里面,后台应该是独立出来的一块。

再啰嗦:项目有待大家考验,一直完善中,觉得不错的,多帮忙推荐给其它程序员,动动鼠标不算强奸,哈哈~~~

发现问题,欢迎大胆吐槽,沙发位等你...

推荐:让你快速搞定各服务端(api,pc,mobile,wechat)代码的更多相关文章

  1. 服务端API 工作经验(没有工作的是体会不到的)

    1.慢慢了解以下内容 [{xx:xxx,xx:xxx},{xx:xxx,xx:xxx},{xx:xxx,xx:xxx},]-- 数据 data 服务端API 状态代码(01代表成功) message ...

  2. 为什么说要搞定微服务架构,先搞定RPC框架?

    今天开始聊一些微服务的实践,第一块,RPC框架的原理及实践,为什么说要搞定微服务架构,先搞定RPC框架呢? 一.需求缘起 服务化的一个好处就是,不限定服务的提供方使用什么技术选型,能够实现大公司跨团队 ...

  3. 手把手教你制作微信小程序,开源、免费、快速搞定

    最近做了个"罗孚传车"的小程序 一时兴起,做了一个小程序,将个人收集的同汽车相关的行业资讯和学习资料,分享到小程序中,既作为历史资料保存,又提供给更多的人学习和了解,还能装一下:) ...

  4. 【58沈剑架构系列】为什么说要搞定微服务架构,先搞定RPC框架?

    第一章聊了[“为什么要进行服务化,服务化究竟解决什么问题”] 第二章聊了[“微服务的服务粒度选型”] 今天开始聊一些微服务的实践,第一块,RPC框架的原理及实践,为什么说要搞定微服务架构,先搞定RPC ...

  5. 为什么说要搞定微服务架构,先搞定RPC框架

    今天开始聊一些微服务的实践,第一块,RPC框架的原理及实践,为什么说要搞定微服务架构,先搞定RPC框架呢? 一.需求缘起 服务化的一个好处就是,不限定服务的提供方使用什么技术选型,能够实现大公司跨团队 ...

  6. 快速理解高性能HTTP服务端的负载均衡技术原理(转)

    1.前言 在一个典型的高并发.大用户量的Web互联网系统的架构设计中,对HTTP集群的负载均衡设计是作为高性能系统优化环节中必不可少的方案.HTTP负载均衡的本质上是将Web用户流量进行均衡减压,因此 ...

  7. C#开发BIMFACE系列4 服务端API之源上传文件

    在注册成为BIMFACE的应用开发者后,要能在浏览器里浏览你的模型或者获取你模型内的BIM数据, 首先需要把你的模型文件上传到BIMFACE.根据不同场景,BIMFACE提供了丰富的文件相关的接口. ...

  8. C#开发BIMFACE系列43 服务端API之图纸拆分

    BIMFACE二次开发系列目录     [已更新最新开发文章,点击查看详细] 在上一篇博客<C#开发BIMFACE系列42 服务端API之图纸对比>的最后留了一个问题,在常规业务场景下,一 ...

  9. C#开发BIMFACE系列46 服务端API之离线数据包下载及结构详解

    BIMFACE二次开发系列目录     [已更新最新开发文章,点击查看详细] 在前一篇博客<C#开发BIMFACE系列45 服务端API之创建离线数据包>中通过调用接口成功的创建一个离线数 ...

随机推荐

  1. MySql的虚拟机和Xshell5的连接过程

    给大家介绍一下虚拟机和Xshell5连接的基本配置1.安装虚拟机,跟着提示一步一步安装即可,注意添加镜像文件,虚拟机就完成了.2.下载一个Xshell5,安装好之后.要修改虚拟机的网卡状态    1) ...

  2. 解决No enclosing instance of type * is accessible

    写一个内部类,并在构造函数中初始化时,遇到报错,搜索问题后发现,有网友出现过类似的问题,下面这个是说的浅显明白的,并确实解决了问题.于是,以下内容照搬过来,不再多费键盘了. public class ...

  3. android 开源收藏

    第一部分 个性化控件(View) 主要介绍那些不错个性化的View,包括ListView.ActionBar.Menu.ViewPager.Gallery.GridView.ImageView.Pro ...

  4. 神奇的 routing mesh - 每天5分钟玩转 Docker 容器技术(100)

    接上一节案例,当我们访问任何节点的 8080 端口时,swarm 内部的 load balancer 会将请求转发给 web_server 其中的一个副本. 这就是 routing mesh 的作用. ...

  5. 企业级监控zabbix基础

    一个标准的监控系统所具备的基本功能: 1.数据的采集 2.为了展示其长期走势,将数据存储下来 3.万一某次采样的结果不在被认为是合理的范围内,然后就会做出告警操作,尽早的让相关人员得知到此消息 4.展 ...

  6. Python学习笔记整理总结【web基础】【web/HTML/CSS/JavaScript/DOM/jQuery】

    一.HTML HTML是英文Hyper Text Mark-up Language(超文本标记语言)的缩写,他是一种制作万维网页面标准语言(标记).相当于定义统一的一套规则,大家都来遵守他,这样就可以 ...

  7. Ubuntu 17.04 安装

    不忘初心,方得始终. 今天听别人说17.04发布了,我是开心的不得了,赶紧下载了一个,准备安装在自己的本子上.这段时间已经花费了更多的时间在docker和OpenStack上面,没时间看新闻了,因此今 ...

  8. Java基础(二)-static关键字分析

    static关键字是我们在编程中经常会使用到的,但有些可能只知其然而不知其所以然.下面介绍static关键字的作用再通过例子结合说明. static关键字共有五种作用(先说明static所修饰的不会改 ...

  9. windows平台下基于QT和OpenCV搭建图像处理平台

        在之前的博客中,已经分别比较详细地阐述了"windows平台下基于VS和OpenCV"以及"Linux平台下基于QT和OpenCV"搭建图像处理框架,并 ...

  10. Codeforces 890C - Petya and Catacombs 模拟

    C. Petya and Catacombstime limit per test1 secondmemory limit per test256 megabytesinputstandard inp ...