代码管理

什么是云原生应用

烈酒焚心 提交于 2020-03-19 17:38:19
3 月,跳不动了?>>> 作者:成富,资深架构师,拥有多年一线开发经验,曾就职于IBM,后移居海外创业,现任公司首席软件工程师,负责基于微服务架构的云原生产品研发。资深技术作家,著有多部中英文技术书籍:《深入理解 Java7 》《Exploring Java9》等。 *本文经作者授权整理发布,内容选自 《云原生微服务架构实战精讲》 云原生应用的概念 顾名思义,云原生应用的概念由云和原生两个部分组成,云在这里指的是云平台,也就是平台即服务(Platform as a Service,PaaS);原生应用指的是专门针对云平台而设计和实现的,充分利用了云平台的特性。应用的微服务可以专注于实现业务逻辑,而把微服务架构的复杂度交给云平台来解决。 原生这个词在软件开发中有它独特的含义。原生通常意味着高效和难以移植,也意味着针对特定的平台而设计,可以充分利用平台的特性,因此运行起来非常高效;同样意味着与特定平台的深度绑定,很难移植到其他平台。云原生应用同样具有这两个特征,对于云原生应用来说,难移植并不是一个问题,毕竟迁移到云平台之后,不会再想迁移回去。 云原生应用的特征 与其他应用相比,总结起来,云原生应用有如下 15 个特征。 1、单一代码库 云原生应用必须有单一的代码库,并在版本管理系统中进行追踪。单一代码库可以是一个版本库,也可以是共享同一根目录的多个版本库,其重要性在于每一个代码提交

Maven的安装、配置及使用入门

倖福魔咒の 提交于 2020-03-18 12:21:01
某厂面试归来,发现自己落伍了!>>> 本书代码下载 大家可以从我的网站下载本书的代码:http://www.juvenxu.com/mvn-in-action/,也可以通过我的网站与我取得联系,欢迎大家与我交流任何关于本书的问题和关于Maven的问题。 咖啡与工具 本书相当一部分的内容是在苏州十全街边的Solo咖啡馆完成的,老板Yin亲手烘焙咖啡豆、并能做出据说是苏州最好的咖啡,这小桥流水畔的温馨小 屋能够帮我消除紧张和焦虑,和Yin有一句没一句的聊天也是相当的轻松。Yin还教会了我如何自己研磨咖啡豆、手冲滴率咖啡,让我能够每天在家里也能享受 香气四溢的新鲜咖啡。 本书的书稿是使用Git和Unfuddle(http://unfuddle.com/)进行管理的,书中的大量截图是通过Jing(http://www.techsmith.com/jing/)制作的。 JuvenXu 2010年10月于苏州Solo咖啡 致谢 感谢费晓峰,是你最早让我学习使用Maven,并在我开始学习的过程中给予了不少帮助。 感谢Maven开源社区特别是Maven的创立者Jason Van Zyl,是你们一起创造了如此优秀的开源工具,造福了全世界这么多的开发人员。 感谢我的家人,一年来,我的大部分原来属于你们的业余时间都给了这本书,感谢你们的理解和支持。 感谢二少、Garin、Sutra、JTux、红人

CVS版本控制-冲突解决方法

﹥>﹥吖頭↗ 提交于 2020-03-13 19:50:16
一直使用MyEclipse进行项目开发,利用CVS进行版本控制,经常会遇到冲突,一直不太了解产生原因及解决方法,经过网上一番查找资料,终于弄懂了,mark一下! 首先是冲突产生的原因,说来很简单:A、B同时下载服务器上同一文件,A修改完后同步到服务器,此时B也完成修改后,要将文件同步到服务器上,此时服务器和本地文件都发生改变,所以就会产生冲突。 解决办法就是人工手动检查错误,将服务器上的改动添加到本地,再将本地的改动同步到服务器,即可完成版本更新。其中要用到一个功能:mark as merged。作用就是忽略冲突,将本地文件直接覆盖掉服务器上的文件。 此处粘上一些我查到的有用的文章,以供查阅! ZZ1:http://topic.csdn.net/u/20120616/21/a672a836-ecac-4272-a69b-3b2dfce3829d.html 用了mark as merged后,再commit还是把别人的东西覆盖掉了。 最后,做了实验发现如下问题。 1.有一个test文档。其中,内容是 aaa 2.A加上一行: aaa bbb 3.同时,B也加了一行: aaa ccc 4.B commit 5.A 同步test文件,出现红色的双箭头,说明本地和服务器都有更新。 6.A 采用 mark as merged命令。之后,test文件变成灰色的向右箭头

