敏捷开发

201671010412 郭佳 英文文本统计分析

自古美人都是妖i 提交于 2020-11-06 05:40:14
项目 内容 项目名称 实验四 英文文本统计分析 Github的仓库主页 https://github.com/HaiYou667/WordCount_Analysis 所属课程 http://www.cnblogs.com/nwnu-daizh/ 作业要求 实验四 软件工程结对项目 课程学习目标 体验两人合作,练习结对编程;<br>掌握Github上增量发布软件的操作方法 <br> #任务一: 点评对象 : 201671010434王雯涵 点评作业的地址 : https://www.cnblogs.com/han0114/p/10562516.html 点评内容 : 博文的结构基本符合实验要求。博文内容:存在一些小问题:在设计实现虽然列出了功能设计个程序流程图,但是对于流程图中的方法没有必要的说明。只列出了psp,如果能对PSP进行分析和思考就更好了。从你的psp可以看出,在具体编码阶段耗费了大量时间,需求分析,具体编码和测试的实际用时都超出预期很多,这说明在这些开发阶段还有待提高。之前下载运行了你的个人项目代码,代码还算规范,功能方面除了柱状图其他也基本符合要求,希望后期能得到完善。 点评心得: 从我的博文和结对队友王雯涵的项目对比可以看出,我们对于设计阶段的内容都不够详细,应该更具体的描述该系统的设计,并且对涉及到的类或方法进行要进行必要说明。在具体编码中,我的代码不够规范

测试攻城狮必备技能点!一文带你解读DevOps下的测试技术

馋奶兔 提交于 2020-11-05 14:58:08
【摘要】 本文将从DevOps模式下对测试人员的活动的变化,以及常用的测试技术层面进行解读。 项目的软件开发模式主要经历瀑布模型、敏捷开发和DevOps这几个阶段,其中DevOps主要解决开发和运维、运营之间的隔阂,更强调自需求设计至生产部署的端到端协同运作,更强调精益、高效;更强调想尽办法剔除每个环节的浪费,极致追求每个环节的高生产率,达到快速、高质量上线的目的。本文将从DevOps模式下对测试人员的活动的变化,以及常用的测试技术层面进行解读。 1、为什么会有DevOps? 项目的软件开发模式主要经历了以下几个阶段: 瀑布模型解决了分工协作困难的问题,但是一年1~2次的发布流程太慢,且无法满足日益变化的需求变更。 敏捷开发解决了需求频繁变更、上线慢的问题。但是未解决开发和运维的鸿沟,甚至给开发和维护之间增加了非常多困难和争议。 DevOps在敏捷的基础上,从E2E的角度来考量。主要解决开发和运维、运营之间的隔阂,更强调自需求设计至生产部署的端到端协同运作,更强调精益、高效;更强调想尽办法剔除每个环节的浪费,极致追求每个环节的高生产率,达到快速、高质量上线的目的: 2、DevOps模式给软件测试带来了哪些变化: 一个DevOps活动的流程如上图所示,可以看到测试已经融入到DevOps流程中的一环,DevOps模式下的测试流程也会发生变化。以我们团队为例

微服务API设计的实践与思考总结

廉价感情. 提交于 2020-11-05 11:03:33
随着微服务的越来越流行,越来的越多的公司开始实行微服务架构,相对于单一应用架构,微服务将复杂性拆分并且打散到一个个粒度更加细分的应用中,极大了减少了开发中单个服务的复杂性,开发人员只需要面向专注单一业务场景编程,从技术开发角度,单一服务代码量上减少很多,从业务角度上,业务复杂性的降低降低了需求的沟通成本,然而,整体业务复杂性依然存在,当我们需要接入或者依赖其他服务时,通常作为接入方来说,我们不需要深入了解服务提供方的业务,此时API成为了开发人员间的沟通语言。良好的API设计,能极大的减少沟通成本,甚至有时候可以代替文档,尤其是对于基础性服务来说,服务的可扩展性有时候体现在API的可扩展性,我曾经参与过一个基础业务微服务的业务升级,由于旧版本的API划分不够清晰,部分API存在重复性,后面不得不对大部分API进行重构(替换为新版本的API),仅仅在服务消费方升级这个阶段就持续1-2个月之久,在这个过程中也不断对API设计中存在的一些问题以及应该遵循哪些原则进行了一些思考。 API先行 在敏捷开发的大浪潮下,产品上通常要求快速迭代,面对一个新的需求,如果需要开发新的接口,通常在表结构完成设计后,开发人员就需要完成API设计并交付消费方(即服务的调用方或者依赖方,文中其余部分均表示此含义),在技术联调前,消费方可以Mock接口来完成调试。所以通常来说,API先与服务交付,之后再完成编码

