项目总结:如何开发出好的项目

2023-11-15

每件事都需要考虑它的价值,然后决定投入

 

1.项目如果要做的好,必须要有丰富的文档支持

文档的意义在于只有形成文档,才能更好的去沟通和判断,对有可能出现问题的地方提前预警;另外,任何一个系统不只有开发成本,运维成本有时会超出我们的想象,即便一个程序员的记性非常好,也很难准确的回忆起一年前写的东西,但是通过文档,不管是新员工入职还是老员工修改历史功能,都会起到非常关键的作用

产品使用说明书

产品需求文档

系统架构设计文档

系统详设文档

2.一只不仅有能力,而且认真做事的团队,以及良好的团队氛围

亲身经历过一个团队,个人能力都算很差,但是各个成员之间关系都不怎么好,每个同事都只会做自己被分配的任务,其他同事有什么问题,基本上不会协助处理,这就导致了信息沟通不有效,同一件事可能多个同事会确认多次,效率低下;还有同事会对团队抱怨,这种一个人的抱怨甚至发展成风暴之眼,也影响到其他同事的状态,导致整个团队的状态收到影响

每位成员的能力其实直接关系到项目的好坏,还是应该加强团队成员的把关。团队成员除了有个人能力外,也需要有认真做事的精神,良好的团队合作意识。能力突出但却特立独行,仍然没办法为团队创造价值。

3.项目研发流程

我们工作的环节需要有清晰的流程,健全的流程能避免很多不该发生的问题

需求评审

设计方案评审

编码

CR(代码评审)

自测

测试

4.好的代码

好的代码包括好的数据结构和好的逻辑,想讨论下好的逻辑

A.系统运行没有BUG:没有BUG是最基本要求

B.清晰的业务逻辑设计:任何一个需求,都是需要分为123步来处理的,我们编写的代码,就是我们处理问题的思路,思路清晰的逻辑,才能提高代码质量

C.程序的业务可扩展性:业务肯定会不断变化,需求也会不断变化,僵硬的编码在业务变动时基本上需要重写,这个成本是很高的,如何让程序可以灵活的适应各种业务场景,如何对复杂模块进行解耦,如何对公用模块进行抽象,这些都是需要我们需要考虑的(下一篇将会继续讨论如何开发高扩展性的程序)

D.业务的可读性:高可读的程序,不能有晦涩的编码流程,在程序注释,数据/变量定义上也需要花些心思。同样的需求要考虑多种写法,千万不要让我们的程序变得晦涩,不然对接手我们程序的人来说就是灾难

E.良好的编程习惯:编程过程中有许多需要注意的点,比如金额处理,避免精度缺失;

对自己编写的程序认真负责,不能放过任何一个小的点(这个小的点往往就会让我们身处灾难之中)

时刻以怀疑的态度对待自己的程序(读到自己的每行代码,都已这行代码极有可能是错的态度去看待,都思考是否还有别的方式去处理)

要面向未来编程,思考业务变动点

代码应该出现在该出现的地方,如果代码放错了位置,将让代码变得更为复杂,也更为难懂

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