版本控制的发展历史

帅比萌擦擦* 提交于 2020-03-12 07:46:40
  早在2000年,CollabNet, Inc.就开始召集开发人员开发CVS的替代品。CollabNet 提供一套名为SourceCast协同工作套件,其中的一部分组件是版本控制。虽然SourceCast使用CVS作为其最初的版本控制系统,但是CVS 的种种限制从一开始就处处可见,最后CollabNet明白必须要找到一个更好的解决方案。不幸的是,至少在免费license中,因为没有更好的选 择,CVS已经广泛成为了开源世界中事实上的标准。所以CollabNet决定开发一个新的版本控制系统,保留CVS的基本特性但去处CVS的bug和不 好的特性。   在2000年2月,他们联系《使用CVS开发开源项目》(Open Source Development with CVS)(Coriolis, 1999)的作者Karl Fogel,并征求了他是否愿意在这个新的项目中担任一个角色。巧合的是,当时Karl已经和他的朋友Jim Blandy讨论了一个关于新的版本控制系统的设计。在1995年,这两人就成立了Cyclic Software,一个提供CVS的商业支持的软件公司。虽然他们经营商业服务,但是仍然在每天都在工作中使用CVS。使用CVS的挫折感使得Jim认真 思考更好的方法来管理数据,不但确定名字为“Subversion”,而且完成了Subversion档案库的基础设计。   当

springcloud 微服务 分布式 Activiti6 工作流 vue.js html 跨域 前后分离 项目源码

浪尽此生 提交于 2020-03-11 13:47:22
1.代码生成器: [正反双向](单表、主表、明细表、树形表,快速开发利器) freemaker模版技术 ,0个代码不用写,生成完整的一个模块,带页面、建表sql脚本、处理类、service等完整模块 2.多数据源: (支持同时连接无数个数据库,可以不同的模块连接不同数的据库)支持N个数据源 3. 阿里数据库连接池 druid ,安全权限框架 shiro( 菜单权限和按钮权限 ) , 缓存框架 ehcache 4. 代码编辑器, 在线模版编辑,仿开发工具编辑器 5.调用摄像头拍照 自定义裁剪编辑头像,头像图片色度调节 6.websocket 及时站内信并声音提醒、实时在线管理、websocket及时刷新页面(完胜ajax技术) 7.redis存储分布式缓存 自windows redis 绿色版,方便开发者本地开发测试 ----------------------------------------------------------------------------------------------------------------- 服务介绍 ( 各个服务单独运行,高可用、低耦合 ) 一:springcloud服务 ---------------------------------------------------------------------------------

VUE实现Studio管理后台(完结):标签式输入、名值对输入、对话框(modal dialog)

假装没事ソ 提交于 2020-03-10 09:51:13
一周的时间,几乎每天都要工作十几个小时,敲代码+写作文,界面原型算是完成了,下一步是写内核的HTML处理引擎,纯JS实现。本次实战展示告一段落,等RXEditor下一个版本完成,再继续分享吧。 剩下的功能:标签式输入、名值对输入、对话框(modal dialog),边框输入,全部完成。 css class输入,样式跟属性输入,效果: 对话框(model dialog效果) 前几期功能效果总览: 标签输入框用来输入CSS class,名字一如既往的好听,就叫RxLabelInput吧。 输入值一个数组,因为有多处要操作数组,增、删、改、克隆、比较等。比较好的一个方式是把Array类用继承的方式重写一下,把这写方法加到里面。但是RXEidtor内核用纯JS实现,并放在一个iFrame里面,它跟主界面只能通过windows message传递数据,带有方法的类无法作为消息被传递,暂时先不用这个方法,只把相关功能抽取成独立函数,放在valueOperate.js里面。 如果以后数组操作量更大,再考虑转成一个通用的数组类。 前几期介绍过,使用计算属性changed来标识数据是否被修改过,changed计算属性内部,需要比较两个值是否相等,普通字符串不会有问题,要比较数组用这样的方式最方便,先排序、转成字符串、比较字符串: aValue.sort().toString() === bValue

实验一 GIT代码版本管理

不羁岁月 提交于 2020-03-09 12:25:30
一、实验目的 (1)了解分布式分布式版本控制系统的核心机理; (2)熟练掌握git的基本指令和分支管理指令; 二、实验内容 (1)安装git (2)初始配胥git,git init git status指令 (3)掌握git log ,git add ,git diff指令 (4)掌握git tag git branch, git commit指令 (5)掌握git revert指令 三、实验记录 1 .初始配置 Git # 设置你的 Git 用户名 git config --global user.name "<Your-Full-Name>" # 设置你的 Git 邮箱 git config --global user.email "<your-email-address>" # 确保 Git 输出内容带有颜色标记 git config --global color.ui auto # 对比显示原始状态 git config --global merge.conflictstyle diff3 git config --list ( 该处操作在输入用户名和邮箱时漏掉空格,后面操作已解决 ) 2.从头创建仓库 (1)创建项目目录 、 git init 、克隆 创建一个目录se2020-git-course,在该目录中创建另一个目录 new-git-project,使用 cd

