YMU2.0开发总结

MU editor IDE编辑器 二次开发记录与踩坑 我估计这个BUG大概率是由于中文编码引起的,issue没人提,我提了没人理,初步估计可能没多少中国人去编译MU,所以没人发现这个问题,不然为什么我换了两台电脑都不行,换英文系统就直接过了?最坑爹的来了,这里我卡了三个晚上才弄好,我现在有打包恐惧症,一个项目内容全做完了,最高卡在打包就问你心碎不。... 阅读详情

YMU2.0上线了

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

 

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

开发目标

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

 

UI改版

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

 

一般功能改进

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

 

系统架构升级

在不远的将来,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月份时只剩下两个。

进度延迟原因

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

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

 

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

 

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

总结

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

 

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

 

 
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

YOLOv5添加注意力机制的具体步骤

本文主要介绍了 本文在此篇博客的基础上向YOLOv5-5.0版 本文主要包括以下内容一、CBAM注意力机制添加(1)修改yolov5s主干网络(2)在common.py中添加可调用的CBAM模块(3)向yolo.py文件添加CBAMC3判断语句二、SE注意力机制添加 本文以yolov5s网络为例 一、CBAM注意力机制添加 注意力机制可以添加在backbone,Neck,Head等部分,接下来本文以backbone主干网络为例 (1)修改yolov5s主干网络 1.在yolov5-5.0工程文件夹下,找到m

thy0000的博客 2万+

OSCS开源安全周报第13期:Exchange 高危漏洞公开

OSCS 社区共收录安全漏洞31个,公开漏洞值得关注的是 Apache Commons JXPath 存在代码执行漏洞(CVE-2022-41852),Microsoft Exchange 远程代码执行漏洞(ProxyNotShell(CVE-2022-41040),Apache Tomcat 条件竞争漏洞(CVE-2021-43980),FasterXML jackson-databind 小于2.14.0-rc1拒绝服务漏洞(CVE-2022-42003)。

OSCS开源安全社区 4198

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

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

weixin_31749299的博客 404

Gartner 2025 中国网络安全成熟度曲线深度解读:AI 安全如何重构防御逻辑

2025 年 Gartner 中国网络安全技术成熟度曲线的发布,标志着国内网络安全领域正式进入 “AI 原生防御” 时代。这份聚焦中国市场特性的报告清晰揭示:网络安全的核心命题已从 “防御 AI 驱动的攻击” 演进为 “保障 AI 系统自身安全与业务协同”,AI 安全技术正成为重构企业防御体系的核心引擎。

KKKlucifer的博客 1389

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嵌入式开发实战:如何用miniLZO压缩算法节省70%存储空间(附完整工程)

本文详细介绍了如何在STM32嵌入式开发中使用miniLZO无损压缩算法实现高达70%的存储空间节省。通过对比分析不同轻量级算法,重点讲解miniLZO的内存优化配置、分块压缩策略和完整工程实现,帮助开发者有效解决嵌入式系统中的存储瓶颈问题。

ss78901的博客 881

NumPy 与 Pandas 的详细应用(含实例)

本文系统介绍了Python数据分析中NumPy和Pandas两大核心库的应用。NumPy专注于高效数值计算,提供多维数组和向量化运算功能;Pandas则擅长结构化数据处理,支持数据清洗、分组统计等操作。文章详细讲解了库的安装、基础操作(数组/DataFrame创建、索引切片)、进阶功能(缺失值处理、分组聚合),并通过电商销售分析案例演示了实际应用场景。最后总结了二者的协同优势:NumPy负责底层数值计算,Pandas处理高级数据操作,配合使用可显著提升数据处理效率。建议读者从基础操作入手,结合实际案例练习,

weixin_42030577的博客 2300

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

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

java_veteran的专栏 769

FFMPEG音视频开发: Linux下采集音频(alsa-lib库)、视频(V4L2框架)数据编码并实时推流到RTMP流媒体服务器,达到直播功能(推流)

一、环境介绍 操作系统: VM虚拟机运行的ubuntu18.04 FFMPEG版本: 4.4.2 摄像头: 罗技USB摄像头、电脑自带摄像头 声卡:电脑自带声卡 二、FFMPEG、X264的安装 参考这里:FFMPEG开发: Linux下采集摄像头数据录制成MP4视频保存到本: 地https://blog.csdn.net/xiaolong1126626497/article/d...

2993

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

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

java_veteran的专栏 232

从0到1:用Claude 3.7十日拿下教育部课题申报书(附可修改LaTeX模板)

🟣"作为教育部人文社科项目评审专家,请根据近三年立项数据分析,为[您的学科方向]领域推荐5个具有创新性且符合'十四五'规划的重点选题,要求选题体现交叉学科特征,并标注潜在理论突破点"🟣"根据前期研究基础,创建包含4个研究模块、12个关键节点的三维技术路线图,要求体现实验仿真-实证研究-理论建模的螺旋递进关系,并标注每个节点的预期成果形态"🟣"现在切换至教育部学科评审组组长模式,从选题价值、创新程度、研究可行性三个维度对本申报书进行盲审,生成包含9个扣分风险点的诊断报告及修改优先级排序"

智能AI让学术科研更容易 546

【人工智能】 WebDev Arena:实时AI Web开发竞赛的技术探索与价值

《AI编程竞赛推动Web开发技术创新》摘要:WebDev Arena作为聚焦Web开发领域的实时AI编程竞赛,通过标准化竞技环境检验AI模型在代码生成、问题解决等方面的能力。竞赛覆盖前端、后端等全流程开发环节,采用实时评分机制,推动AI对复杂Web需求的理解和多元技术栈适配。该赛事不仅促进AI编程技术创新,更为Web开发行业与AI技术融合搭建桥梁,有望提升开发效率、降低技术门槛。未来将拓展Web3.0等前沿技术主题,持续推动行业智能化发展。(150字)

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

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

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

prometheus 2.23.0 安装 systemctl

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

mixboot 904

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Devexpress16.2.6破解工具

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

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

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

weixin_42118737的博客 4589

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

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
上一篇: YMU2.0开发总结
下一篇: 巨人回来了
java_veteran
博客等级 码龄19年 2粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值