目录结构规范化

1、可独性高

2、可维护性高

目录组织方式

Foo/
|-- bin/
| |--foo #程序入口
|
|-- foo/
| |-- tests/
| | |-- __init__.py
| | |-- test_main.py #主程序
| |
| |-- __init__.py
| |-- main.py
|
|-- docs/
| |-- conf.py #配置文件
| |-- abc.rst
|
|-- setup.py #启动
|-- requirements.txt
|-- README

简要解释一下:

1.bin/:存放项目的一些可执行文件,当然你可以起名script/之类也行。

2.foo/:存放项目所有源代码。(1)源代码中的所有模块、包都应该放在此目录。不要置于顶层目录。(2)其子目录tests/存放单元测试代码:(3)程序的入口最好命名为main.py

3.docs/:存放一些文档

4.setup.py:安装、部署、打包的脚本。

5.requirements.txt:存放软件依赖的外部Python包列表。

6.README:项目说明文件。

关于README内容说明以下事项:

1.软件定位,软件的基本功能

2.运行代码的方法:安装环境、启动命令等。

3.简要的使用说明

4.代码目录结构说明,更详细点说明软件的基本原理。

5.常见问题说明

关于requirements.txt和setup.py

一般来说,用setup.py来管理代码的打包、安装、部署问题,业界标准的写法是Python流行的打包工具setuptools来管理这些事情,这种方式普遍应用于开源项目中,不过这里的核心思想不是用标准化的工具来解决这些问题,而是说,一个项目一定要一个安装部署工具,能快速便捷的在一台新机器上将环境装好、代码部署好喝将程序运行起来

作业需求:

模拟实现一个ATM+购物商城程序

1.额度15000或自定义

2.实现购物商城,购买东西加入购物车,调用信用卡接口结账

3.实现提现,手续费5%

4.每月22号出账单,每月10号为还款日,过期未还,按欠款总额万分之5每日计息

5.支持多账号登录

6.支持账号间转账

7.记录每月日常消费流水

8.提供还款接口

9.ATM记录操作日志

10.提供管理接口,包括添加账户、用户额度、冻结账户等。。。

11.用户认证用装饰器