讲师介绍 杨周 CODING DevOps 架构师 CODING 布道师 连续创业者.DIY/Linux 玩家.知乎小 V,曾在创新工场.百度担任后端开发.十余年一线研发和带队经验,经历了 ToB.ToC.O2O.国内.出海各种项目,见证了云计算时代的诞生,擅长研发最佳实践:Code Review.DevOps.Git Workflow.敏捷开发.架构.极客办公硬件. PHP 老项目常见质量问题 问题一:未提交 composer.lock Composer 官方文档(getcomposer.or…
讲师介绍 杨周 CODING DevOps 架构师 CODING 布道师 连续创业者.DIY/Linux 玩家.知乎小 V,曾在创新工场.百度担任后端开发.十余年一线研发和带队经验,经历了 ToB.ToC.O2O.国内.出海各种项目,见证了云计算时代的诞生,擅长研发最佳实践:Code Review.DevOps.Git Workflow.敏捷开发.架构.极客办公硬件. 背景 随着 ToB(企业服务)的兴起和 ToC(消费互联网)产品进入成熟期,线上故障带来的损失越来越大,代码质量越来越重要,而「…
随着 ToB(企业服务)的兴起和 ToC(消费互联网)产品进入成熟期,线上故障带来的损失越来越大,代码质量越来越重要,而「质量内建」正是 DevOps 核心理念之一. <DevOps 代码质量实战(Java 版)>为 CODING DevOps 代码质量实战系列的最后一课,同时也是本系列的 Java 版,杨周老师将以 Java Spring 为例,讲解代码规范.Git workflow.持续集成.代码生成 API 文档.修改 maven 包.单元测试.Docker 等内容. 课程主题 DevO…
近年来,工程项目的结构越来越复杂,需要接入合适的持续集成流水线形式,才能满足更多变的需求,那么如何优雅地使用 CI 能力提升生产效率呢?CODING DevOps 微服务项目实战系列第二课 <DevOps 微服务项目实战:CI 进阶用法> 将由 CODING DevOps 全栈工程师 何晨哲老师 向大家介绍持续集成流水线的进阶能力,结合示例讲解各种场景下的持续集成用法,解放重复性劳动,更快交付成果. 课程主题 DevOps 微服务项目实战:CI 进阶用法 课程时间 8 月 19 日(周三)19…
11 月 22 日,由 CODING 主办的 DevOps 技术沙龙系列「质量」专场在上海圆满结束.在活动现场,四位来自腾讯等知名企业的技术大咖们分享了研发质量与效能的实战经验,与观众们共同探讨如何采取有效手段以保证和提高软件质量. 本期沙龙回顾为大家带来的,是来自腾讯云 CODING 布道师杨周的议题--<DevOps 代码质量实战>. 问题:人越来越多,代码越来越乱 随着团队成员增多,每个人在缩进.换行.空格以及大小写方面有不同的习惯,导致代码越来越乱.代码风格问题尚且不致命,更严重的是这…
CODING DevOps 微服务项目实战系列第一课<DevOps 微服务项目实战:DevOps 初体验>将由 CODING DevOps 开发工程师 王宽老师 向大家介绍 DevOps 的基本理念,并探讨为什么现代开发活动需要 DevOps,同时将以 eShopOnContainers 项目代码为例,展示如何在 CODING 中激活 DevOps 的能力.(eShopOnContainers 是由微软开源的教科书级微服务项目,其运行在 .Net Core 平台,采用了多种数据库引擎,通过 E…
不说废话了,图的书序就是操作顺序 1. 2.…
<从头搭建持续集成 DevOps 流水线>由资深敏捷教练.极限编程学院高级讲师.CODING 特邀敏捷顾问李小波老师主讲,将基于 CODING 展示如何编写 Jenkinsfile 搭建 CI/CD 流水线,包括单元测试,端到端测试,代码规范检查,制品库,Docker 化部署. 大家好,今天课程的主要内容为如何从头搭建 DevOps 流水线以及其在研发工作中的意义,最后是 DevOps 流水线实践与敏捷开发的关系的总结. 最开始是在极限编程里提出了持续集成,然后 ThoughtWorks 又提…
随着软件工程越来越复杂化,如何在 Kubernetes 集群进行灰度发布成为了生产部署的"必修课",而如何实现安全可控.自动化的灰度发布也成为了持续部署重点关注的问题.CODING DevOps 微服务项目实战系列最后一课:<DevOps 微服务项目实战:基于 Nginx-ingress 的自动化灰度发布>将由 CODING DevOps 后端开发工程师 王炜老师 向大家介绍 Nginx-ingress 灰度发布的原理,并结合 Demo 深入讲解如何实现自动化的灰度发布.…
业务分析处在开发过程的上游,提高业务分析的质量,可以减少后续开发.测试和集成过程中的反复确认,场景遗漏.采用可视化的业务分析工具箱可以大幅度避免文字版的业务需求描述所带来的不够完整,有误解等问题.CODING 特邀敏捷顾问."业务分析工具箱"创始人王洪亮老师将在本次 <可视化业务分析> 课程中,带领大家掌握可视化业务分析的基本工具和方法,以提高业务分析的质量和效率. 今天我为大家介绍可视化业务分析.提到业务分析,是指以文字为主的业务描述文档 SRS,即软件需求规格说明书.在…
当下软件发展趋势 当今 IT 行业发展中比较流行的几个技术,首先是微服务化,将原有的一个系统拆分成多个,意味着有多个系统需要构建.测试.部署和运维. 第二个是敏捷开发模式,需求粒度更细化,要求一个可独立部署单元快速开发.快速测试.快速部署上线,实现快速迭代. 还有一个就是容器化,随着容器技术的快速发展,越来越多的应用迁移到了容器上. 这时候就会出现一些问题,如果当下软件交付继续使用传统模式,就会需要花费大量的人力物力,同时有大量的重复部署任务,且交付无法做到快速型.那么有没有一种更好的交付方式满…
微服务测试的痛点与挑战 这张图可以形象地展示单体服务和微服务的对比,单体应用就像左边巨大的集装箱,软件模块和应用都包括其中:而微服务就像是由一个小集装箱组成,微小的服务组成一个庞大.完整的系统.单体服务是一个大而全的应用体,而微服务由拆分成出来的很多小服务来组成一个庞大而完整的系统. 微服务是一种架构模式,是面向服务型架构 SOA 的一种变体,提倡将单一应用程序逐渐还原划分成小的服务,服务间互相协调.互相配合,为用户提供最终价值.微服务架构风格就是一些小而自治的服务协同工作形成松耦合的系统.另外…
本文作者:王振威 - CODING 研发总监 CODING 创始团队成员之一,多年系统软件开发经验,擅长 Linux,Golang,Java,Ruby,Docker 等技术领域.近两年来一直在 CODING 从事系统架构和运维工作. 不同类型的企业资产有不同的管理办法,但守护资产的安全性无一例外都是重中之重,但对如何保障代码资产安全并没有形成统一认知.本文将就"代码资产的安全性"这一话题展开全面的阐述,尝试从代码管理的生命周期进行全链路分析,读者可以据此来审视自己企业的代码资产安全.…
(文章都是从我的个人主页上粘贴过来的, 大家也可以访问我的主页 www.iwangzheng.com) 在第一课里提取出了相通的代码,第二课里就把常量提取出来吧 一般把常量的定义写的对应的app/models/cms_tv_video.rb里 VIDEO_TYPE_RECOMMANDED_VIDEO = "recommended_video" 以后再调用的时候就不用写 @video_type = "recommended_video" 而是直接写 @video_ty…
第二课 传统神经网络 <深度学习>整体结构: 线性回归 -> 神经网络 -> 卷积神经网络(CNN)-> 循环神经网络(RNN)- LSTM 目标分类(人脸识别,物品识别,场景识别,文字识别),目标检测(安防,自动驾驶),视频分类(视频检索),语句生成(自动翻译,智能对话) 提纲: 1. 神经网络起源:线性回归 2. 从线性到非线性 3. 神经网络的构建 4. 神经网络的“配件”  期待目标: 1. 了解从线性到非线性回归的转化 2. 明白如何构建神经网络,了解不同激励函数的…
摘要: 本篇博文是“Java秒杀系统实战系列文章”的第六篇,本篇博文我们将进入整个秒杀系统核心功能模块的代码开发,即“商品秒杀”功能模块的代码实战. 内容: “商品秒杀”功能模块是建立在“商品详情”功能模块的基础之上,对于这一功能模块而言,其主要的核心流程在于:前端发起抢购请求,该请求将携带着一些请求数据:待秒杀Id跟当前用户Id等数据:后端接口在接收到请求之后,将执行一系列的判断与秒杀处理逻辑,最终将处理结果返回给到前端. 其中,后端接口的这一系列判断与秒杀处理逻辑还是挺复杂的,Debug将其…
Kali Linux Web 渗透测试— 第二课 代理简介 文/玄魂 课程地址: http://edu.51cto.com/course/course_id-1887.html 目录 shellKali Linux Web 渗透测试— 第二课代理简介 课程目录 Proxy基本原理 正向代理(Forward Proxy) 反向代理(reverse proxy) 透明代理(transparente proxy) Kali linux中的代理工具 Mitmproxy Burp Suite Owasp-…
一.SonarQube介绍       SonarQube是一个用于代码质量检测管理的开放平台,可以集成不同的检测工具,代码分析工具,以及持续集成工具.SonarQube 并不是简单地把不同的代码检查工具结果直接显示在 Web 页面上,而是通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量的变化. SonarQube不仅提供了对 IDE 的支持,可以在Eclipse和IntelliJ IDEA这些工具里联机查看结果:同时 SonarQube 还对大量的持续集成工具提供了接口支持,…
[注]该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取 .运行环境说明 1.1 硬软件环境 线程,主频2.2G,10G内存 l  虚拟软件:VMware® Workstation 9.0.0 build-812388 l  虚拟机操作系统:CentOS 64位,单核 l  虚拟机运行环境: Ø  JDK:1.7.0_55 64位 位) Ø  Scala:2.10.4 Ø  Spark:1.1.0(需要编译) Ø  Hive:0.13.1 1.2 机器网络…
[注]该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取 .Tachyon介绍 1.1 Tachyon简介 随着实时计算的需求日益增多,分布式内存计算也持续升温,怎样将海量数据近乎实时地处理,或者说怎样把离线批处理的速度再提升到一个新的高度是当前研究的重点.近年来,内存的吞吐量成指数倍增长,而磁盘的吞吐量增长缓慢,那么将原有计算框架中文件落地磁盘替换为文件落地内存,也是提高效率的优化点. 目前已经使用基于内存计算的分布式计算框架有:Spark.Impala…
[注]该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取 .SparkSQL的发展历程 1.1 Hive and Shark SparkSQL的前身是Shark,给熟悉RDBMS但又不理解MapReduce的技术人员提供快速上手的工具,Hive应运而生,它是当时唯一运行在Hadoop上的SQL-on-Hadoop工具.但是MapReduce计算过程中大量的中间磁盘落地过程消耗了大量的I/O,降低的运行效率,为了提高SQL-on-Hadoop的效率,大量的S…
[注]该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取 .实例演示 1.1 流数据模拟器 1.1.1 流数据说明 在实例演示中模拟实际情况,需要源源不断地接入流数据,为了在演示过程中更接近真实环境将定义流数据模拟器.该模拟器主要功能:通过Socket方式监听指定的端口号,当外部程序通过该端口连接并请求数据时,模拟器将定时将指定的文件数据随机获取发送给外部程序. 1.1.2 模拟器代码 import java.io.{PrintWriter} import…
[注]该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取 .GraphX介绍 1.1 GraphX应用背景 Spark GraphX是一个分布式图处理框架,它是基于Spark平台提供对图计算和图挖掘简洁易用的而丰富的接口,极大的方便了对分布式图处理的需求. 众所周知·,社交网络中人与人之间有很多关系链,例如Twitter.Facebook.微博和微信等,这些都是大数据产生的地方都需要图计算,现在的图处理基本都是分布式的图处理,而并非单机处理.Spark G…
内容简介 1.课程大纲 2.第二部分第二课: 进击的指针,C语言的王牌 3.第二部分第三课预告: 数组 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用C语言编写三个游戏. C语言编程基础知识 什么是编程? 工欲善其事,必先利其器 你的第一个程序 变量的世界 运算那点事 条件表达式 循环语句 实战:第一个C语言小游戏 函数 练习题 习作:完善第一个C语言小游戏 C语言高级技术 模块化编程 进击的指针,C语言王牌 数组 字符串 预处理 创建你自己的变量类型…
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由鹅厂优文发表于云+社区专栏 作者:朱雷 | 腾讯IEG高级工程师 『Python 工匠』是什么? 我一直觉得编程某种意义上是一门『手艺』,因为优雅而高效的代码,就如同完美的手工艺品一样让人赏心悦目. 在雕琢代码的过程中,有大工程:比如应该用什么架构.哪种设计模式.也有更多的小细节,比如何时使用异常(Exceptions).或怎么给变量起名.那些真正优秀的代码,正是由无数优秀的细节造就的. 『Python 工匠』这个系列文章,是我的…
代码审核(Code Review)是软件研发质量保障机制中非常重要的一环,但在实际项目执行过程中,却因为种种原因被Delay甚至是忽略.在实践中,给大家推荐一款免费.开放源代码的代码审查软件Gerrit. 1. Why Code Review Code Review是什么? Code Review最直观的解释即看代码.常规的做法为自己看,有时代码逻辑问题可能自己看不出来,需要找同事一起看,在大家知识体系相对平均的情况下可能需要花钱专门的公司帮助查看. Code Review需要看哪些?对于刚入职…
本文是<Rust in action>学习总结系列的第二部分,更多内容请看已发布文章: 一.Rust实战系列-Rust介绍 " 主要介绍 Rust 的语法.基本类型和数据结构,通过实现一个简单版 grep 命令行工具,来理解 Rust 独有的特性. 1. 编译单文件 编译器负责将源代码编译成机器码,使其成为可运行的程序,Rust 的编译器是 rustc,下面是一个最简单的 Rust 源代码: fn main() { println!("ok") } 如果想通过 r…
GitHub实战系列汇总:http://www.cnblogs.com/dunitian/p/5038719.html —————————————————————————————————————————————————————— 很多人问,明明有git gui 和 github可以直接图形化操作的吗?全部指令干啥??? 呃(⊙o⊙)…呃(⊙o⊙)… ===> 装逼~ O(∩_∩)O~,开玩笑的,其实就是为了通用和熟悉git,linux里面照样这样用,多熟悉点基础指令很有用的, 如果觉得顿时不开心…
[注]该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取 .简介 1.1 Spark简介 年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处,Spark以其先进的设计理念,迅速成为社区的热门项目,围绕着Spark推出了Spark SQL.Spark Streaming.MLLib和GraphX等组件,也就是BDAS(伯克利数据分析栈),这些组件逐渐形成大数据处理一站式解决平台.从各方面报道来看Spark抱负并非池鱼,…
[注]该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取 .Spark编程模型 1.1 术语定义 l应用程序(Application): 基于Spark的用户程序,包含了一个Driver Program 和集群中多个的Executor: l驱动程序(Driver Program):运行Application的main()函数并且创建SparkContext,通常用SparkContext代表Driver Program: l执行单元(Executor):…