项目总结:如何开发出好的项目 的相关文章

  • 浏览器播放rtsp视频流方案(ffmpeg + nginx转m3u8)

    1 下载ffmpeg 传送门 https ffmpeg en softonic com 2 配置环境变量 右击我的电脑 gt 点击属性 打开左侧高级系统设置 点击下方的环境变量 在下方系统变量中找到path变量 选中点击下方编辑 别点成删除
  • 嵌入式---c语言变量范围及生命周期和定义声明

    嵌入式 c语言变量范围及生命周期 1 局部变量和全局变量 变量分为局部变量和全局变量 因为有的变量只能在本程序中使用 而有的变量可以在其他函数中使用 这就是变量作用域问题 1 1局部变量 定义 只能在一定范围内使用的变量称为局部变量 例如
  • MATLAB--卡尔曼滤波

    利用matlab来实现卡尔曼滤波 一个简单的例子 clear all clc close all 利用卡尔曼滤波算法来估计状态值 定义状态转移矩阵和观测矩阵 syms x u h x x exp x 3 2 x 2 H diff h x f
  • nodejs服务器响应头,nodejs-getpost提交http请求响应

    理解表单使用post方式提交数据时后端接收数据的方法 理解表单使用get方式提交数据时后端接收数据的方法 理解post和get的区别 记住请求报文的组成 记住响应报文的组成 fs模块 进行目录和文件操作 readFile 读文件 write
  • Java+seleinum+IDEA环境搭建

    本机Win7 64位 chrome36 IDEA Java 8 selenium3 1 安装Java 本地安装Java8的jdk 配置环境变量 具体方法自己百度 2 安装IDEA 默认安装即可 3 安装selenium及驱动 a 下载sel
  • python append 覆盖数据

    更多文章详见 python append 覆盖数据 自我的进化https www shanxing top p 205 问题 使用append为list添加object的时候 有时候会出现后面的object将前面的几个给覆盖的情况 原因 当
  • QT里的网络通信简介

    QTcpSocket类简介 QTcpSocket类提供了一个TCP套接字 TCP 传输控制协议 是一种可靠的 面向流的 面向连接的传输协议 它特别适合数据的连续传输 QTcpSocket是QAbstractSocket的一个子类 它允许您建
  • 图像分割评价指标: Dice, MIoU, MPA等

    目录 1 混淆矩阵 2 Dice 3 MIoU 4 MPA 仅为个人结合一些博客的理解 1 混淆矩阵 如果是k 1分类问题 就会生成 k 1 k 1 的混淆矩阵 具体定义可参见百度百科 下面以肺结节分割为例 显然这是一个二分类的问题 肺结节
  • 菜鸟求职记1

    熬过了黑色的六月 我和往届的学长学姐一样 背着书包 拎着行李箱 开始了XV的求职之路 忙里偷闲 今天没有招聘会 一整天都在寝室 想着这几天的忙碌身影 我觉着应该将此点滴记录下来 以激励我以后的人生 9月10日 我们早上5点多开始从延安赶往西
  • Tornado 多进程分析(转载)

    引子 Tornado 是一个网络异步的的web开发框架 并且可以利用多进程进行提高效率 下面是创建一个多进程 tornado 程序的例子 usr bin env python coding utf 8 import os import ti
  • webpack5 基础配置(7) eslint-ts的使用和在webpack中的配置 加载vue文件

    上一节最后讲到了typescript的使用 ts loader本质上也是利用与tsc 所以安装ts loader的同时需要安装typescript 如果你没安装typescript 在你安装ts loader的时候 会根据ts loader
  • Git回退分支到某版本

    1 找到要回退的版本号 TortoiseGit gt Show Log gt 选中要回退的版本 gt Reset xxx to this gt commit旁复制版本号 2 本地回退到某版本 git reset hard 9224ad994
  • Idea 中 Docker 的 log 乱码

    IDEA 本地调试代码中英文显示全部正常 但是用 idea 中的 docker 插件部署到服务器 再查看 容器中 log 的时候 log 里面的中文全是乱码 就开启了一段排查过程 开始一个个排查 程序员的日常 查看容器中语言 字符集 环境
  • 【Android】java.lang.UnsatisfiedLinkError: No implementation found for void xx xx xx -- 问题解决

    Android在开发过程中总会出现各种各样的bug 要想畅通无阻的完成一个app的 开发工作固然有点难度 这不 我的程序跑着跑着又报错了 AndroidRuntime FATAL EXCEPTION Thread 4903 Process
  • 反汇编二进制代码

    最近又做了一些内核hook的工作 繁琐的地方在于二进制指令的可读性上 下面简要记录dump出指令二进制 之后利用binutils来转成可读的汇编代码 hook的主要流程参考之前的linux内核态hook模块 splice 主要就是构建一个t
  • 理解MySQL回表

    回表就是先通过数据库索引扫描出数据所在的行 再通过行主键id取出索引中未提供的数据 即基于非主键索引的查询需要多扫描一棵索引树 因此 可以通过索引先查询出id字段 再通过主键id字段 查询行中的字段数据 即通过再次查询提供MySQL查询速度
  • Java编程——输出1000以内的素数(质数)

    素数的定义是什么 质数 prime number 又称素数 有无限个 一个大于1的自然数 除了1和它本身外 不能被其他自然数 质数 整除 换句话说就是该数除了1和它本身以外不再有其他的因数 否则称为合数 public class demo7
  • STM32库函数TIM_SetCompare()的工作机制测试

    一 TIM SetCompare 函数的定义 其中 TIM SetCompareX 这个函数有四个 它们为 TIM SetCompare1 TIM SetCompare2 TIM SetCompare3 TIM SetCompare4 同时
  • 引脚悬空是什么电平_STM32单片机必须掌握的八种IO口模式和引脚配置方式

    八种IO口模式 STM32有八种IO口模式 分别是 模拟输入 浮空输入 上拉输入 下拉输入 开漏输出 推挽输出 复用开漏输出和复用推挽输出 1 模拟输入 GPIO Mode AIN模拟输入 即关闭施密特触发器 将电压信号传送到片上外设模块
  • 关于STM32F103 TIM2重映射

    关于STM32F103 TIM2重映射 如何使用重映射和如何重映射为哪些管脚 这里不详细讲解 可以百度找到 下面讲的是tim2重映射为PA15 PB3 PB10 PB11 这里的设置网上也有讲解 但是如果功能较为复杂的程序 外设用的比较多的