关于微服务架构的个人理解(一)

有些话、适合烂在心里 提交于 2020-11-02 18:19:50
前言:这段时间项目组正在加班加点的进行基于现有单体应用的微服务架构改造。微服务是一种架构概念,这个概念是2012年出现的,作为加快Web和移动应用程序开发进程的一种方法,2014年开始受到各方的关注,而2015年,可以说是微服务的元年;越来越多的论坛、社区、blog以及互联网行业巨头开始对微服务进行讨论、实践,可以说这样更近一步推动了微服务的发展和创新。而微服务的流行,Martin Fowler功不可没。 文章目录 什么是微服务架构 微服务的出现与发展 传统开发模式与微服务的区别 微服务的实践理论 什么是微服务架构 概念 :微服务架构是一种架构理念,是指将功能分解到离散的各个服务当中,从而降低系统的耦合性,并提供更加灵活的服务支持。把一个大型的单体应用程序和服务拆分为数个或数十个的微小型服务,它可扩展单个组件而不是整个的应用程序堆栈,从而满足服务等级协议。 定义 :围绕业务领域组件来创建应 用,这些应用可独立地进行开发、管理和迭代。在分散的组件中使用云架构和平台式部署、管理和服务功能,使产品交付变得更加简单。 本质: 微服务的本质,是指用一些功能比较明确、业务比较精炼的服务去解决更大、更实际的问题 。 微服务的出现与发展 微服务(Microservice)这个概念是2012年出现的,作为加快Web和移动应用程序开发进程的一种方法,2014年开始受到各方的关注,而2015年

DevOps与Kubernetes 、容器的关系

怎甘沉沦 提交于 2020-11-01 14:35:05
近两年,随着容器、Kubernetes 等技术的兴起,DevOps 这个概念被广泛提及并被大量使用。 本文将会从以下几个方面着手,结合实验展现的方式,让读者真正理解 DevOps 的含义。 DevOps 产生的背景 DevOps 与容器、Kubernetes 之间的关系 DevOps 的常用工具 DevOps 是什么 DevOps 中的 Dev 指的 Development,Ops 指的是的 Operations,用一句话来说 DevOps 就是打通开发运维的壁垒,实现开发运维一体化。 从瀑布式开发到敏捷开发 谈到 DevOps 的发展史,我们需要先谈一下敏捷开发。 首先,敏捷开发是面向软件的,而软件依赖于计算硬件。我们知道,世界上第一台计算机是在 1946 年出现的。因此,软件开发相对于人类历史而言,时间并不长。相对于软件开发方法论的掌握,人们更擅长于工程学,如盖楼、造桥等。为了推动软件开发,1968 年,人们将工程学的方法应用到软件领域,由此产生了软件工程。 软件工程的方式有其优点,但带来了不少问题。最关键一点是:软件不同于工程。通过工程学建造的大桥、高楼在竣工后,人们通常不会对大桥高楼的主体有大量使用需求的变更;但软件却不同。对于面向最终用户的软件,人们对于软件功能的需求是会不断变化的。在瀑布式开发的模式下,当客户对应用有变化的需求时,软件厂商得重新开发软件

DevOps工程师的必备技能清单

