代码管理

Swoole.001.手撸网络服务器模型

百般思念 提交于 2019-11-28 23:59:55
github: https://github.com/masterzcw/swoole Swoole进程结构 Master进程: 主进程 Manger进程: 管理进程 Worker进程: 工作进程 Task进程: 异步任务工作进程 Master进程 第一层, Master进程, 这个是swoole的主进程,这个进程是用于处理swoole的核心事件驱动的, 那么在这个进程当中可以看到它拥有一个MainReactor[线程]以及若干个Reactor[线程], swoole所有对于事件的监听都会在这些线程中实现, 比如来自客户端的连接, 信号处理等. 1.1 MainReactor(主线程) 主线程会负责监听server socket, 如果有新的连接accept, 主线程会评估每个Reactor线程的连接数量. 将此连接分配给连接数最少的reactor线程, 做一个负载均衡. 1.2 、Reactor线程组 Reactor线程负责维护客户端机器的TCP连接、处理网络IO、收发数据完全是异步非阻塞的模式. swoole的主线程在Accept新的连接后, 会将这个连接分配给一个固定的Reactor线程, 在socket可读时读取数据, 并进行协议解析, 将请求投递到Worker进程. 在socket可写时将数据发送给TCP客户端. 1.3、心跳包检测线程(HeartbeatCheck)

Git与GitHub

眉间皱痕 提交于 2019-11-28 18:43:17
Git与GitHub Git简介 Git的基本操作 理解:工作区+暂存区+本地库 设置全局属性:用户名与邮箱地址 1.创建本地版本库 repository:git init 2.提交文件:git status/add/commit 3.查看文件提交记录:git log 4.回退历史:git reset --hard HEAD^ 5.版本穿越:git reflog/reset 6.还原文件(没有add和commit的前提下) 7.删除某个文件 Git分支 1.创建分支:git branch <分支名> 2.切换分支:git checkout <分支名> 3.合并分支:git merge <分支名> 4.合并时冲突:git diff GitHub 1.是什么? 2.Git与GitHub操作 2.1 GitHub上的操作 2.2 Git上对GitHub的操作 前提 1.Git推送至GitHub:git remote add/git push 2.Git克隆/更新GitHub上的项目:git clone/git pull 2.3 协作冲突 2.4 Git免密登陆GitHub Git工作流 Git简介 Git 是目前世界上最先进的 分布式版本控制系统 。 首先,版本管理系统能干什么: 协同开发 冲突解决 版本记录 历史追查 代码备份 版本还原 权限管理 分支管理 代码审查 而经典的集中管理型

iOS-利用Jenkins持续集成项目

本小妞迷上赌 提交于 2019-11-28 18:26:07
前言 众所周知,现在App的竞争已经到了用户体验为王,质量为上的白热化阶段。用户们都是很挑剔的。如果一个公司的推广团队好不容易砸了重金推广了一个APP,好不容易有了一些用户,由于一次线上的bug导致一批的用户在使用中纷纷出现闪退bug,轻则,很可能前期推广砸的钱都白费了,重则,口碑不好,未来也提升不起用户量来了。静下心来分析一下问题的原因,无外乎就是质量没有过关就上线了。除去主观的一些因素,很大部分的客观因素我觉得可以被我们防范的。根据大神们提出的一套开发规范建议,CI + FDD,就可以帮助我们极大程度的解决客观因素。本文接下来主要讨论 Continuous Integration 持续集成(简称CI) 目录 1.为什么我们需要持续集成 2.持续化集成工具——Jenkins 3.iOS自动化打包命令——xcodebuild + xcrun 和 fastlane - gym 命令 4.打包完成自动化上传 fir / 蒲公英 第三方平台 5.完整的持续集成流程 6.Jenkins + Docker 一. 为什么我们需要持续集成 谈到为什么需要的问题,我们就需要从什么是来说起。那什么是持续集成呢。 持续集成是一种软件开发实践:许多团队频繁地集成他们的工作,每位成员通常进行日常集成,进而每天会有多种集成。每个集成会由自动的构建(包括测试)来尽可能快地检测错误

