YMU2.0开发总结

YMU2.0上线了

经过9月紧张的战斗,Mars版本终于在10.1假期前上线。YMU2.0,即Mars版本从6月下旬开始,原定8.31上线,整整被推迟了30天。由于进度延迟问题,9月份公司强制加班,工作日每天晚上加到9点以后,同时周六再加班一天。

<o:p> </o:p>

本篇文章简要介绍Mars版本开发情况及一些经验教训。

开发目标

Mars版本主要有以下三大类目标:

<o:p> </o:p>

UI改版

  • 增强功能操作界面的易用性;
  • Official website也需要全面重新规划风格,并充实内容。

<o:p> </o:p>

一般功能改进

  • Report管理:进一步精化报表;采用velocity技术来实现报表模板;报表内容与用户时区关联;
  • Alert管理:告警粒度从service细化到monitoring source;进一步规范化alert rule;
  • 进一步规范化各对象(如customer, user, YMU-NODE, service)的状态及其转换;
  • YMU-NODE的安全性增强。

<o:p> </o:p>

系统架构升级

在不远的将来,customer数量、及并发访问会大幅增长,Public Beta版本的架构肯定不能满足要求,在Mars版本做了以下改进以达到初步的功能分布,并增加扩展性:

  • 前台程序原来全部在Web server中实现,无法实现分布处理,因此Mars版本剥离一些功能出来,形成独立的程序,从而实现功能上的分布;
  • 负载均衡:实现web server的负载均衡方案,以适应customer数量增长的需要;
  • 可靠性:初步实现数据库mysql的可靠性方案,以应付可能的数据丢失问题。

项目组结构

项目组结构大致如下:

  • 项目管理:1个,兼产品管理;
  • 系统分析:1个,那就是本人;
  • 前台组:1个team leader,前期3个开发人员,其中一个新来的,而且WEB开发不是很熟;9月初开除了一个低效率的开发人员,随后加入一个新人;实际上做最多工作的是两个老程序员,9月份新加入人员做的工作很少,还占用了指导人员(team leader)大量的指导时间,真是得不偿失;
  • 后台组:开始有两个开发人员,其中一个老的,一个新加入的;由于工作安排问题,新加入的只是在练手,对Mars版本根本没有帮助,9月初因为效率问题不予转正;
  • QA组:一度达到4个人,其中一个team leader,到9月份时只剩下两个。

进度延迟原因

分析一下延迟的原因,主要有以下几点:

<o:p> </o:p>

前期规划时间不够:Mars版本的前期规划(需求、技术验证)只是进行了大概1~2周的时间,很多功能需求都是比较粗的、未经过全面讨论,也未与程序人员进行充分沟通。这样造成两方面的问题:一是工作量无法精确评估;二是后面开发过程中有较多的修改、细化和返工。如使用google map来展示监测源及结果就是在开发过程中增加的特性要求;另UI改版成Yahoo Mail Beta的风格也是开发进行后才确定的,工作量还不小呢。<o:p></o:p>

<o:p> </o:p>

Project plan不够充分:进度规划时,时间点及功能知识只是根据市场策略来定,而未考虑具体的工作量及人力资源情况;同时开发人员做计划时,总是存在乐观估计个倾向,未能充分考虑任务的复杂性和工作量。因此,从某种角度看,该计划从一开始就不是很实际的计划,多次delay也就在所难免了。

<o:p> </o:p>

人力资源问题:人力配备上,从数量上看,应该算不错的了,但有些人员的素质还有待于提高。其实,从公司成立以来,人力资源一直是个问题,没有能补充进充足的、合适的programmer。另外,在前面项目前期,大家都有些松懈,没有更早紧起来,浪费了不少时间。如果大家都能像9月份这样的工作干劲,可能就需要这么多的delay,或有更多的测试时间,从而有更高质量的版本。

<o:p> </o:p>

新技术原因: 为分布式、性能、容量等考虑,技术架构做了较大的升级。主要是public beta版本着重于功能,未充分考虑适于分布式,大规模系统和HA的架构,因此造成Mars版本较大的架构升级。目前也只是做到前台功能的分布,已经独立出NSS, RGS, ADCS, AGMS, CMS和IFS等可分布部署的SERVER,后面还有很多架构方面的工作需要做。这些升级采用了Socket通信, Multi-Thread等在以前版本中未使用过的技术,这明显增加了coding, testing和integration的时间。

<o:p> </o:p>

