• 软件开发规范


    本文主要介绍软件开发规范,并且通过一个实际的blog的拆分实例来进行讲解。

    '''
    整体说明:
    01 项目的目录结果如下:
        (1)bin:用于存放启动文件,startup.py
        (2)conf:用于存放配置文件,settings.py
        (3)core:用于存放核心逻辑代码,src.py
        (4)db:用于存放数据文件 ,register.py
        (5)lib:用于存放公共组件,common.py
        (6)log:用于存放日志文件,access.log
        (7)README:用于说明以下几个事项。
            (a)软件定位,软件的基本功能。
            (b)运行代码的方法:安装环境,启动命令等。
            (c)简要的使用说明。
            (d)代码目录结构说明,更详细点可以说明软件的基本原理。
            (e)常见的问题说明。
            (f)参考示例:https://github.com/antirez/redis#what-is-redis
    02 __file__:查看文件的当前目录
    03 dirname(__file__):可获取项目的根目录
    '''
    
    ''''
    需求:将以下程序按照软件开发规范来进行整理
    '''
    
    
    def logger(f):
        def inner(*args, **kwargs):
            with open(LOG_PATH, encoding='utf-8', mode='a+') as f1:
                f1.write('您访问了%s' % (f.__name__))
            ret = f(*args, **kwargs)
            return ret
        
        return inner
    
    
    def register():
        with open(DB_PATH, encoding='utf-8', mode='a+') as f1:
            f1.write('太白金星|123
    ')
    
    
    def login():
        pass
    
    
    @logger
    def comment():
        print('欢迎访问评论页面')
    
    
    @logger
    def article():
        print('欢迎访问文章页面')
    
    
    @logger
    def diary():
        print('欢迎访问日记页面')
    
    
    dic = {
        1: register,
        2: login,
        3: comment,
        4: article,
        5: diary
    }
    
    
    def run():
        while 1:
            choice = input('请输入')
            if choice.isdigit():
                choice = int(choice)
                dic[choice]()
            else:
                print('请重新输入')
    
    
    run()
    
    '''整理过程如下:'''
    '''bin -> startup.py'''
    # import src  直接引用不行,src这个模块没在这三个当中
    # 先从内存 ---> 内置模块(os,time sys..) ---> sys.path
    import sys
    import os
    # sys.path.append(r'D:24期周末班day07log')
    # print(__file__)  # 文件的当前目录
    # print(os.path.dirname(os.path.dirname(__file__)))  # 获取到了项目根目录
    
    # 通过将项目根目录添加至sys。path后,项目内的所有模块就可以实现相互调用了
    BASE_PATH = os.path.dirname(os.path.dirname(__file__))
    sys.path.append(BASE_PATH)
    from core import src
    
    
    # 用户代码调数,如果__name__等于__main__可以执行,如果__name__等于模块名,说明模块被调用,所以不能启动程序。
    if __name__ == '__main__':
        src.run()
        
    '''conf -> settings.py'''
    DB_PATH = r'D:pythonweekend24day07logdb
    egister'
    LOG_PATH = r'D:pythonweekend24day07loglogaccess.log'
    
    '''core -> src.py'''
    # -*- encoding:utf-8 -*-
    #
    from lib import common
    from conf import settings
    
    def register():
        with open(settings.DB_PATH, encoding='utf-8', mode='a+') as f1:
            f1.write('太白金星|123
    ')
    
    
    def login():
        pass
    
    
    @common.logger
    def comment():
        print('欢迎访问评论页面')
    
    
    @common.logger
    def article():
        print('欢迎访问文章页面')
    
    
    @common.logger
    def diary():
        print('欢迎访问日记页面')
    
    
    dic = {
        1: register,
        2: login,
        3: comment,
        4: article,
        5: diary
    }
    
    
    def run():
        while 1:
            choice = input('请输入')
            if choice.isdigit():
                choice = int(choice)
                dic[choice]()
            else:
                print('请重新输入')
    
    '''lib -> common.py'''
    from conf import settings
    def logger(f):
        def inner(*args, **kwargs):
            with open(settings.LOG_PATH, encoding='utf-8', mode='a+') as f1:
                f1.write('您访问了%s' %(f.__name__))
            ret = f(*args, **kwargs)
            return ret
        return inner
    
    '''db -> register'''
    
    '''log ->access.log'''
  • 相关阅读:
    python学习随笔--string[:]
    年少时读不懂 天龙八部,如今读懂已过少年
    web安全测试随笔
    纪录jmeter loop controller 使用中的一个坑
    移动设备覆盖统计数据源
    jmeter and postman
    web测试----http状态码
    转自莫某的java学习计划
    jquery实现页面加载时删除特定class 的div内前三个字符
    js学习
  • 原文地址:https://www.cnblogs.com/mayugang/p/10024387.html
Copyright © 2020-2023  润新知