前台和后台功能相同时,代码和模块如何复用?

这里所说的前台是指直接面向用户的网站,后台是指仅仅面向系统管理员的网站。

不管是前台还是后台,操作的都是一个数据库,后台只是具备一些管理的功能。一般情况下前台和后台有大量的功能是重复的。
比如:
前台用户有添加、编辑、修改、删除新闻的功能;
后台管理员也有添加、编辑、修改、删除新闻的功能,还有批量删除、批量审核等功能。

大家是采用怎么的方式尽可能得复用代码的?

如果前台和后台是由2组人马开发的2个站点,是不是应该单独开发一套REST API接口给2组开发人员调用?

阅读 8.5k
4 个回答

这是个好问题。

我的想法是:总是按照REST的思想去做事。

首先选定网站的思路,是前后台各起一套,还是前台混杂管理功能+后台补充特权功能。这两种方法都正确,看个人取舍。

但在真正后台接受并请求的部分,记住一定跟着REST的原则走:相同的行为一定是相同的请求方式去实现。

举例:如果是相同的“添加文章”功能,则无论前台用户添加,还是后台管理员添加……

  • 对:均为POST /api/article/add
  • 错:用户为POST /api/user/article/add/,管理员为POST /api/admin/article/add/
  • 对:根据对加文章这件事本身,用户是否有权限进行限权
  • 错:根据用户身份是否是管理员进行限权

记住:对于相同的1个功能,后台开发组只起1套api接口,绝对不允许重复。

至于前台开发组,就跟着网站前台的样子走就好了。前后分离就是两套样式,混杂就是一套样式。

题主我可以理解为你是这样认为的么?

后端代码已经写了一遍CURD,为何还要在前台再写一遍呢?

功能差不多话,其实代码拷贝过去就行了啊在Controller,如果封装的好的话,Mobel层直接拿上来也可以用了啊,还用纠结重用问题么?

我个人觉得如果网站不是涉及到很深的权限问题的话,不用想得太复杂,直接拷贝Controller再改改好了。

前端的代码重用就涉及到设计上面,这块不讨论了。。。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