3 lynchyueliu

已隐藏 已隐藏

Reserach Interests:Humanoid Robot,Artifical Intelligence,Mathmatic,Physics. Job:System Tester Email:lynchyueliu

等级
TA的排名 26w+

八大排序算法使用python实现

一、冒泡排序冒泡排序算法的运作如下:比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。以上节选自维基百科代码实现:def bubble_sort(numberlist):...

2020-02-26 13:37:21

根因分析初探:一种报警聚类算法在业务系统的落地实施

背景众所周知,日志是记录应用程序运行状态的一种重要工具,在业务服务中,日志更是十分重要。通常情况下,日志主要是记录关键执行点、程序执行错误时的现场信息等。系统出现故障时,运维人员一般先查看错误日志,定位故障原因。当业务流量小、逻辑复杂度低时,应用出现故障时错误日志一般较少,运维人员一般能够根据错误日志迅速定位到问题。但是,随着业务逻辑的迭代,系统接入的依赖服务不断增多,引入的组件不断增多,当系统...

2020-02-25 16:40:02

美团容器平台架构及容器技术实践

本文根据美团基础架构部/容器研发中心技术总监欧阳坚在2018 QCon(全球软件开发大会)上的演讲内容整理而成。背景美团的容器集群管理平台叫做HULK。漫威动画里的HULK在发怒时会变成“绿巨人”,它的这个特性和容器的“弹性伸缩”很像,所以我们给这个平台起名为HULK。貌似有一些公司的容器平台也叫这个名字,纯属巧合。2016年,美团开始使用容器,当时美团已经具备一定的规模,在使用容器之前就已...

2020-02-25 16:36:31

Docker系列之二:基于容器的自动构建

自动构建系统是从美团的自动部署系统发展出来的一个新功能。每当开发人员提交代码到仓库后,系统会自动根据开发人员定制的构建配置,启动新的Docker容器,在其中对源代码进行构建(build),包括编译(如Java、C++和Go)、预处理(如Javascript和CSS)、压缩(如图片)等操作,生成最终需要上线的程序包。美团的代码发布系统有中央控制节点,负责代码的拉取、应用的构建和上传等任务。随着业务...

2020-02-25 16:28:20

Docker系列之一:入门介绍

Docker简介Docker是DotCloud开源的、可以将任何应用包装在Linux container中运行的工具。2013年3月发布首个版本,当前最新版本为1.3。Docker基于Go语言开发,代码托管在Github上,目前超过10000次commit。基于Docker的沙箱环境可以实现轻型隔离,多个容器间不会相互影响;Docker可以自动化打包和部署任何应用,方便地创建一个轻量级私有Paa...

2020-02-25 16:27:32

Java内存访问重排序的研究

