
IT技术
文章平均质量分 88
alpha xu
从折腾Informix和SAP Basis开始,然后玩中间件was、portal、timtam,各种数据库、操作系统,然后是ITIL、运维监控、集中存储、备份恢复、异地容灾,感觉越玩越大、越玩越集中;多年前,命运开了个玩笑,开始负责软件开发管理,建开发测试平台、搭软件框架、研究CMMI、抓软件质量;近年来,开始研究微服务、容器、DevOps和敏捷开发,感觉越玩越小(微服务)越玩越分散(分布式)。真所谓大处着眼小处着手管中窥豹以小见大。只是知识的变化实在太快,近年来玩的开源软件已经升了好几个版本,只好夸父逐日、只争朝夕,赶紧把学的练的复习复习,编写成文,贻笑大方啦。
展开
-
软件工程之美学习笔记四十五 44 | 微软、谷歌、阿里巴巴等大厂是怎样应用软件工程的?
《软件工作之美》材料地址:https://time.geekbang.org/column/article/100716公司文化和软件开发模式谷歌:谷歌崇尚工程师文化,Google 的工程师做项目就会不紧不慢,质量优先,有统一的代码规范,严格的代码审查和严谨的自动化测试。还会频繁地重写系统Facebook:Facebook 有一种黑客精神,“Move Fast and Break Thing...转载 2019-06-25 15:02:57 · 579 阅读 · 0 评论 -
软件工程之美学习笔记二十八 27 | 软件工程师的核心竞争力是什么?(上)
《软件工作之美》材料地址: https://time.geekbang.org/column/article/93062软件工程师的核心竞争力1. 学习能力编程语言、框架、工具,这些都不是软件工程师的核心竞争力,能快速学习掌握编程语言、框架、工具的学习能力才是软件工程师最基础的核心竞争力。2.解决问题的能力软件工程师的日常工作:实现功能需求修复bug重构代码,优化性能其核心...原创 2019-04-30 15:36:02 · 428 阅读 · 0 评论 -
软件工程之美学习笔记二十七 26 | 持续交付:如何做到随时发布新版本到生产环境?
《软件工作之美》材料地址:https://time.geekbang.org/column/article/92587集成、部署和交付的发展史集成的原始阶段从手动集成到自动化的持续集成《重构》的作者 Martin Fowler 说过:“如果一件事很痛苦,那么就更频繁的做(if it hurts, do it more often. )”部署和交付的发展史部署指的是将代码发布到各...转载 2019-04-27 22:27:45 · 701 阅读 · 0 评论 -
软件工程之美学习笔记二十三 22 | 如何为项目做好技术选型?
《软件工程之美》材料地址: https://time.geekbang.org/column/article/90957技术选型就是项目决策受制于时间、范围和成本的约束,同时制约项目的三个因素一直在动态变化,需要及时根据情况调整技术决策要分析可行性和风险要考虑利益相关人避免项目决策中常见的坑把听到的观点当事实先入为主,有了结论再找证据如何做好技术选型?思路: 借鉴工程方法设计...原创 2019-04-23 11:32:21 · 513 阅读 · 0 评论 -
软件工程之美学习笔记二十五 24 | 技术债务:是继续修修补补凑合着用,还是推翻重来?
《软件工程之美》材料地址:https://time.geekbang.org/column/article/91729什么是技术债务?根据软件项目管理金三角,如果范围不减,成本不增加,还想节约时间走捷径,就会影响到质量。这种对质量的透支,就是一种债务。而技术债务,就是软件项目中对架构质量和代码质量的透支。技术债务是有利息的债务的“利息”,就是在后面对软件做修改的时候,需要额外的时间成本。...原创 2019-04-23 11:31:51 · 242 阅读 · 0 评论 -
软件工程之美学习笔记二十六 25 | 有哪些方法可以提高开发效率?
《软件工作之美》材料地址: https://time.geekbang.org/column/article/92266“积极主动”、“以终为始”和“要事第一”积极主动《高效能人士的七个习惯》想想再回应减少关注圈,扩大影响圈接受不能改变的,改变能改变的,尽量扩大可改变项的范围。以终为始,想清楚再开工三点:目标、原则和计划经常停下来想想目标制定原则“先运行再优化 (Mak...原创 2019-04-26 21:18:53 · 293 阅读 · 0 评论 -
软件工程之美学习笔记二十四 23 | 架构师:不想当架构师的程序员不是好程序员
《软件工程之美》材料地址:https://time.geekbang.org/column/article/91312什么是架构师思维?指的是要具备良好的抽象思维、分治思维、复用思维和迭代思维。架构师能力模型有架构师思维:具备良好的抽象思维、分治思维、复用思维和迭代思维;懂业务需求:能很好地理解业务需求,能针对业务特点设计好的架构;有丰富的编码经验:像抽象、分治、复用这些能力,都需...原创 2019-04-23 11:32:06 · 227 阅读 · 0 评论 -
软件工程之美学习笔记二十二 21 | 架构设计:普通程序员也能实现复杂系统?
《软件工程之美》材料地址:https://time.geekbang.org/column/article/90508为什么软件项目需要架构设计?一、 复杂软件项目的两个特点需求不确定(参见需求分析部分的讲义)技术复杂(1)需求让技术复杂(2)人员会让技术变复杂(3)技术本身也是复杂的(4)要让软件稳定运行是复杂的二、架构设计解决技术复杂性问题架构设计可以降低满足需求和...原创 2019-04-23 11:32:33 · 275 阅读 · 0 评论 -
软件工程之美学习笔记二十一 20 | 如何应对让人头疼的需求变更问题?
《软件工程之美》材料地址:https://time.geekbang.org/column/article/89848需求变更是个麻烦事程序员:“杀一个程序员不需要用枪,改三次需求就可以了!”产品经理也觉得很委屈:“客户要改,我有什么办法?”两个常见的解决方案方案一:增强需求变更流程,让需求变更规范起来。方案二:快速迭代,缩短版本周期。为什么建筑工程中少有需求变更?原因一:需求的...原创 2019-04-23 11:32:48 · 317 阅读 · 0 评论 -
软件工程之美学习笔记十八 17 | 需求分析到底要分析什么?怎么分析?
《软件工程之美》材料地址:https://time.geekbang.org/column/article/88833需求分析示意图(秋千图)什么是需求?用户需求:项目经理对产品经理说:用户给我们提了一个需求,想要一个给三个孩子玩的秋千,你分析一下;产品需求 :产品经理对架构师说:我们现在有一个需求,在树上栓两绳子,再吊一块板子,你做一下设计。需求分析是要分析什么?需求分析,就...原创 2019-04-23 11:33:32 · 1034 阅读 · 0 评论 -
软件工程之美学习笔记十七 16 | 为什么你不爱写项目文档?
《软件工程之美》材料地址: https://time.geekbang.org/column/article/88606为什么程序员都不爱写文档?不知道怎么写太忙没时间写或者懒得写敏捷开发所以不用写文档敏捷从来没有否认文档的价值,只是更重视“工作的软件”罢了。为什么要写文档?帮助写文档的人理清楚思路先写文档,就会抛开代码细节,去站在全局思考。真正的障碍是没想清楚,在心中只有...原创 2019-04-23 11:33:45 · 375 阅读 · 0 评论 -
软件工程之美学习笔记十六 15 | 风险管理:不能盲目乐观,凡事都应该有B计划
《软件工程之美》材料地址:https://time.geekbang.org/column/article/882591. 什么是风险管理风险是指不确定的事件,一旦发生,将会造成消极的影响。风险 = 损失 x 发生概率发生后,会造成什么样的损失?发生的概率有多大?风险管理就是指在项目进行过程中,识别可能的风险,对风险进行评估,并加以监控,从而减少风险对项目的负面影响。2.风险管理...原创 2019-04-23 11:33:55 · 492 阅读 · 0 评论 -
软件工程之美学习笔记十五 14 | 项目管理工具:一切管理问题,都应思考能否通过工具解决
《软件工程之美》材料地址: https://time.geekbang.org/column/article/877871 困惑与感悟困惑:任务不好量化难以估算项目成员对当前项目进度缺少直观感受管理者要花大量时间在任务管理上感悟:一切管理问题,都应思考能否通过工具或技术解决,如果当前工具或技术无法解决,暂时由流程规范代替,同时不停止寻找工具和技术。2 项目管理工具软件发展史(...原创 2019-04-23 11:34:06 · 557 阅读 · 0 评论 -
从巨石应用到微服务应用,从ESB到APIGateway,从前后端分离到中台出现,九九归一,Rest要一统天下?
本文系作者本人原创,如需转载,请务必写明出处,谢谢!题目很长,想说的东西很多。一 IT的进化论达尔文的进化论同样适用于IT世界,能大行其道的IT技术,确实是优胜劣汰,自然的选择。 有人说J2EE想解决很多东西,可惜它不够人性,有人说,SOA多么美好,可惜它生不逢时。所以在经历多年的发展之后,J2EE也好,SOA也好,终于碰到了天花板,逐渐被其他IT技术所取代。而最近炒得火热的中台概...原创 2019-04-06 10:00:13 · 4948 阅读 · 1 评论 -
微服务与SOA架构
【编者的话】本文是Mark Richards写的微服务与面向服务架构完整报告。转载时修正了译文中图3-2和图3-3的次序,同时梳理了文章的章节。第一章,基于服务架构的世界微服务和SOA都被认为是基于服务的架构,这意味着这两种架构模式都非常强调将“服务”作为其架构中的首要组件,用于实现各种功能(包括业务层面和非业务层面)。微服务和SOA是两种差异很大的架构模式,但是他们仍有一些相同的特征。...转载 2019-03-27 18:22:37 · 497 阅读 · 0 评论 -
软件工程之美学习笔记二十 19 | 作为程序员,你应该有产品意识
《软件工程之美》材料地址: https://time.geekbang.org/column/article/89480“作为一个程序员,你的年龄已经很大了!我问你,你学新东西有年轻人快吗?” ------ 《都挺好》会不会失业,取决于你创造的价值是否高于你的工资水平。程序员的价值第一,你的价值体现在你所做的产品之上。并不完全体现在技术(新、旧;水平高、低)...原创 2019-04-23 11:33:02 · 2250 阅读 · 0 评论 -
软件工程之美学习笔记十九 18 | 原型设计:如何用最小的代价完成产品特性?
《软件工程之美》材料地址:https://time.geekbang.org/column/article/89078什么是原型设计?原型设计,是产品经理确认需求、设计产品最重要的沟通工具。原型设计的发展历史《人月神话》的作者弗雷德里克·布鲁克斯(Frederick P. Brooks, Jr.)在《没有银弹 - 软件工程中的根本和次要问题》中第一次提出了:“在获取和制订软件需求时,将快...原创 2019-04-23 11:33:18 · 340 阅读 · 0 评论 -
软件工程之美学习笔记三十二 31 | 软件测试要为产品质量负责吗?
《软件工作之美》材料地址: https://time.geekbang.org/column/article/94631测试只能对已经开发完成的软件产品进行检测,并不能干预整个过程。什么是软件产品质量不同的人对软件质量好坏的评判角度是不同的。用户:美观好用开发:代码质量是否高,是否好维护测试:bug数量、安全、性能等项目负责人: 整个过程质量,成本可控、如期完成功能质量、代码质...转载 2019-05-19 20:08:21 · 227 阅读 · 0 评论 -
软件工程之美学习笔记三十三 32 | 软件测试:什么样的公司需要专职测试?
《软件工作之美》材料地址: https://time.geekbang.org/column/article/94941软件测试的主要工作是什么?发现 Bug,报告 Bug,跟踪 Bug。软件测试怎么发现 Bug?专业测试人员和开发人员的测试用例会差很多开发人员的重点,是放在如何实现功能上;对于测试人员来说,重点是在检测,也就是会考虑所有可能的用户使用场景,正常的、异常的,甚至各种极端情...转载 2019-05-20 14:17:32 · 300 阅读 · 0 评论 -
软件工程之美学习笔记三十四 33 | 测试工具:为什么不应该通过QQ/微信/邮件报Bug?
《软件工作之美》材料地址:https://time.geekbang.org/column/article/95533Bug 跟踪工具Bug的诞生1947 年 9 月 9 日,一只小飞蛾钻进了哈佛大学的一台计算机电路里,导致系统无法工作,操作员把飞蛾贴在计算机日志上,写下了“首个发现 Bug 的实际案例”。(图片来源:WikiPedia《Software bug》)为什么要使用 Bug...转载 2019-05-20 15:19:45 · 361 阅读 · 0 评论 -
软件工程之美学习笔记四十三 42 | 反面案例:盘点那些失败的软件项目
《软件工作之美》材料地址: https://time.geekbang.org/column/article/99775项目管理协会(PMI)认为成功的项目必须满足六个条件:按时交付。成本在预算范围内。能按照当初的设计正常运行。有人使用。满足项目最初的目标。项目出资方对项目满意。WikiPedia 上也有一个网页,列出来那些损失严重的软件项目。List of failed a...转载 2019-06-21 17:05:12 · 7531 阅读 · 0 评论 -
软件工程之美学习笔记四十二 41 | 为什么程序员的业余项目大多都死了?
《软件工作之美》材料地址:https://time.geekbang.org/column/article/99298业余项目(也叫 Side Project)。为什么程序员的业余项目大多都死了?想法大,时间少;可以借助软件项目金三角的理论,去缩小范围,在做项目时,可以采用 MVP 的开发模式,先实现核心需求,再逐步增加功能。过于追求技术,缺少约束;应该要对你的项目制定计划,设定里程...转载 2019-06-21 16:43:18 · 339 阅读 · 0 评论 -
软件工程之美学习笔记四十四 43 | 以VS Code为例,看大型开源项目是如何应用软件工程的?
《软件工作之美》材料地址: https://time.geekbang.org/column/article/100141软件工程的核心,就是围绕软件项目开发,对开发过程的组织,对方的运用,对工具的使用。分析 VS Code 对软件工程的应用1. VS Code 的开发迭代过程VS Code 每个版本的开发周期是 4 周,每四周都会发布一个新的版本。第一周: 发布上一迭代版本(周三左右...转载 2019-06-25 11:43:25 · 552 阅读 · 0 评论 -
软件工程之美学习笔记三十九 38 | 日志管理:如何借助工具快速发现和定位产品问题 ?
《软件工作之美》材料地址: https://time.geekbang.org/column/article/97682什么是日志管理?日志管理就是指对系统和应用程序产生的日志进行处理的方法,包括对日志进行统一收集,对日志数据进行筛选和解析,统一存储,还要让它们可以方便被检索。如何快速发现和定位问题?首先,日志集中式管理后,就可以方便地对所有日志进行统一的检索。然后,对日志进行集中式管...转载 2019-05-30 10:23:58 · 252 阅读 · 0 评论 -
软件工程之美学习笔记四十一 40 | 最佳实践:小团队如何应用软件工程?
《软件工作之美》材料地址:https://time.geekbang.org/column/article/98985本文讨论的小团队,不是指大厂的一个小组,而是小公司或者三五个人的小开发团队)小团队在软件开发中存在的常见问题成本敏感人少活多缺少流程规范小团队如何应用软件工程?成本敏感的问题,如果这个是客观存在的,就没有太好的办法去解决,只能说我们在做一些决策、制定流程的时候,需...转载 2019-06-05 14:57:36 · 283 阅读 · 0 评论 -
《谈谈企业应用架构的进化和服务集成》下篇
本文系作者本人原创,如需转载,请务必写明出处,谢谢!承接上篇,今天我们继续谈谈面对大量异构系统,该如何集成业务功能。六ESB 和API Gateway,不同的历史使命1.ESBGartner 在2006年发表的“Hype Cycle for Application Integration and Platform Middleware, 2006”一文中,对ESB的定义如下A...原创 2019-05-24 09:44:20 · 479 阅读 · 0 评论 -
《谈谈企业应用架构的进化和服务集成》上篇
本文系作者本人原创,如需转载,请务必写明出处,谢谢!一 引言--IT的进化论达尔文的进化论同样适用于IT世界,能大行其道的IT技术,确实是优胜劣汰,自然的选择。有人说J2EE想解决很多东西,可惜它不够人性,有人说,SOA多么美好,可惜它生不逢时。所以在经历多年的发展之后,J2EE也好,SOA也好,终于碰到了天花板,逐渐被其他IT技术所取代。而最近炒得火热的中台概念,是不是因为手中握着...原创 2019-05-24 09:30:16 · 702 阅读 · 0 评论 -
软件工程之美学习笔记四十 39 | 项目总结:做好项目复盘,把经验变成能力
《软件工作之美》材料地址: https://time.geekbang.org/column/article/98141什么是项目复盘?软件项目中的复盘,也是通过分析、讨论开发中出现的问题,进而总结成功经验,吸取失败教训,提升团队能力。复盘为什么没效果总结不出来有效的结论没做好是客观原因导致的知道什么原因,但不知道该怎么办如何做好项目复盘?对比目标和结果找差距思考背后原因结合软...转载 2019-05-30 11:12:04 · 3697 阅读 · 0 评论 -
软件工程之美学习笔记三十六 35 | 版本发布:软件上线只是新的开始
《软件工作之美》材料地址:https://time.geekbang.org/column/article/96289关于软件版本对软件版本来说,包含两部分含义,一部分代表特定功能集合,一部分代表某一次特定的代码构建结果。业界在软件版本的命名上,通常会采用以下方式:主版本号.子版本号.[. 修正版本号.[构建版本号]]主版本号和子版本号用来标识功能变化,小的功能变化增加子版本号,大的功能...转载 2019-05-23 14:21:44 · 234 阅读 · 0 评论 -
软件工程之美学习笔记三十一 30 | 用好源代码管理工具,让你的协作更高效
《软件工作之美》材料地址:https://time.geekbang.org/column/article/93757源代码管理工具发展简史源代码管理工具也叫版本控制系统,是保存文件多个版本的一种机制。(图片来源:《什么是版本控制?》)没有源代码管理工具的时代本地版本管理:SCCS(Source Code Control System)1972,RCS(Revision Cont...转载 2019-05-17 23:26:05 · 289 阅读 · 0 评论 -
软件工程之美学习笔记三十 29 | 自动化测试:如何把Bug杀死在摇篮里?
《软件工作之美》材料地址:https://time.geekbang.org/column/article/93405对于自动化测试,它是敏捷开发能快速迭代很重要的质量保障,是持续交付的基础前提。为什么自动化测试能保障质量?自动化测试可以直接绕过界面,对程序内部的类、函数进行直接测试,如果有一定量的自动化测试代码覆盖,相对来说软件质量是更有保障的。测试用例跑一遍,可以有效地预防“修复一个...转载 2019-05-17 21:27:24 · 383 阅读 · 0 评论 -
软件工程之美学习笔记二十九 28 | 软件工程师的核心竞争力是什么?(下)
《软件工作之美》材料地址: https://time.geekbang.org/column/article/93185如何提升学习能力?首先需要在一个技术领域深耕:只有一个领域的知识你真正吃透,才能有效地共享到其他领域,构成一个知识领域的森林。然后往相近的领域逐步横向拓展如何提高解决问题的能力?第一步:明确问题第二步:拆分和定位问题第三步:提出解决方案并总结总结要做的就是两...转载 2019-05-17 20:50:43 · 222 阅读 · 0 评论 -
软件工程之美学习笔记三十八 37 | 遇到线上故障,你和高手的差距在哪里?
《软件工作之美》材料地址:https://time.geekbang.org/column/article/97219遇到线上故障,新手和高手的差距在哪里?新手遇到复杂的线上故障,不知道该怎么下手第一步,评估影响范围;第二步,试图重现问题;第三步,临时方案和终极方案;第四步,风险评估及持续优化。新手遇到线上故障,会想着马上修复 Bug恢复生产、降低损失是第一要务,修复 Bug ...转载 2019-05-27 10:22:17 · 262 阅读 · 0 评论 -
软件工程之美学习笔记三十七 36 | DevOps工程师到底要做什么事情?
《软件工作之美》材料地址:https://time.geekbang.org/column/article/96895传统的运维模式以及面临的挑战(图片来源:The Product Managers’ Guide to Continuous Delivery and DevOps)有两个主要的因素对传统的运维模式产生了很大挑战。第一,服务器规模快速增长和虚拟化技术的高速发展。第二,高频...转载 2019-05-24 13:47:02 · 284 阅读 · 0 评论 -
软件工程之美学习笔记三十五 34 | 账号密码泄漏成灾,应该怎样预防?
《软件工作之美》材料地址:https://time.geekbang.org/column/article/95818安全问题本质是技术风险软件中的安全问题来源主要有三类恶意输入 如SQL注入、XSS跨站脚本攻击;对策是对用户输入的数据,做严格的校验,格式化。假冒身份 对于用户身份的校验比较弱;对策是身份验证,甚至双重验证。数据泄露 敏感数据存储的地方有风险,比如日志中、明...转载 2019-05-20 16:16:34 · 168 阅读 · 0 评论 -
软件工程之美学习笔记十四 13 | 白天开会,加班写代码的节奏怎么破?
《软件工程之美》材料地址:https://time.geekbang.org/column/article/873991 正确认识开会开会是有价值的开会是有成本的2 什么样的会议是有效率的?轻量级沟通有的会议,就不是为了创造价值你是砍柴的,他是放羊的,你和他聊了一天,他的羊吃饱了,你的柴呢?3 如何提高开会效率?(1) 树立成本意识(2)砍掉一些没价值的会议没有目标的...原创 2019-04-23 11:34:17 · 358 阅读 · 0 评论 -
软件工程之美学习笔记十三 12 | 流程和规范:红绿灯不是约束,而是用来提高效率
《软件工程之美》材料地址:https://time.geekbang.org/column/article/871291 为什么要有流程规范?提升团队效率从个体来看,因为流程规范的存在,确实可能存在效率降低的情况,但从团队的角度来看,好的流程规范反而是提升效率的。将好的实践标准化流程化,让大家可以共享经验各种开发模型,实际上也是开发流程规范借助流程规范,让项目管理从人治到“法治”而好...原创 2019-04-23 11:34:33 · 354 阅读 · 0 评论 -
软件工程之美学习笔记九 08 | 怎样平衡软件质量与时间成本范围的关系?
《软件工作之美》材料地址:https://time.geekbang.org/column/article/853021. 什么是软件项目管理金三角?在软件项目中,也有一个类似的平衡关系,就是软件质量(产品的质量,客户的满意度)与范围(需要实现多少功能)、时间(多久可以完成)、成本(花多少钱)四个要素之间的平衡。这个就是项目管理金三角。“质量”这个因素一般不会妥协,因此把“质量”放在三...原创 2019-04-23 11:35:52 · 1577 阅读 · 0 评论 -
kubernetes 应用部署实例-PHP Guestbook application
在我的上篇文章用kubeadm安装Kubernetes 1.12.3 cluster 详解 中我们完成了k8s cluster的搭建,接下来我们就开始部署应用吧。本文按照kubernetes官方文档Example: Deploying PHP Guestbook application with Redis,完成了PHP Guestbook application的部署。1,Kuberne...原创 2018-12-21 16:43:35 · 1685 阅读 · 0 评论 -
从Filebeat到Logstash再到Elasticsearch,如何搭建ELK 日志平台
本文系作者本人原创,如需转载,请务必写明出处,谢谢!一,背景对于分布式系统,特别是基于容器的微服务系统,详细的系统日志和日志数据的实时收集和传输到集中平台是极其有必要的。主要基于两个原因,一是日志数据不能随容器的切换而丢失(当然也可以将日志数据存于持久存储层,但这种架构可能违背微服务自主和自助的设计原则),二是分布式的系统架构分散复杂,更加有必要对任何一个环节进行及时的监控。目前常用的...原创 2018-11-28 17:08:40 · 3508 阅读 · 0 评论