zoukankan      html  css  js  c++  java
  • 快速开发的一些思考

    这两年来,“前后端分离“的事情总有人提,但是其实心里都很清楚,这只是把问题抛给前端开发人员的一个借口。相对于前端开发人员,后端程序员更加清楚业务流程、数据结构和字段命名,在样式确定的情况下,由后端程序员直接编写页面,肯定是非常高效的。

    在数据库未确定的情况下,前端开发人员盲目地进行页面设计,这将引发的一些列的问题,而这些问题通常是非常致命的。当我们开心地接过他们写的页面,却发现包括文件的命名、表单字段的命名,与最初的设想差别过大,内心必定是十分奔溃的,代码需要重新编码,浪费两个人的时间,还不如自己写一份。或许,“把问题完全抛给前端,我们只负责后端的编码”是一种解决方案,但就目前的市场情况,大部分公司无法满足这样的需求。

    做一个数据管理平台,并不是做一个网站,前端开发人员起到的作用,通常要小于后端开发人员,大部分的页面都是标准化的,是有规律可循的,而“有规律可循”这五个字,对于程序员来说,就是代码可封装的意思。我们有必要将这些重复、麻烦的工作,进行一次编码,对于未来,有一个长远的打算。

    数据层

    这是一张数据库表的结构信息,包括字段的最大值、最小值、长度、字段命名,一开始就全部定好了,业务就是从这么一张表开始。

     映射层

    在后端开发中,大部分都是使用ORM持久层框架,因此,需要配置“数据库-Java对象”的映射关系,实际上就是配置Java对象的字段对应于数据库的哪一列。

    以下是MyBatis配置:

    VO层

    在数据库中,一行记录,是一组数据的存储载体,而在Java代码中,VO用于存储一组数据,我们从数据库中取数,取到的结果封装在这样一个对象中。可见:VO的字段全部对应于数据库。

     

    网络接口层

    后台服务接口需要进行参数判断,这一层很多人根本没有设计,之前跟其他技术聊天,他给了我个答案“这件事不是交给前端来做么?”,本来想聊一聊这个问题,结果听得我有些尴尬。这个回答某种层度上也算对的吧,如果一开始就没打算把接口开放出去,这肯定是对的。但是作为一个有野心的程序员,并且有着长远的打算,这样的想法肯定是不行的。

    我们要相信:我们的项目会做的很大,不仅仅要给前端的页面调用,还要给其他公司调用。而且,往小了说,的确永远不能指望其他人没有失误。

    这个设计,其实Hibernate、SpringMVC都有,但是功能相对薄弱,可能不满足实际生产需要,需要针对自己的需求,进行功能加强。

     

    表单层

    这一层的代码五花八门,选什么样的前端框架,就有什么样的写法。但是框架一旦确定下来,后续的开发,基本也都是在复制粘贴,跟我们后台开发中的VO一样,结构如何,由数据库决定。

    <form>
    <input type="text" name="firstname">
    <input type="text" name="lastname">
    </form>

     

    不论是MyBatis还是Hibernate,都有代码生成器,可以帮助我们直接生成一部分代码。从头到尾分析下来,几乎一切代码,都与数据库表结构关联,理论上讲,这些代码是全部可生成的。

    从小了考虑,我们可以用好idea的代码模版功能,将我们常常写的代码,直接生成。放长远来,我们可以针对一个企业、一家公司,将代码规范下来,形成一定的代码积淀、代码形成一套标准,可以考虑从数据库配置,直接生成一套服务。

  • 相关阅读:
    内存泄漏 Memory Leaks 内存优化 MD
    Handler Thread 内部类引起内存泄露分析
    为什么不取消注册BroadcastReceiver会导致内存泄漏
    WebChromeClient 简介 API 案例
    WebViewClient 简介 API 案例
    java.net.URI 简介 文档 API
    android.net.Uri 简介 API
    RV 多样式 MultiType 聊天界面 消息类型 MD
    JS函数声明与定义,作用域,函数声明与表达式的区别
    CSS中table tr:nth-child(even)改变tr背景颜色: IE7,8无效
  • 原文地址:https://www.cnblogs.com/chenss15060100790/p/10989822.html
Copyright © 2011-2022 走看看