版本规划问题:Mars版本的目标还是比较宏大的,前期规划需要3月完成,并规划了几个可发布的子版本。实际工作过程中,由于工作安排问题及UI风格调整等原因造成子版本是不可发布的,只能总体发布的局面,这样总体进度就比较难把握了。

<o:p> </o:p>

现在总结一下,其实还是可以分割成多个可发布的、粒度更小、更易控制的子版本的,如可先完成UI改版,给用户更好的体验;其他功能及架构改进则可根据优先级安排到不同的子版本中。

<o:p> </o:p>

这是个重要的教训,我由此体会到了迭代开发的重要性。以后规划版本时,可以半月为基准,最多不超过1个月。

<o:p> </o:p>

关键点控制问题:在Mars版本开发过程中,主要抓了前台Server的设计及code review,取得了一定的效果;但对关键点控制还是做得不好,还有很多漏掉的。

如Instant check功能,是老功能,就没有特别关注,9.28部署上去时,发现了很长时间不能显示检查结果的问题。经检查,发现代码中存在很多问题,经改进,效率提高了很多。实际上对用户来说,这是个很重要的功能,因此需要把它列入关键功能,做重点检查、Review和测试。

<o:p> </o:p>

还有登录功能也存在较大问题。现在输入密码后,要很长时间才能进入操作界面,这对用户体验绝对是灾难性的。而且该问题是我们的customer发现并提出来的!

<o:p> </o:p>

功能复杂度增加原因:每个user增加了time zone,并需要体现在报表、alert和客户通知邮件等,这给RGS, AGMS和CMS等的设计和开发增加了不少复杂度。

总结

Mars版本延迟发布的教训是深刻的,需要我们在以后的版本开发中加以避免,为用户提供更快、更好的服务。在互联网时代,你不需要完美,但你一定要快,一定要根据用户需求、竞争对手情况快速进化,如果慢,那你就死定了!

<o:p> </o:p>

互联网法则“快鱼吃慢鱼”是一条你必须遵守的法则!

<o:p> </o:p>

gaussian用法 matlab_如何使用GPML(Matlab)进行二维高斯过程回归? I have an Nx2 input matrix called X. I also have the output values Y which is a vector Nx1. I create some data to test as follows:Xtest=linspace(x_min,x_max,n);Ytest=linspace(y_min,y_max,n);So, matrix... 阅读详情

相关推荐

macOS搭建51单片机开发环境

1.概述 鉴于好多朋友平常工作电脑为苹果,再配一台 Windows 机器来开发 51 单片机,略显多余。为此,本文详细讲解在 macOS 搭建 51 单片机开发环境。 软硬件需求: macOS 笔记本或台式机 串口转 USB 驱动 CH341 51 内核编译器 sdcc 程序下载工具 stcgal 代码编辑器 visual studio code 51 单片机开发板(选配) 小编使用的 51 单片机开发板为 nebula-Pi,主单片机型号为 STC89C52RC,并且搭载了 CH340C 串口转 US

RYMCU的博客 4992

一款简洁的python开发工具--MU

对于入门新手来说,MU是一款简介易用的python编辑器,它自带一些我们常用的函数包,对于一些不想安装大型编辑器又不想敲控制台的人来说非常友好。 下载安装MU 我们可以在官网选择自己对应的系统下载(下载的非常慢) 下载链接 也可选择网盘下载(WINDOWS-64位) 网盘链接:MU安装程序 提取码:yser 打开安装程序,按照其指示的步骤走就行,中间可以自己选择安装位置 运行 安装完成后我们在桌面可能看不到它的快捷方式,我们要到开始菜单中找 如果你更习惯于桌面快捷方式启动,则右键选择更多-> 打开文

WILDCHAP_的博客 5556

[附源码]java+ssm计算机毕业设计职业病鉴定管理系统ymu91(源码+程序+数据库+部署)

Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。2. 前端:L ayui+css+javascript+jQuery+ElemenUI+highcharts。SSM + mybatis + Maven + JSP 等等组成,B/S模式 + Maven管理等等。2. 使用IDEA/Eclipse/MyEclipse导入项目,修改配置,运行项目;

eggwdd的博客 137

YAMAHA_YMU762合成小智音箱MIDI音频

本文深入解析YAMAHA_YMU762芯片的硬件接口、驱动开发与MIDI音频合成技术,涵盖Linux内核模块设计、I²C通信、寄存器配置及系统集成,探讨其在智能音箱中的应用与优化。

weixin_42593549的博客 1157

R语言分段回归

