热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

从零开始一个项目-1.项目规划篇

最近帮助新公司搭建一个数据分析后台,借此机会,把整个项目的点滴记录下来,顺便帮助一些朋友理清一个项目的流程,建立良好的开发习惯,提高效率1.需求整理公司需求只是一个简单的数据分析后

最近帮助新公司搭建一个数据分析后台,借此机会,把整个项目的点滴记录下来,顺便帮助一些朋友理清一个项目的流程,建立良好的开发习惯,提高效率

1.需求整理

公司需求只是一个简单的数据分析后台,只需要表格的展示功能,无需增删改的功能,但是考虑到之后扩展的可能(比如现在就已经增加了GM管理游戏基本数据的功能了…),因此决定写成一个框架,不管是现在公司使用,还是自己接一些项目都是使用到,节省开发成本。

目标:
- 使用到的框架:angularjs、requirejs。
- 页面样式:我直接照抄的阿里云管理后台,如果正式项目肯定会有设计图。
- 项目预期(前端):左边的导航栏以及导航栏对应显示的内容与HTML完全分离,做到如果新增了一个栏目,只需要新建一个data配置,就可以直接渲染出完整的功能,无需二次开发。

2.页面结构图

因为项目不是特别复杂,因此没有使用标准的UML时序图去表示,只是简单的使用了脑图理清思路。

页面结构图

这里的检索表单区域,相当于搜索栏,因为是数据统计后台,每一个栏目可能有很多的筛选项,例如:起始时间、结束时间、渠道等,这里也需要抽象成活的模块,根据配置渲染即可。

3.控制器以及基本类图

控制器以及基本类图

因为使用了angularjs因此这里是直接划分了控制器,以及相关的模块的依赖关系。

  • baseData,相当于一个纯Data的服务,注入到主控制器中,主要存储了网站名称、logo路径、icon信息
  • adminUserData,一个管理员用户信息的服务,ajax服务器,获取对应的基本信息、权限
  • modulesData,总的数据模块类,类中包含了一个全部数据模块的列表,以及注册数据模块到该列表中的方法,此类的作用,主要是用来提供导航栏的渲染、以及一个简单的观察者模式的主类。
  • userData,是一个数据模块的例子,图中列出的是考虑到的可能需要用到的属性。

这是图中各类的说明,实际书写中其实还有新增的结构或删减的结构,但是至少大致的结构是如此,在开始一个项目之前,好好的理一理的项目的逻辑图、画一画类图是很有好处的。

4.项目目录结构

项目目录结构

这里没啥可说的,主要就是controllers里面我还按照之前的页面结构图,划分了子文件夹,然后在具体开发中因为我还加了一个总的顶部导航栏,所以多了一个和main控制器平级的header控制器。

结语:第一篇项目准备就这么多,虽然看起来很麻烦,但是我还是强烈建议大家动手写代码前,多想一想大致的结构怎么样,怎么实现可以抽象、复用,这样真正开始动手的时候才不会手忙脚乱各种复制粘贴,最后整个项目变成一个完全无法维护的项目。
最后项目源码地址:https://github.com/Orz-Li/OrzCMS,欢迎大家fork、clone、提交


推荐阅读
  • Webpack5内置处理图片资源的配置方法
    本文介绍了在Webpack5中处理图片资源的配置方法。在Webpack4中,我们需要使用file-loader和url-loader来处理图片资源,但是在Webpack5中,这两个Loader的功能已经被内置到Webpack中,我们只需要简单配置即可实现图片资源的处理。本文还介绍了一些常用的配置方法,如匹配不同类型的图片文件、设置输出路径等。通过本文的学习,读者可以快速掌握Webpack5处理图片资源的方法。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • VueCLI多页分目录打包的步骤记录
    本文介绍了使用VueCLI进行多页分目录打包的步骤,包括页面目录结构、安装依赖、获取Vue CLI需要的多页对象等内容。同时还提供了自定义不同模块页面标题的方法。 ... [详细]
  • 从零基础到精通的前台学习路线
    随着互联网的发展,前台开发工程师成为市场上非常抢手的人才。本文介绍了从零基础到精通前台开发的学习路线,包括学习HTML、CSS、JavaScript等基础知识和常用工具的使用。通过循序渐进的学习,可以掌握前台开发的基本技能,并有能力找到一份月薪8000以上的工作。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 本文详细介绍了解决全栈跨域问题的方法及步骤,包括添加权限、设置Access-Control-Allow-Origin、白名单等。通过这些操作,可以实现在不同服务器上的数据访问,并解决后台报错问题。同时,还提供了解决second页面访问数据的方法。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • 分享2款网站程序源码/主题等后门检测工具
    本文介绍了2款用于检测网站程序源码和主题中是否存在后门的工具,分别是WebShellkiller和D盾_Web查杀。WebShellkiller是一款支持webshell和暗链扫描的工具,采用多重检测引擎和智能检测模型,能够更精准地检测出已知和未知的后门文件。D盾_Web查杀则使用自行研发的代码分析引擎,能够分析更为隐藏的WebShell后门行为。 ... [详细]
  • 本文总结了在开发中使用gulp时的一些技巧,包括如何使用gulp.dest自动创建目录、如何使用gulp.src复制具名路径的文件以及保留文件夹路径的方法等。同时介绍了使用base选项和通配符来保留文件夹路径的技巧,并提到了解决带文件夹的复制问题的方法,即使用gulp-flatten插件。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • web.py开发web 第八章 Formalchemy 服务端验证方法
    本文介绍了在web.py开发中使用Formalchemy进行服务端表单数据验证的方法。以User表单为例,详细说明了对各字段的验证要求,包括必填、长度限制、唯一性等。同时介绍了如何自定义验证方法来实现验证唯一性和两个密码是否相等的功能。该文提供了相关代码示例。 ... [详细]
  • 本文介绍了如何使用Express App提供静态文件,同时提到了一些不需要使用的文件,如package.json和/.ssh/known_hosts,并解释了为什么app.get('*')无法捕获所有请求以及为什么app.use(express.static(__dirname))可能会提供不需要的文件。 ... [详细]
  • 本文介绍了Sencha Touch的学习使用心得,主要包括搭建项目框架的过程。作者强调了使用MVC模式的重要性,并提供了一个干净的引用示例。文章还介绍了Index.html页面的作用,以及如何通过链接样式表来改变全局风格。 ... [详细]
author-avatar
mobiledu2502871653
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有