烂漫一生 提交于 2020-11-01 06:25:06
在公司成立之前,我们团队就已经开始应用 DevOps 实践,而我个人,早在十年前,在另一家公司担任系统管理员的时候,就第一次接触到了这种新鲜的思维方式。那个时候,还没有 DevOps 这种标准说法,但是当时实践的人也自己摸索出了一些相关的概念与原则。 持续集成; 自动交付; 每位团队成员都对产品负有责任; 与客户直接沟通; 收集并分析业务 / 应用程序指标; 说明文档等; 后来证明以上这一切都是对敏捷倡议中各项实践的逻辑扩展,而催生出这些方法的温床,则是开发者不再单纯为本地主机编写代码这一基本前提。 Atlassian 提出的 DevOps 原理 由 Atlassian 提出的 DevOps 模式直到今天仍然非常重要。从本质上讲,其代表着产品开发与交付的现代化周期,同时涵盖产品启动之后的运作流程。 前 DevOps 时代:管理员与开发者之间的鸿沟 长久以来,产品的运营与开发工作彼此割裂。这条鸿沟的一端是勤劳朴实的开发人员,另一端则是开发者眼中那些如同行尸走肉般的系统管理员。系统管理员不参与开发,也不会与开发团队沟通,他们通常只是直接拿到代码包,然后尝试在某个位置加以运行。每一次运行尝试都痛苦万分,管理员们需要花几天时间慢慢查看日志、寻找种种难以理解的错误、分析数据库查询、陷入无穷无尽的 strace 过程等。而很多时候的事实都证明,只需要定义一项新的环境变量或者添加一个新参数

设计微服务的最佳实践

偶尔善良 提交于 2020-10-31 00:41:10
你是否曾想过, 什么是微服务? 以及大规模的互联网行业,例如社交,电商,物流,金融等领域,如何使用微服务构建互联网应用以满足用户需求。 要了解 微服务是什么 ,你必须了解如何将单体应用程序,拆解为独立打包和部署的微型应用程序。本文章将帮助你清晰化的理解,开发者如何根据需求使用微服务来构建他们的应用程序。 下面,从以下几个维度进行阐述 为何选择微服务? 什么是微服务? 微服务架构的功能 微服务架构的优点 设计微服务的最佳实践 1,为何选择微服务? 现在,在我介绍微服务之前,让我们看看在微服务之前流行的架构,即 单体架构。 通俗地说,您可以说它类似于一个大容器,在这个容器中,应用程序的所有软件组件被紧密地打包并部署在一起。 罗列一下单片架构的挑战: 不灵活 - 单片应用程序无法使用不同的技术构建 不可靠 - 即使系统的某个功能不起作用,整个系统也不起作用 不可扩展 - 由于每次需要更新应用程序时都无法轻松扩展应用程序,因此必须重建整个系统 妨碍持续开发 - 无法同时构建和部署应用程序的多个功能 缓慢的开发 - 单体应用程序的开发需要花费大量的时间来构建,因为每个功能都必须一个接一个地构建 不适合复杂的应用程序 - 复杂应用程序的功能具有紧密耦合的依赖关系 上述挑战是导致微服务发展的主要原因。 2,什么是微服务? 微服务 ,又称微服务架构,是一种架构风格

聊一下《技术力量-一线技术团队成功启示录》

扶醉桌前 提交于 2020-10-29 06:20:21
一、前言 最近有幸拜读了《技术力量-一线技术团队成功启示录》的第一篇-Team Leader团队管理/组织发展,该篇从组织架构、团队管理、效能提升、敏捷转型这四个方面展示了10位来自不同行业、不同领域的专家的不同看法,貌似形态各异,实则殊途同归。 二、康威定律 梅尔.康威于1968年提出的“ 任何组织在设计一套系统时,所交付的设计方案在上都与该组织的沟通结构保持一致。 ”,这句话就是后来的康威定律。 从微软的Office性能团队项目经理杨珂的分享中看到之所以其性能团队能够成功,我看到的是其团队成员的专业技能外,还有正确的团队组织结构及交互方式。他的OPERF团队会要求每个其他应由团队(如PPT、Excel)要指定一两个“性能联系人”,这样OPERF团队就能跟每个应用团队有机建立了“连接”。反思回团队内部,目前整个渠道条线中每个渠道团队基本上都是各自为政的,这样的弊端就是即使架构组已经定义了标准的技术体系与架构选型,但是在每个团队的实际项目过程中的细节实现会更多的站在自己团队去思考,即可能会造成重复建设、平台建设进度慢、平台通用化程度不高等问题。因为就算是渠道是个性化的,但是不同渠道还是有一定的共性(如用户中心、推送中心、进销存中心等),而这些共性则构成了平台化建设的必要性。参考了阿里的共享服务团队的建设经验,我觉得在渠道端需要做两个事情: 重新要针对渠道系统进行整体的业务流程