GIT版本控制工具

杀马特。学长 韩版系。学妹 提交于 2019-11-28 16:27:58
一、GIT介绍 Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。 Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。 1、git的三个区域 工作区 暂存区 历史区 2、文件的三种状态 对于任何一个文件,在 Git 内都只有三种状态: 已修改(modified) --> Git 的工作目录 已暂存(staged) -->暂存区域 已提交(committed) -->本地仓库 已修改表示修改了某个文件,但还没有提交保存; 已暂存表示把已修改的文件放在下次提交时要保存的清单中。 已提交表示该文件已经被安全地保存在本地数据库中了; 由此我们看到 Git 管理项目时,文件流转的三个工作区域:Git 的工作目录,暂存区域,以及本地仓库。 二、下载安装 地址: https://git-scm.com/ 三、GIT仓库的全局配置 第一次安装完成git后,我们在全局环境下配置基本信息:我是谁 $ git config -l 查看配置信息 $ git config --globla -l 查看全局配置信息 配置全局信息:用户名和邮箱 $ git config --global user

github管理代码

帅比萌擦擦* 提交于 2019-11-28 14:53:16
git介绍 Git是目前开源软件使用做多的版本管理软件,是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库。然后将更新提交到远程仓库。 安装配置git 下载地址:https://git-scm.com/downloads 远程的代码管理是基于SSH的,所以要使用远程的Git则需要SSH的配置。 1、设置Git的user name和email: git config --global user.name "zhizhi" git config --global user.email "zhizhi@gmail.com" 2、生成SSH密钥过程: ssh-keygen -t rsa -C "username" //可以输入计算机名或邮箱地址或其他你想要设置的用户名 切换到 ~/.ssh文件夹,会发现两个文件:id_rsa和id_rsa.pub,用记事本打开id_rsa.pub文件,复制 id_rsa.pub文件内容到 github->settings->SSH and GPG key->new ssh->key 3、测试ssh设置是否成功 建仓管理代码基本操作命令 开始之前,先理解以下几个名词: 工作区(Wroking

Spring源码剖析开篇:什么是Spring?

亡梦爱人 提交于 2019-11-28 12:45:53
在讲源码之前,先让我们回顾一下一下Spring的基本概念,当然,在看源码之前你需要使用过spring或者spirngmvc。 Spring是什么 Spring是一个开源的轻量级Java SE(Java 标准版本)/Java EE(Java 企业版本)开发应用框架,其目的是用于简化企业级应用程序开发。应用程序是由一组相互协作的对象组成。而在传统应用程序开发中,一个完整的应用是由一组相互协作的对象组成。所以开发一个应用除了要开发业务逻辑之外,最多的是关注如何使这些对象协作来完成所需功能,而且要低耦合、高内聚。业务逻辑开发是不可避免的,那如果有个框架出来帮我们来创建对象及管理这些对象之间的依赖关系。可能有人说了,比如“抽象工厂、工厂方法 设计模式 ”不也可以帮我们创建对象,“生成器模式”帮我们处理对象间的依赖关系,不也能完成这些功能吗?可是这些又需要我们创建另一些工厂类、生成器类,我们又要而外管理这些类,增加了我们的负担,如果能有种通过配置方式来创建对象,管理对象之间依赖关系,我们不需要通过工厂和生成器来创建及管理对象之间的依赖关系,这样我们是不是减少了许多工作,加速了开发,能节省出很多时间来干其他事。Spring框架刚出来时主要就是来完成这个功能。 Spring框架除了帮我们管理对象及其依赖关系,还提供像通用日志记录、性能统计、安全控制、异常处理等面向切面的能力

Day6