什么是重排序请先看这样一段代码1:public class PossibleReordering {static int x = 0, y = 0;static int a = 0, b = 0;public static void main(String[] args) throws InterruptedException {Thread one = new Thread(new ...

2020-02-25 16:21:26

Android单元测试研究与实践

处于高速迭代开发中的Android项目往往需要除黑盒测试外更加可靠的质量保障,这正是单元测试的用武之地。单元测试周期性对项目进行函数级别的测试,在良好的覆盖率下,能够持续维护代码逻辑,从而支持项目从容应对快速的版本更新。单元测试是参与项目开发的工程师在项目代码之外建立的白盒测试工程,用于执行项目中的目标函数并验证其状态或者结果,其中,单元指的是测试的最小模块,通常指函数。如图1所示的绿色文件夹即...

2020-02-25 16:20:26

Java虚拟机(JVM)

Java 内存区域与内存溢出异常1.1 运行时数据区域根据《Java 虚拟机规范(Java SE 7 版)》规定,Java 虚拟机所管理的内存如下图所示。1.1.1 程序计数器内存空间小,线程私有。字节码解释器工作是就是通过改变这个计数器的值来选取下一条需要执行指令的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖计数器完成如果线程正在执行一个 Java 方法,...

2020-02-24 17:11:21

IBM InfoSphere DataStage and InfoSphere QualityStage, Version 8.5 space

For server jobs, a job with multiple Java Pack stages (Java Client and Java Transformer) can load as many JVMs as the number of Java Pack stages in the job. The number of JVMs will vary. For parallel ...

2020-02-24 16:21:04

构建有效的单元测试

构建有效的单元测试单元测试是应用测试策略中的基本测试。通过针对代码创建和运行单元测试,您可以轻松验证各个单元的逻辑是否正确。在每次编译后运行单元测试可帮助您快速捕捉和修复由应用的代码更改导致的软件回归。单元测试通常以可重复的方式运用尽可能小的代码单元(可能是方法、类或组件)的功能。当您需要验证应用中特定代码的逻辑时,应构建单元测试。例如,如果您正在对某个类进行单元测试,则测试可能会检查该类是否...

2020-02-24 16:12:03

分析 JUnit 框架源代码

概述在测试驱动的开发理念深入人心的今天,JUnit 在测试开发领域的核心地位日渐稳定。不仅 Eclipse 将 JUnit 作为默认的 IDE 集成组件,而且基于 JUnit 的各种测试框架也在业内被广泛应用,并获得了一致好评。目前介绍 JUnit 书籍文章虽然较多,但大多数是针对 JUnit 的具体应用实践,而对于 JUnit 本身的机制原理,只是停留在框架模块的较浅层次。本文内容完全描述 ...

2020-02-24 16:06:47

著名网站之架构篇,facebook、amazon、google

Here are some of the favorite posts on HighScalability…YouTube ArchitectureHilarious Video: Relational Database Vs NoSQL FanboisPlenty Of Fish ArchitectureGoogle ArchitectureHow Twitter Stores 25...

2020-02-24 13:49:38

ScienceRobotics

2020-02-24 11:58:24

姚班核心课程

核心课程“计算机科学实验班”为学生开设25门专业课程(其中包括5门核心课程和可选修课程)(第1~6学期,每学期开设1~5门课程),以强化科学基础训练,其它课程按照计算机科学实验班的指导性教学计划中规定的课程要求学习。第四学年(第7、8学期)学生将在清华或各著名科研院所从事实际专题研究与实践。培养过程以在清华大学为主,优秀学生将有机会派往国外参加国际交流及培训。...

2020-02-24 11:54:56

基于Flume的美团日志收集系统(二)改进和优化

在《基于Flume的美团日志收集系统(一)架构和设计》中,我们详述了基于Flume的美团日志收集系统的架构设计,以及为什么做这样的设计。在本节中,我们将会讲述在实际部署和使用过程中遇到的问题,对Flume的功能改进和对系统做的优化。1 Flume的问题总结在Flume的使用过程中,遇到的主要问题如下:a. Channel“水土不服”:使用固定大小的MemoryChannel在日志高峰时常报队...

2020-02-23 21:06:34

基于Flume的美团日志收集系统(一)架构和设计

背景美团的日志收集系统负责美团的所有业务日志的收集,并分别给Hadoop平台提供离线数据和Storm平台提供实时数据流。美团的日志收集系统基于Flume设计和搭建而成。《基于Flume的美团日志收集系统》将分两部分给读者呈现美团日志收集系统的架构设计和实战经验。第一部分架构和设计,将主要着眼于日志收集系统整体的架构设计,以及为什么要做这样的设计。第二部分改进和优化,将主要着眼于实际部署和使...

2020-02-23 21:05:45

Golang事务模型

序言笔者在《软件设计的演变过程》一文中,将通信系统软件的DDD分层模型最终演进为五层模型,即调度层(Schedule)、事务层(Transaction DSL)、环境层(Context)、领域层(Domain)和基础设施层(Infrastructure),我们简单回顾一下:ddd-layer-with-dci-dsl.png调度层:维护UE的状态模型,只包括业务的本质状态,将接收到的消息派发...

2020-02-23 13:31:54

DDD分层架构的三种模式

引言在讨论DDD分层架构的模式之前,我们先一起回顾一下DDD和分层架构的相关知识。DDDDDD(Domain Driven Design,领域驱动设计)作为一种软件开发方法,它可以帮助我们设计高质量的软件模型。在正确实现的情况下,我们通过DDD完成的设计恰恰就是软件的工作方式。UL(Ubiquitous Language,通用语言)是团队共享的语言,是DDD中最具威力的特性之一。不管你在团...

2020-02-23 13:30:50

软件设计的演变过程

序言20世纪60年代以前,计算机刚刚投入实际使用,软件设计往往只是为了一个特定的应用而在指定的计算机上设计和编制,采用密切依赖于计算机的机器代码或汇编语言,软件的规模比较小,文档资料通常也没有,很少使用系统化的开发方法,设计软件往往等同于编制程序,基本上是自给自足的私人化的软件生产方式。20世纪60年代中期,大容量、高速度计算机的出现,使得计算机的应用范围迅速扩大,软件开发急剧增长。高级语言逐...

2020-02-23 13:29:29

技术选型

Swagger for Everyone

2020-02-19 18:00:45

查看更多

勋章 我的勋章
  • 领英
    领英
    绑定领英第三方账户获取
  • 脉脉勋章
    脉脉勋章
    绑定脉脉第三方账户获得
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。