程序员才能看懂的动图

依然范特西╮ 提交于 2020-10-29 04:57:55
图片来源于网络,如有侵权请联系删除! 「1」 当我演示一个功能, 但它没有按预期进行时。 「2」 Bug 变 Feature, 这招简直太帅了! 「3」 CPU新用途:烤肉 隔着屏幕都闻到一阵香气 「4」 当我修复一个隐藏Bug时 然后,陷入了死循环中.... 「5」 当两个实习生结对编程的时候 「6」 资深工程师: 左脚程序继续运行,右脚程序调试 「7」 当最棒的程序员遇见了Bug, 就是遇上最配合的Bug。 但其实一般角色是反过来的...... 「8」 当我的代码运作正常的时候 我没看到那堆警告~ 「9」 上线前加了一个小特性,结果...... 玛德!一堆bug啊,快跑 「10」 一直认为写代码的自己有点小帅 不,是非常帅!! 「11」 C++ 中的递归 「12」 据说这是很多公司的办事流程 每个人都在积极努力啊 「13」 前程序员离职后没人想接的代码 半路接的什么都看不懂 「14」 Java VS C# 「15」 当项目经理突然看到我的屏幕时 写bug呢? 「16」 当你整点下班正开心的时候 以为没人发现,接着就撞见了老板 「17」 这个反应让我想到了IE 真是有点尴尬啊 「18」 忘记定义关键变量的结果 「19」 网站开发好了, 试着运行的时候 「20」 对程序员最好的安慰方式, 怎么办,我就缺个女朋友。 【回复关键词即可获取资源 】 | 小程序 | Java |

32个程序员萌翻全场的瞬间!

喜你入骨 提交于 2020-10-28 16:41:37
来源:大数据DT 本文 多图 ,建议 阅读8分钟 本文为你介绍程序员萌翻全场的瞬间! 有些职业的人拥有天然萌的属性,比如……程序员。为啥?因为…… “程序员”即计算机程序编制员(真正的名字是:程序猿)。 三次元 的程序员多为加班狗,如果还是男性的话则 100% 是加班到死的资深加班狗。某些还兼备“怪蜀黍”属性。 但在二次元中,程序员也可以是萌妹子和御姐。 ▲《小林家的龙女仆》中的二次元Python程序媛小林 由于轻小说和漫画作者出于省事(因为他们不懂电脑)等的目的,一般具有程序员属性的角色还有多项其他技能,是全能的 技术宅 。实际上大神不可能从软件到硬件样样精通! 程序员并不学习修理电脑 ,所以电脑坏了不一定会弄。 为了防止写出的代码出现一些奇奇怪怪的Bug,程序员有时会 女装 。 下面这32个泪流满面萌翻全场的瞬间,你一定经历了至少一个。 1. 公司实习生找 Bug 2. 在调试时,将断点设置在错误的位置 3. 当我有一个很棒的调试想法时 4. 偶然间看到自己多年前写的代码 5. 当我第一次启动我的单元测试时 6. 数据库的Delete语句忘了使用限定词where... 7. 明明是个小bug,但就是死活修不好...... 8. 当我尝试调整生产数据库中的一些东西时 9. 好像真的没人发现我产品里的bug...... 10. 下班前我还有一项任务没有完成 11.