烈酒焚心 提交于 2019-11-28 11:01:10
1.今天的全部工作重心已经转移到了写小程序的代码,在老师的指点下,把主页面的三个大选项变小了,下面放了一些食物的图片。今日就主要写了这个页面 代码详情:https://github.com/Ljy02/ETB 2.今日小结:觉得老师说的对,我们把自己想象成顾客,站在他们的角度,肯定打开小程序想最直接的看到一些食物,而不是先点进去一个食堂 再选择食物,对组件的布局管理方面还是掌握的不够熟悉,适当的添加视图容器view更方便组件布局的管理。 3.明日计划:继续编写小程序代码,实现点击食堂入口跳转到食堂内的页面,实现添加至购物车功能。 来源: https://www.cnblogs.com/wttt/p/11405908.html

Git && GitHub

寵の児 提交于 2019-11-28 08:52:48
第一章 为什么要学Git? 必点天赋。 必然趋势。 第二章 Git的简介和安装 2.1 Git的简介 Git是目前世界上最先进的分布式版本控制系统。 2.2 版本管理系统能干什么? 协同开发。 冲突解决。 版本记录。 历史追查。 代码备份。 版本还原。 权限管理。 分支管理。 代码审查。 2.3 集中管理型版本管理 第三章 Git实战操作 第四章 GitHub简介、和Git的协同办公 第五章 在IDEA中操作Git 第六章 Git工作流 来源: https://www.cnblogs.com/xuweiweiwoaini/p/11403219.html

一文详解微服务架构

雨燕双飞 提交于 2019-11-28 07:07:01
本文将介绍微服务架构和相关的组件,介绍他们是什么以及为什么要使用微服务架构和这些组件。本文侧重于简明地表达微服务架构的全局图景,因此不会涉及具体如何使用组件等细节。 为了防止不提供原网址的转载,特在这里加上原文链接: https://www.cnblogs.com/skabyy/p/11396571.html 要理解微服务,首先要先理解不是微服务的那些。通常跟微服务相对的是单体应用,即将所有功能都打包成在一个独立单元的应用程序。从单体应用到微服务并不是一蹴而就的,这是一个逐渐演变的过程。本文将以一个网上超市应用为例来说明这一过程。 最初的需求 几年前,小明和小皮一起创业做网上超市。小明负责程序开发,小皮负责其他事宜。当时互联网还不发达,网上超市还是蓝海。只要功能实现了就能随便赚钱。所以他们的需求很简单,只需要一个网站挂在公网,用户能够在这个网站上浏览商品、购买商品;另外还需一个管理后台,可以管理商品、用户、以及订单数据。 我们整理一下功能清单: 网站 用户注册、登录功能 商品展示 下单 管理后台 用户管理 商品管理 订单管理 由于需求简单,小明左手右手一个慢动作,网站就做好了。管理后台出于安全考虑,不和网站做在一起,小明右手左手慢动作重播,管理网站也做好了。总体架构图如下: 小明挥一挥手,找了家云服务部署上去,网站就上线了。上线后好评如潮,深受各类肥宅喜爱

Spring事务管理只对出现运行期异常进行回滚

╄→尐↘猪︶ㄣ 提交于 2019-11-28 05:57:16
一、结论 Spring的事务管理默认只对出现运行期异常(java.lang.RuntimeException及其子类)进行回滚。 如果一个方法抛出Exception或者Checked异常,Spring事务管理默认不进行回滚。 关于异常的分类一下详细介绍: 1、基本概念 看java的异常结构图 Throwable是所有异常的根,java.lang.Throwable Error是错误,java.lang.Error Exception是异常,java.lang.Exception 2、Exception 一般分为Checked异常和Runtime异常,所有RuntimeException类及其子类的实例被称为Runtime异常,不属于该范畴的异常则被称为CheckedException。 ①Checked异常 只有java语言提供了Checked异常,Java认为Checked异常都是可以被处理的异常,所以Java程序必须显示处理Checked异常。如果程序没有处理Checked异常,该程序在编译时就会发生错误无法编译。这体现了Java的设计哲学:没有完善错误处理的代码根本没有机会被执行。对Checked异常处理方法有两种 (1) 当前方法知道如何处理该异常,则用try...catch块来处理该异常。 (2) 当前方法不知道如何处理,则在定义该方法是声明抛出该异常。 复制代码