1.利用虚拟变量进行线性回归 (MEdata.csv的数据来源:https://github.com/ChenQihome9/优快云-Data-Library/blob/master/MEdata.csv) 问题13:针对TAX~GDP,使用分段回归方法,找到其回归方程。编程,并根据程序结果叙述如下几方面问题:(1)分几段最佳?(不超过5段内)(2)分段位置定在哪儿最佳?(3)写出最佳方...

ChenQihome9的博客 1万+

VCS 2018 环境下,手把手教你用 UVMC 搞定 SystemC 和 SystemVerilog 混合仿真(附完整代码)

本文详细介绍了在VCS 2018环境下使用UVMC实现SystemC和SystemVerilog混合仿真的完整指南。从环境配置、工具链设置到UVMC通信机制解析,提供了实战案例和高级调试技巧,帮助开发者高效搭建复杂验证环境。特别适合需要处理跨语言仿真的芯片验证工程师。

weixin_30952535的博客 285

AI智能棋盘采用YAMAHA YMU762合成MIDI音乐

本文介绍如何在AI智能棋盘中利用Yamaha YMU762芯片实现低资源占用、高响应的MIDI音乐合成。通过动态音乐反馈提升人机交互体验,系统仅需极小存储与CPU开销,即可实现情境感知的声音表达。

weixin_31749299的博客 404

threejs开发可视化数字城市效果

theme: condensed-night-purple 灵感图 现在随着城市的发展,越来越多的智慧摄像头,都被互联网公司布到城市的各个角落,举一个例子,一个大楼上上下下都被布置了智能摄像头,用于监控火势,人员进出,工装工牌佩戴等监控,这时候为了美化项目,大公司都会将城市的区域作为对象,进行3d可视化交互,接下来的内容,就是基于以上元素,开发的一款城市数据可视化的demo,包含楼宇特...

weixin_41770018的博客 1580

Linux音频子系统(3) -代码分析(以YMU836为例)

1. 前言 数据流通过I2S的接口来传输,而I2c/Spi接口主要完成控制接口,例如控制声音的大小,功放的增益等操作。 platform 部分对应的代码在 kernel_3.10/sound/soc/fsl/fsl_ssi.c; codec 部分对应的代码在 kernel_3.10/sound/soc/codecs/ymu836.c; machine 部分对应的代码在 kernel_3.10/sound/soc/fsl/imx-ym...

四季帆的博客 2015

代码实现 —— 基于 STM32 的可见光通信系统课程设计

基于STM32F103ZET6,源码如需移植,需要修改定时器捕获通道引脚,及定时器,如果你也有这个课设任务,希望对你有所帮助。

不善挽留 1万+

冲压机器人系列编程:ABB IRB 6700_(6).RAPID编程语言入门

主菜单:包含文件、编辑、视图、工具等常用操作。项目浏览器:显示当前项目的文件结构,包括机器人模型、程序模块等。图形界面:用于创建和编辑机器人的虚拟环境。RAPID代码编辑器:用于编写和编辑RAPID代码。仿真控制面板:用于控制仿真过程,包括启动、暂停、停止等。变量是存储数据的容器,可以通过变量名访问和修改其存储的数据。变量定义时需要指定其类型和名称。% 定义一个整数变量并赋初值% 定义一个实数变量,未赋初值函数定义时需要指定其返回类型和参数。num result;子程序类似于函数,但不返回值。

zhubeibei168的博客 1379

Https跳到http时session信息丢失的分析及解决方案

我们在YMU(website monitoring)项目开发过程中发现一个关于登录功能的奇怪的问题。当按一般流程使用登录功能时是没问题的,即:点击官网 (http://YouMonitor.Us)的login链接,然后跳转到https://YouMonitor.Us/login.shtml,输入正确的用户名和密码后,则能正确转入功能页面(http协议)。而如果跳过第一步,直接在浏览器中输https...

java_veteran的专栏 769

配置适合Gurobi的机器硬件环境需要考虑的因素

介绍了在为gurobi选择合适的硬件环境时,需要考虑三个方面的因素;

Linshaodan520的博客 1066

prometheus 2.23.0 安装 systemctl

prometheus-2.23.0.linux-amd64.tar.gz 参考: prometheus download

mixboot 904

【异常】DeepSeek API HTTP 401 认证失败错误完整排查与解决方案

摘要:本文针对DeepSeek API开发中的HTTP 401认证失败错误进行深度解析,指出该错误属于不可重试的认证类问题。文章首先拆解错误日志关键字段,区分401与其他API错误的本质差异。随后提供优先级排序的全链路解决方案:1)检查API密钥有效性;2)规范请求头认证格式;3)排查账户权限状态;4)验证请求环境配置。最后建议通过新建测试密钥、使用官方示例代码或联系技术支持进行兜底处理。全文采用技术脱敏处理,为开发者提供系统性的401错误排查指南。(149字)

