对模拟博客园登陆的改进---软件的开发规范

  1. 为什么要规范开发:

    • 全写在一个py文件中,文件加载慢,代码可读性差,查询麻烦
    • 所以要将一个py文件分开,合理的分成多个py文件
  2. 程序配置:

    • 统一相同的变量.比如模拟博客园登陆中多次使用的文件路径.为了好修改这个文件路径,可以在文件的最上方写一个变量指向这个路径,代码中直接引用这个变量.修改时只需修改这个变量.
  3. 文件划分:

    1. setting.py

      配置文件,用于放置一些项目中需要的静态参数,比如文件路径,数据库配置,软件的默认设置等等.比如上面所说的文件路径.

    2. common.py

      公共组件文件,用于放置一些常用的公共组件函数,并不是核心逻辑的函数,而更像是服务于整个程序中的公用的插件,程序中需要即调用.比如装饰器,密码加密功能,序列化功能,日志功能等.

    3. src.py

      核心文件,主要存放的就是核心逻辑功能.

    4. start.py

      项目启动文件,目的是显眼,方便开启

    5. 类似register文件

      文件名不固定,存储数据的文件,类似于文本数据库,项目中有时会遇到将一些数据存储在文件中,与程序交互的情况,所以要单独设置在这样的文件.

    6. log文件

      存储log日志的文件

  4. 划分具体目录

    blog
    |__bin
    |  |__start.py
    |
    |__conf
    |  |__settings.py
    |
    |__core
    |  |__src.py
    |
    |__db
    |  |__register
    |
    |__lib
    |  |__commmon.py
    |
    |__log
    |  |__access.log
    |__README
    
  5. 按照项目目录结构,规范模拟博客园登陆

    1. 配置start.py

      import sys
      import os
      # print(os.path.dirname(__file__)) # 获取本文件所在文件夹即bin的绝对路径
      # print(os.path.dirname(os.path.dirname(__file__)))
      # 获取本文件所在文件夹bin所在的文件夹blog的绝对路径
      BATH_DIR = os.path.dirname(os.path.dirname(__file__))
      sys.path.append(BATH_DIR)
      
      from core.src import run
      if __name__ == '__main__':
          run()
      # 或
      # from core import src
      # if __name__ == '__main__':
          # src.run()
      
    2. 配置settings.py文件

      # 配置静态文件,不会轻易改变
      import os
      print(os.path.dirname(os.path.dirname(__file__)))
      # 获取当前文件所在的目录的上级目录,即blog
      print(os.path.join(os.path.dirname(os.path.dirname(__file__)), r'db\register'))
      
      file_name = os.path.join(os.path.dirname(os.path.dirname(__file__)), r'db\register') # 拼接出register的路径
      
    3. 配置common.py文件

      from core import src
      # 用src.status_dic来引用src中的status_dic
      # 在启动strat.py时,已经把blog的路径添加到sys.path中了,意味着,在整个项目中的任何py文件,都可以引用到blog项目目录下面的任何目录:bin,conf,core,db,lib,log这几个,所以此处可以直接引用src
      
    4. 配置src.py文件

      from conf import settings
      from lib import common
      # 用settings.file_name引用settings中的file_name
      # 用common.wrapper引用common中的装饰器
      
    5. README

      1. 软件定位,软件的基本功能
      2. 运行代码的方法: 安装环境,启动命令等
      3. 简要的使用说明
      4. 代码目录结构说明,更详细点可以说明软件的基本原理
      5. 常见问题说明
posted @ 2019-06-28 18:37  怀心抱素  阅读(226)  评论(0编辑  收藏  举报