VUE实现Studio管理后台(十):OptionBox,一个综合属性输入界面,可以级联重置

一笑奈何 提交于 2020-03-08 16:44:55
为了便于阅读代码,已经把测试数据分离出来,放在了mock目录下: 阅读代码的话,稍微留意一下就好。本次介绍RXEditor界面最重要的部分,属性输入组件,该组件可以显示是否有数据被修改,还可以批量重置到缺省值,效果如下: 这个界面是动态构建的,根据Json数据,动态构建输入界面。我之前做过一个PHP larvel+Vuetify的框架,也是用这个原理,PHP段代码构造JSON数据,VUE代码根据数据动态构造输入界面。我用那个框架做了好几个网站和公司自己的订单管理系统,但是代码需要优化的地方不少,我自己用起来很方便,离开源发布还有些距离,框架的名字叫Vular,GIthub地址:https://github.com/vularsoft/vular,感兴趣的可以看看,等完成RXEditor,就继续这个框架,给自己加的工作太多了,时间不够。 本次实现的要比这个框架简单好多,原理相同。要理解代码,需要明白页面元素的结构及命名: 整个输入组件叫OptionBox,这个控件可以输入各种属性。OptionBox下包含若干OptionGroup,每个OptionGroup就是一个手风琴折叠的子项,OptionBox是一个手风琴式折叠控件(该控件的实现方式,请参看以前的文章),OptionGroup下包含多个RxInputRow,每个RxInputRow包含一个输入控件跟一个标签

Python 运行异常管理

女生的网名这么多〃 提交于 2020-03-08 10:45:07
1 前言 Python使用被称为 异常 的特殊对象来管理程序执行期间发生的错误。每当发生让Python不知所措的错误时,它都会创建一个异常对象。 如果你编写了处理该异常的代码,程序将继续运行;如果你未对异常进行处理,程序将停止,并显示一个traceback,其中包含有关异常的报告。 异常是使用try-except代码块处理的。try-except代码块让Python执行指定的操作,同时告诉Python发生异常时怎么办。 使用了try-except代码块时,即便出现异常,程序也将继续运行。 2 运用try-except代码块 我们知道,除数是不能为0的,当程序员误将除数设置为0时,将会出现ZeroDivisionError错误。 实现代码: 1 try: 2 print(6/0) 3 except ZeroDivisionError: 4 print("you can not divide by zero!") 运行结果: you can not divide by zero! 工作原理: 将可能出现错误的代码放在try代码块中,如果运行无错误,将跳过except代码块;若导致了错误,Python将查找except代码块,并执行其中的代码。 这样一来,当运行出错时,用户看到的便是一条友好的错误信息。 若try-except后面还有其他代码,那么程序将接着运行。 3 运用try

VUE实现Studio管理后台(八):用右键菜单contextmenu,编辑树形结构

℡╲_俬逩灬. 提交于 2020-03-07 19:13:16
RXEdior预设会有文件管理功能,但是灵活性需求不大,目前的设想是文件夹不允许修改,只允许增删改文件。基于这样的设想,把界面实现成这个效果: 这个功能并不是一个通用功能,并且我们做的代码,也没有按照类库的标准要求,这种编辑功能实现有些复杂,用了大量的js事件,代码不是很容易读。后期这个功能可能会有大的变化,所以我也没有让这些代码变的更优雅的动力。 本篇作文就不详细展示代码,大致说说我的实现思路,以及编写过程中踩到的坑。需要源码的朋友,可以直接从Github下载。 1、这个项目中,两个树用的是同一套代码,添加editable属性props加以区分。 <NodeTree v-model="files" :openIcon="'fas fa-folder-open'" :closeIcon="'fas fa-folder'" :editable = 'true' > </NodeTree> 2、给节点数据添加三个变量,功能见注释: isFolder:true,//不能被编辑,只有该属性为True时可以新建子节点 leafIcon:'far fa-file-code',//子节点图标,构建新节点时使用 locked:true,//颜色变淡,不能被选中 3、弹出右键菜单,在DIV上监听事件contextmenu: @contextmenu.prevent = 'onContextMenu'