奶爸的编程之路,也就一周冷个三天 1537

使用 MATLAB/Simulink 构建一个基于FOC控制的PMSM矢量控制仿真模型

本教程详细介绍了基于MATLAB/Simulink的永磁同步电机(PMSM)磁场定向控制(FOC)系统建模与仿真方法。主要内容包括:PMSM电机模型参数设置、Clarke/Park变换模块设计、电流环PID控制器配置、SVPWM调制实现以及系统仿真参数优化。文章提供了模块化设计思路和具体参数设置示例,并给出了PID整定建议和进阶优化方向。通过该仿真模型,可深入理解PMSM矢量控制原理,掌握高性能电机控制系统的建模技巧,适用于伺服系统、电动汽车驱动等高端控制场景。教程还推荐了实时仿真和高级控制策略等扩展应用。

xiaoheshang_123的博客 530

ssm毕设项目职业病鉴定管理系统ymu91(java+VUE+Mybatis+Maven+Mysql+sprnig)

Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。ssm毕设项目职业病鉴定管理系统ymu91(java+VUE+Mybatis+Maven+Mysql+sprnig)ssm + mybatis + Maven + Vue 等等组成,B/S模式 + Maven管理等等。2. 使用IDEA/Eclipse/MyEclipse导入项目,修改配置,运行项目;

计算机程序设计 195

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

如何在Apache中方便地切换http和https?

在YMU系统中,我们使用Apache 2.x作为前端Web Server,用于静态内容的保存和获取,及动态内容向后端Web Server(Tomcat)的转发;同时Apache 2.x也承担Tomcat服务器之间的负载均衡器。 &lt;o:p&gt; &lt;/o:p&gt; 从性能方面考虑,YMU系统的大部分页面采用http协议传输。而某些页面,如注册、登录和修改密码等安全性要求高的页面,则需要...

java_veteran的专栏 232

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

WSL2+ChatGLM2+FastGPT+oneapi本地化部署

使用WSL2+docker+oneapi成功部署fastGPT

weixin_42118737的博客 4589

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Pi0具身智能v1智能体开发:Skills智能体编程入门

本文介绍了如何在星图GPU平台上自动化部署Pi0具身智能(内置模型版)v1镜像,并利用其Skills智能体开发框架快速构建机器人应用。通过将复杂任务拆解为可组合的“技能”,开发者能够高效创建如桌面整理等具身智能体,显著降低机器人编程门槛。

weixin_42599908的博客 388

oj 结尾0的个数

描述: 给你一个正整数列表 L, 输出L内所有数字的乘积末尾0的个数。 例如: L=[2,8,3,50], 则输出:2 Python代码: from functools import reduce L = [2, 8, 3, 50, 3, 2] count = 0 def mul(x, y): return x * y mu = reduce(mul,

喜欢海 399

Qwen2.5-0.5B实战案例:搭建企业智能客服系统详细步骤

本文介绍了如何在星图GPU平台上自动化部署🤖 Qwen/Qwen2.5-0.5B-Instruct 极速对话机器人镜像,快速搭建企业智能客服系统。该轻量级大模型可在CPU环境高效运行,支持知识库注入、话术模板配置及企微/钉钉对接,典型应用于订单咨询、退换货引导、发票开具等高频客服场景,实现秒级响应与零代码接入。

weixin_30838971的博客 373

容器云Python运维开发案例

在/root目录下创建service_server.py程序,实现Service的增删查改等Web访问操作。在/root目录下创建pod_server.py程序,实现Pod的增删查改等Web访问操作。GET /services/{name},查询指定名称{name}的Service;Response的Body以json格式输出。② 创建完成后,查询该Deployment的详细信息,执行结果控制台输出,以yaml格式展示。② 创建完成后,查询该Job的详细信息,执行结果控制台输出,以json格式展示。

Flechazoxxx的博客 1585

http与https切换

Https跳到http时session信息丢失的分析及解决方案 博客分类: YMU开发 Tomcat浏览器WebServlet 我们在YMU(website monitoring)项目开发过程中发现一个关于登录功能的奇怪的问题。 当按一般流程使用登录功能时是没问题的,即:点击官网 (http://YouMonitor.Us)的login链接,然后跳转到https:...

weixin_30340775的博客 111
上一篇: 如何在Apache中方便地切换http和https?
下一篇: YMU2.0开发总结
java_veteran
博客等级 码龄19年 2粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值