热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

探寻背后的机制化繁为简:网站程序升级不过是文件同步

苹果落到地上而不是天上,这是重力的作用;树叶从树枝上飘落的样子谁也无法预测,这是混沌过程;热恋中的恋人总是难分难舍ÿ
  • 苹果落到地上而不是天上,这是重力的作用;
  • 树叶从树枝上飘落的样子谁也无法预测,这是混沌过程;
  • 热恋中的恋人总是难分难舍,这是荷尔蒙等激素作用于下丘脑的结果;
  • 。。。 。。。


    诸如这些“复杂”的问题,背后总有一个“机制”在作用,找到了这个机制,我们就能化繁为简,解决复杂的问题。

    在软件的生命周期中,维护是一个很重要的过程,我们需要不断的为软件升级,以解决不断变化的新问题,如何升级,这是我们设计系统的时候必须考虑的问题。网站程序也需要不断的升级,不过相对而言比较简单,但工作量不算小,我们看看具体的工作场景:
1,手工使用FTP升级
    确认那些网页文件刚刚修改过,然后将这些文件一个个的使用FTP工具上传到FTP服务器上。该过程大部分都是使用手工完成,靠人来识别那些是要上传得文件,但这种方式仅适用于升级不是很频繁,文件不是很多的情况。

2,采用专用的版本管理软件
    详细登记要升级的每个文件的基本信息和版本信息,通过版本来确定当前文件是否需要升级。由于要升级的文件可能比较多,工作量相当大,而且需要一套严格的版本管理流程,一旦版本管理出现问题就会引起严重的后果。借助于专用的版本管理软件,能够减轻版本管理的问题,但仍然有大量的文件信息需要录入。这种方式适用于需要严格进行版本管理的情况,通常情况下会为每一个版本准备一个“升级包”,将这个文件包上传到服务器后,再由人或者程序解压缩到网站目录。

    对于场景1,我们可以设计一个自动识别新修改文件的程序,将文件自动上传到FTP服务器,从而进一步减少工作量,对于场景2,由于强化了“版本管理”过程,似乎很难找到更优的解决方案。

 

程序升级为什么要使用版本管理?

  • 方便我们知道当前开发的是哪个时候,哪个客户的的程序;
  • 让客户知道当前软件的版本信息,了解新版本软件的新功能,从而决定是否购买我们的新软件;
  • 让老板知道,当前发布的软件有那些功能升级和那些bug被修复了;
  • 出于商业化考虑,推出XX个人版,XX企业版,XX旗舰版,面向不同的客户进行营销;
  • 。。。 。。。


    有很多理由然我们需要有“版本”这个东西,存在既是合理的,我们不用再去深究“版本”和“版本管理”这个词语,看看它们背后的机制是什么:
================推理过程:======================
因为
1,版本代表了新的功能,新的程序;
2,功能体现在对应的程序上;
3,程序就是一个个程序文件;

所以
版本对应一个个文件;

推论1:
不同的版本 区分 不同的文件;

推论2:
发布新版本(升级) 等于 发布新(增加或者新修改)文件;

推论3:
程序升级 等于 文件同步
说明:就是将客户方的程序升级为我们这边一样的程序,也就是双方程序文件的同步。

================================================


    大功告成,我们得到了“网站程序升级”也就是“文件同步”的过程,或者说它背后的机制,就是“文件同步”。
有了“文件同步”这个机制,我们明白“FTP”,仅仅是文件同步的工具而已,“版本管理”,也不过是文件同步的手段(措施)而已。
    有了这个简单的机制,我们还需要复杂的版本管理吗?当然对于市场,对于客户或者老板却是需求,而对于我们技术人员,我们不要在被它的表象蒙蔽了,“版本”这个东西不是我需要的,一边去吧!

    在WXXX项目中,第一次采用了“文件同步”的理念来做网站程序的升级,开发人员将测试通过的程序,重新编译一次,然后全部复制到一个发布服务器上,再运行一个文件同步发送端程序,将新的文件打包,使用邮件发送到客户方的邮箱中,客户方的文件同步接收端程序检查到新文件后,接收并解压缩到网站目录,结束文件同步操作,完成最终的“网站程序升级”功能。
    整个过程,仅需要将编译后的文件不管三七二十一复制到发布服务器即可,其它操作都由程序自动完成。文件的发送过程可以采用邮件,也可以采用FTP或者其它你喜欢的方式。

    有了“文件同步”这个机制,呈现升级是不是非常简单了呢?

    探寻背后的机制,才是解决复杂问题的有效手段!



推荐阅读
  • 本人新手,用Unity3D想做一个简单的赛车游戏,现在的问题是转弯的时候很容易出现翻车的情况,求解决思路比如说你的中心是在(0,0,0),你把他设置成(0,-1.0,0)之类的就可 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 本文讨论了在手机移动端如何使用HTML5和JavaScript实现视频上传并压缩视频质量,或者降低手机摄像头拍摄质量的问题。作者指出HTML5和JavaScript无法直接压缩视频,只能通过将视频传送到服务器端由后端进行压缩。对于控制相机拍摄质量,只有使用JAVA编写Android客户端才能实现压缩。此外,作者还解释了在交作业时使用zip格式压缩包导致CSS文件和图片音乐丢失的原因,并提供了解决方法。最后,作者还介绍了一个用于处理图片的类,可以实现图片剪裁处理和生成缩略图的功能。 ... [详细]
  • 集成电路企业在进行跨隔离网数据交换时面临着安全性问题,传统的数据交换方式存在安全性堪忧、效率低下等问题。本文以《Ftrans跨网文件安全交换系统》为例,介绍了如何通过丰富的审批流程来满足企业的合规要求,保障数据交换的安全性。 ... [详细]
  • javaftp上传,javaftp下载文件
    本文目录一览:1、javaftp上传5G以上大文件,怎么做 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • HTML学习02 图像标签的使用和属性
    本文介绍了HTML中图像标签的使用和属性,包括定义图像、定义图像地图、使用源属性和替换文本属性。同时提供了相关实例和注意事项,帮助读者更好地理解和应用图像标签。 ... [详细]
  • 恶意软件分析的最佳编程语言及其应用
    本文介绍了学习恶意软件分析和逆向工程领域时最适合的编程语言,并重点讨论了Python的优点。Python是一种解释型、多用途的语言,具有可读性高、可快速开发、易于学习的特点。作者分享了在本地恶意软件分析中使用Python的经验,包括快速复制恶意软件组件以更好地理解其工作。此外,作者还提到了Python的跨平台优势,使得在不同操作系统上运行代码变得更加方便。 ... [详细]
  • 计算机网络计算机网络分层结构
    为了解决计算机网络复杂的问题,提出了计算机网络分层结构。计算机网络分层结构主要有OSI7层参考模型,TCPIP4层参考模型两种。为什么要分层不同产商 ... [详细]
  • HTTP协议相关的网络经典五层模型
    网络通信相关概念的讲解–网络协议分层(经典五层模型)在我们了解HTTP相关内容之前我们先来了解一下“网络协议分层”相关内容,因为这个是我们了解HTTP相关内容的前提条件;大家有一 ... [详细]
author-avatar
天旺店浪莎内衣_318
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有