jfinal简单项目心得1

jfinal简单项目心得

由于项目要求,做了一个微信小程序,也算是除了jspservlet外第一次用javaweb框架做东西,(之前用过django)所以,在此还是简单记录一下。

  1. 项目模块化

    我自己在做项目过程中,刚开始做的比较难以理解,也不利于维护和修改,后来在修改代码时也比较麻烦,所以,后来进行重构之后,简单的模块化如下,各个部分都比较清晰,直接定位修改即可。

    common下放置公共的东西,比如全局拦截器,model,返回的错误提示等。

    function下放置本项目的各项功能,由于我的项目比较简单,所以我没有针对页面和功能来划分模块,而是针对了对象来划分模块,例如:商家,用户,店铺等。这样对于简单的程序来说较为方便,涉及到的东西较少,但是大型项目一般不要这样放。

    fragment下放置只涉及简单的service层的功能,相当于零散的部分放在这块。

    kit用来存放各种自己编写的工具类。

    util下用来存放与项目运行关系不大的一些工具,例如model生成器,代码生成器。

    myRepConfig用来配置config

    在这里插入图片描述
    将用到的sql,各种数据库连接或者配置等也尽量划分为模块,方便修改。

    在这里插入图片描述

  2. 在创建自己的类时,首先想到接口和抽象类。例如,我在创建自己的model和全局拦截器时,刚开始没有用到该思想,后续修改十分麻烦,还得去查看,所以,尽量使用接口和抽象类。

    在这里插入图片描述

  3. 合理运用组合机制,配合接口,抽象类,达到减少代码重复又能保证灵活易于修改。

    例如,controllerAssist定义了共有的操作方法,对于转换后的对象进行判断。

    在这里插入图片描述
    在这里插入图片描述

  4. 如果一段代码被多次用到,或者一句话被多次用到,将其提炼出来,基于重构的思想,这样会使你的代码更好维护和修改。

    例如:

    对于我自己的项目,需要用到官方ret的时候,总是需要写Ret.set("data", obj),所以我将官方ret进行自己的包装以适合自己的程序。

    package com.my.rep.kit.ret;
    
    import com.jfinal.kit.Ret;
    
    /**
     * @date 2019/11/7 - 16:23
     */
    public class MyRet extends Ret {
        public static final String DATA = "data";
        public static final String MESSAGE = "message";
    
        public MyRet() {
        }
    
        public static Ret ok(Object object) {
            return ok().set(DATA, object);
        }
    
        public static Ret fail (String message) {
            return fail().set(MESSAGE, message);
        }
    }
    
  5. 基于模块化,组件化的思想,尽量将函数进行缩减,函数缩减的越小,该函数就越有可能被复用。

    比如:我的微信小程序的登录,我需要先去微信接口获取用户的code,再到服务器换取用户信息,那么,我就可以将这二者进行分割。

    创建一个函数用来请求微信接口获取code,再创建一个函数接收一个code,向我的服务器发送请求,再写一个函数将这二者包装起来,我调用的时候就直接调用这个包装好的函数即可。

    但是如果直接将这二者封装,你会发现可能有时候只需要调用一个函数,所以对于任何的功能,尽量做到组件化。

  6. 命名

    无论是函数还是变量,又或者是文件夹,文件。命名永远是最重要的,好的命名能一眼就看出来这个函数的功能,或者这个文件存放的是什么。例如function weChatLogin(code),一眼就看出这个函数是用来进行微信登录的,无需多余的注释,文件例如Constants一眼看出是存放常量的。

  7. 命名风格

    前端和后端可以风格不一致,但是在各自的领域内尽量一致,尽量不要混用。

    比如:前端使用下划线命名,后端使用驼峰命名,数据库使用下划线命名。

发布了76 篇原创文章 · 获赞 53 · 访问量 4156

猜你喜欢

转载自blog.csdn.net/qq_42254247/article/details/103531042