随机推荐

  • 黑马JVM总结(五)

    1 方法区 它是所有java虚拟机 线程共享的区 存储着跟类的结构相关的信息 类的成员变量 方法数据 成员方法 构造器方法 特殊方法 类的构造器 方法区在虚拟机启动时被创建 方法区逻辑上是堆的组成部分 但是不同的JVM厂商实现是不一样的 O
  • 进程,线程,协程总结

    进程 三种状态 就绪态 运行的条件都已经慢去 正在等在cpu执行 执行态 cpu正在执行其功能 等待态 等待某些 条件满足 例如一个程序sleep了 此时就处于等待态 生命周期 用户编写代码 代码本身是以进程运行的 启动程序 进入进程 就绪
  • Eclipse搭建stm32+jlink开发环境全攻略

    Eclipse搭建stm32 jlink开发环境全攻略 初级篇 前言 为什么需要这样的开发环境 免费 跨平台 自由度高 Eclipse代码提示功能强大 MDK弱爆了 注 本人原创 转载注明作者 by 秋之前 email xia mengli
  • paddleOCR踩坑记

    paddleOCR踩坑记 训练莫名终止或者评估莫名终止 训练和评估的效果都特别好 预测的效果却特别差 使用gen label py报错 将paddleOCR转成pytorch框架 训练莫名终止或者评估莫名终止 这是因为在tools prog
  • 2023全国大学生数学建模竞赛B题思路模型代码

    目录 一 选题建议先发布 思路模型代码论文第一时间更新 获取见文末名片 二 选题建议 后续思路代码论文 B 题 多波束测线问题 各题分析 获取完整思路代码见此处名片 一 选题建议先发布 思路模型代码论文第一时间更新 获取见文末名片 二 选题
  • python使用matplotlib:subplot绘制多个子图

    CSDN GitHub python使用matplotlib subplot绘制多个子图 AderXCoding language python matplotlib subplot 转自 https blog csdn net gatie
  • 解决eclipse启动报错问题:Could not create the Java Virtual Machine...

    电脑重装系统后 下了很多软件 其中就包括eclipse 但是在安装好后打开eclipse时报错 点击确定出现下面这样 网上找了原因 是因为自己在安装JDK的时候在C windows System32文件中生成了三个文件java exe ja
  • vue.js 开发环境搭建最简单攻略

    更新 本篇文章是我很之前写的 对于一些没有工作 或者js基础不太好的同学 建议不必大费周章去搭建环境 可以直接引用 vue js 就可以进行学习 练习 有些过程是水到渠成的 当初很多不懂的东西慢慢就懂了 官方指南假设你已有HTML CSS和
  • 小学数学题的Java实现

    昨天 去朋友家一起做饭 刚好有小孩问我问题 说你不是学计算机的吗 那你教我做一道数学题 我刚开始看的时候愣了一下 不过 想了一会还是解决 题目是这样的 有一袋糖果 每次从袋子里面拿走一半又放进袋子一颗 经过5次操作后 袋子还剩余4颗糖果 请
  • CH07_封装

    封装记录 Encapsulate Record 162 曾用名 以数据类代替记录 Replace Record with Data Class organization name Acme Gooseberries country GB c
  • PHP 视频或信息 保持唯一推荐

    redis RedisCli origicount redis gt scard original 查看数据是否为空 if origicount recommend M video gt field videoId gt where is
  • 100位特邀用户亲测GPT-4

    在首期Beezy4 0体验官优秀案例集中 部分用户展示了GPT 3 5和GPT 4 0在小红书文案 创意脚本生成上的应用对比 今天我们将选取其中的典型案例进行分析 看一下GPT 3 5和GPT 4 0在文案写作领域的表现有何不同 优秀案例
  • 全球哪些顶级的公司在使用Python?Python的性能如何?

    目前有超过500种编程语言 每天仍在新增更多新语言 虽然其中有大部分重叠的语言以及大量仅用于理论和试验的编程语言 但一个人的时间和精力有限 你只能挑选几种甚至一种深入学习 没有基础的小白该从哪下手呢 不如就选python吧 我们主张从pyt
  • ckeditor4 上传图片压缩 图片压缩后上传 上传文件前处理 上传图片之前压缩图片

    网上搜不到合适的例子 所以写了一个 感觉应该有一些参考价值 核心就是ckeditor中的一个属性 fileUploadRequest 下面看例子 const questionBodyEditor CKEDITOR replace quest
  • 【R语言】实验一 R 语言数据结构、数据导入与数据处理

    系列文章目录 实验一 R 语言数据结构 数据导入与数据处理 实验二 基本数据处理 实验三 数据可视化 实验四 数据分析 实验五 综合应用 实验数据 实验数据下载 1 algae 数据集 season size speed mxPH mnO2
  • selenium 自动化测试工具(七)python日志logging基本用法、高级用法

    设置logging import logging import time import os class LoggingMethod def getlogger self logger logging getLogger logger se
  • 使用Git上传代码到GitHub

    首先需要一个github账号 所有还没有的话先去注册吧 https github com 使用git需要先安装git工具 这里给出下载地址 下载后一路直接安装即可 https git for windows github io 1 进入Gi
  • LeetCode 1 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。

    LeetCode 1 给定一个整数数组 nums 和一个目标值 target 请你在该数组中找出和为目标值的那 两个 整数 并返回他们的数组下标 你可以假设每种输入只会对应一个答案 但是 你不能重复利用这个数组中同样的元素 示例 给定 nu
  • 第十四届蓝桥杯第三期模拟赛(python版)

    总体难度不大 正赛肯定比这难 本人答案代码样例都能过 前五个填空题正确性应该都问题不大 有更好方法欢迎放出来 大题但可能有一些细节没有考虑到 时间复杂度这一方面是都考虑了的 大题仅供参考 有更好的方法的 欢迎讨论 目录 问题1 问题2 问题
  • 项目总结:如何开发出好的项目

    每件事都需要考虑它的价值 然后决定投入 1 项目如果要做的好 必须要有丰富的文档支持 文档的意义在于只有形成文档 才能更好的去沟通和判断 对有可能出现问题的地方提前预警 另外 任何一个系统不只有开发成本 运维成本有时会超出我们的想象 即便一