架构师论文之软件架构风格

摘要

本文将主要讨论三种经典的软件架构风格,并且三种风格分别对应三个本人所负责的三个项目。首先是微内核风格是本人在开发自动售票机产品时使用。第二种管道过滤器风格是本人在开发架构地铁线网行车信号监察项目时的实践应用经历。最后再介绍一下微服务风格的架构项目,这是在2020年某某城市地铁智能运维项目中的应用。由于本人所在的单位是为铁路和地铁提供技术服务和解决方案的研究机构,故本人所阐述的项目背景也以轨道交通行业为主。软件架构风格发展到当今已经枝繁叶茂了,这极大的扩展了架构师选择架构风格的范围。本文首先宏观上罗列一下架构风格家族的成员和概念,中间详细讨论一下三种结合实践的软件架构风格。最后小结一下软件架构风格的意义。

正文

掌握软件架构风格的相关知识是每个架构师的必修课,即使不能各个风格都经历和擅长,但通过学习达到能识别或者辨析各种架构风格也是相当必要,为日后架构工作时选择准确的风格来匹配业务场景提供帮助。宏观上由于软件风格不断垂直细分,风格与风格是之间关系也略复杂了。下面梳理一下或相似或隶属的关系。在独立构件架构风格中,包括事件架构风格、进程通信风格。在虚拟机风格中包括解释解析器风格、规则系统风格。仓库风格中包括黑板风格、超文本风格、数据库风格。注意要区分这不是数据流风格,因为数据流风格强调的数据处理的过程流环节,它包括了批处理架构风格、管道过滤器风格,稍后会重点讲。还有调用返回风格也是比较常用的,包括了主程序子程序风格、层次结构风格、面向对象风格,其中层次结构风格,又不同于层次架构风格,在后者中分了B/S,C/S和三层c/s。当两层C/S中独立出了服务器后,业务逻辑就不在与表示层耦合了,这样客户端就变成了瘦客户端。这样风格的程序是比较容易移植和方便客户端部署,增加安全性。尤其是能在某些客户端资源有限或者紧张的场景中使用。其它,还有闭环风格,C2风格以及SOA家族的分布式风格。

软件架构风格,是描述了某一特定领域中系统的组织方式和惯用模式,它定义了一个系统家族,包括体系结构定义,一个词汇表和一组约束。词汇表,包括一些构件和连接件类型。而这组约束指出系统是如何将这些构件和连接件组合起来的。反映了领域中众多系统所共有的结构和语义特性。

以微内核风格为例,通常包括微内核、插件和UI界面。仅是从语义上就很容易理解微内核和插件的约束关系。即插件是插在微内核上,当插件脱离微内核构件,微内核可以支撑程序继续工作。就像是热插拔U盘时并不影响电脑的其它工作和其它硬件。在复杂的应用系统场景中,当插件不可用的时候,可能会出现降级服务,但应用不会崩溃。大家都体验过自动售票机,简称tvm。它包括了出售单程票,充值一卡通,找零。现在的一些更先进设备,还有二维码的扫描器,一般几个硬件配合围绕着一个应用服务。但当不能收硬币时可以收纸币,不能收纸币时可以扫二维码,不能售单凭单程票,tvm就降级,降级服务为充值一卡通,打印机坏了就提醒不要发票,询问用户是否可以接受。这些TVM的应用场景很多人都经历过,本人开发tvm机内软件,就需要把各种软硬件模块抽象成插件。而主控,也就是微内核的角色,他掌握着事件循环,就像大脑来管理协调各种器官一样。tvm的界面与主控的是分离的,通过socket协议通信,所以严格来说这是界面分离式的微内核架构。界面(UI)可以把插件的状态显示,当所有的硬件插件不服务,界面(UI)还是可以查询地铁的线路信息。想必这种风格已经给大家很形象的认识了。

接下来介绍数据流风格的子风格–管道过滤器风格。通常每个构件都有输入和输出,数据在各种环节中处理(批处理风格是顺序处理的)。管道过滤器风格的特点是,在输入未处理完时,组件输出就已经产生了,最后呈现结果给外部或输出给其它构件。而这个构件就是过滤器。在此项目中之所以没有选择相似的批处理风格来架构,是因为信号数据是实时的指令流,而非纯后台作业。并且处理步骤之间并没有清晰的分界。所以,为了不延迟信号的连贯渲染,就只能用管道过滤器风格。同时也未使用管道过滤器可以并发的特性。本人在架构线网行车信号监察项目时的业务场景如下:外部信号承包商有一套信号协议,包括20多条指令,其中包括道岔、信号灯,还有轨道状态,还有其他的一些信号设备状态。而同时本公司内部也存在着一套信号协议和成熟的渲染程序。如果改造渲染程序来适配外部的信号协议将是巨大的工作量,并且伴随风险。而为了快速上线和高可靠性的质量属性要求。本人选用了管道过滤器风格实现了架构。即新开发了协议转换组件,它相当于风格中的过滤器角色。软件工作时,原有的分发数据的通信模块会直接调用新开发的组件,完成过滤转换。软件很快就成功的接入了外部行车信号的数据。为了过滤器转换处理效率提升,本人使用了内存管理算法健全和控制内存api强大的c和c++开发。当然开发中对内存管理稍有不慎时也会碰到,内存随着进程时间运行越久,占用越大,在几分钟之内就可以让进程崩溃。

最后在重点讲一下特别火的新晋的软件架构风格-微服务风格。他属于SOA大风格中。在分布式风格中webservice/ESB是与微服务有着些许类似,但ESB是企业服务总线。一个介于服务提供者和消费者之间的环节,虽然解耦了两端的依赖,但同时也是中心化和集中化了。而微服务是面向轻量级的协议,比如HTTP,还有API无关性。服务可以用各种技术栈来建设,微服务提供者本身也可以是另外一个微服务的消费者。微服务解决了典型的RPC存在的调用者耦合问题。微服务的架构风格说明它是更纯粹的分布式。有着小独轻松的特点。每个微服务功能单一职责,细粒度且灵活。独立部署和交付。微服务也是独立运行在各自的进程空间中。本人在某某城市地铁智能运维项目中,组织研发了以微服务风格为主的架构产品。具体的场景是:地铁业主要求在平台上监察各专业设备的状态,比如车载电源、车载空调轨道的损耗。而各厂商的方案不能串行的调试开发适配,业主要求解耦单体程序且降低运维成本。因为任何的软件和服务难免升级,而且不可控,一旦有耦合关系存在,厂商就要牵着业主的鼻子走。此时应用微服务风格就是好的选择,它具有的特点也有了很大的用武之地。各厂商拆分细粒度的微服务组件,自己业务自治,快速部署和方便管理。交付在业主提供的paas上。解耦的附属好处就是复用,很多公用微服务可以被集中管理,比如很多专业都用到了身份认证和数据字典查询。当一步步的健全微服务的生态时,许多组件可以市场化的。优秀的算法会慢慢的涌现。并且以各种红利的方式来回馈开发者。新的风格引出新的架构模式,促进相关领域的深度融合。

小结并回头来看,梳理出来的架构风格思维导图就像一棵硕果累累的树。它是前人的经验总结。前辈栽树,后人来乘凉,使用成果。

项目一旦选定了软件的架构风格,大家就相当于有了一定的抽象上的共识。现在的软件架构风格俨然成为一种沟通的媒介了。当越来越多的人在使用这个“标准语言”时,作为从业者就更加需要在架构风格上努力来学习和积累经验。更重要的是熟练根据需求的场景来合理的、灵活的选择架构风格。用好一个架构风格是需要不断的实践的。在架构风格比较时要注意,有时即便系统组织风格相同,但约束上不同,就是细分的另外的一种架构风格。当项目的成败也并不代表架构风格的盖棺定论。我们需要不断的论证和优化,吸取其他架构风格的优点,屏蔽架构风格的缺点。因为项目是变化的,一种风格与另一种风格可以混合应用,也并不是互斥的。

总结就是一种创新,这是我们秉持的态度。希望更多的架构师能探索和实践并分享。大家一起互相学习,共同进步。

架构师论文之敏捷方法

摘要

敏捷方法是一套关于软件开发的思想方法和工具体系,通过遵循一系列的宣言、价值观和核心原则,并由此演化出来的实践方法和工具,来实现更早的和持续的交付有价值的软件,最终帮助客户最大化投资收益和提高影响力和竞争优势。本人有幸在2017年加入一个践行敏捷方法的项目组,该项目是受某石化的委托开发基于地震数据分析平台来指导石油勘探的项目。需要澄清的是这里所指的地震数据并非自然灾害中的地震,而是通过主动对地放炮。分析后来采集到的地震波数据。项目在零迭代时,就确定使用hadoop来分析hdfs格式的数据,同时应用IBM的RTC来协同完成代码管理和持续构建流水线。敏捷方法在此项目中帮助很大。本人作为高级工程师和敏捷教练的身份带领团队实践了scrum过程管理。文章先会从认知理论入手,再结合项目经历分享心得。

正文

敏捷方法中主要的角色有三类:产品负责人,这是对产品投资收益代表的一类人,通常是甲方, product owner,po。开发团队简称dev。这里说明一下,团队人数应该在5~6人的规模,是以特性团队建立,最好成员中多为全栈工程师。第三类角色就是本人在项目中担当的敏捷教练,简称为sm。敏捷方法区别于其他开发方法有两个关键的判别:第一个就是敏捷是面向人,而非面向过程;第二,敏捷面向事实性、适应性而非预设性。

下面介绍敏捷方法的宣言价值观和部分原则。宣言包括个体和交互高于流程和工具,这是以人为本的体现,强调人与人之间的尊重。在项目中有高工和普通工程师,也有内部和外包等。大家彼此无缝沟通,没有等级的区别,直呼英文名,当工作出现问题时不必汇报上级可直接找到解答者。对于,沟通在一个项目开发过程中的重要作用是不言而喻的。很多人说,项目成功的70%是靠沟通,30%才是靠做任务。第二,敏捷倡导可工作的软件高于详尽的文档。曾几何时,许多项目中,文档在不同的角色中来回变换,改来改去消耗人力和物力,也没有拿出客户满意的结果。可工作的软件成了与客户与沟通的新媒介,及早地暴露风险,好过于项目失败。这一点与微服务的小独轻松的特点有共同之处,通过快速上线来得到用户反馈,降低了风险。客户在看到投资有了实质的反馈,可工作的软件并在迭代中逐渐完善,这是敏捷方法结合原型来改造传统开发方法的关键手段之一。第三点,客户合作高于合同谈判。这一点是体现着客户至上。当客户真正的参与进来,敏捷项目的流产风险才大大降低,负面抱怨慢慢会变成微笑。本人作为敏捷教练,在项目中强调指出:客户必须派驻人员在项目组,按时参加敏捷scrum管控会议。最后在客户理解了敏捷方法的要义后,承诺每周至少有一人常住项目组,确保会议至少有两人参加。一个成功的项目不一定要在合同上咬文嚼字,评审会上面红耳赤,谈判桌上拍案而起,人身攻击。客户也不是主宰的上帝和敌人。斗智斗勇的旧式项目经理也不可取。敏捷中我们不怕检查工作,审核进度。反而怕你作为客户一个月不闻不问,不来项目组。真正优质的客户看完敏捷的理念就立刻茅塞顿开了。紧接着第四点,拥抱变化高于遵循计划。事实上有许多软件按瀑布模型开发或结构化步骤,在开发还没有完成时,软件就已经被淘汰了。因为商界的变化莫测,永远是无法预估的模型。例如:安全软件460宣布永久免费后,一下子瞬间占领了8成的市场,这种例子在互联网圈中举不胜举。变化存在,而开发不响应又何谈为客户投资利益最大化和帮助客户提升竞争优势?在变化出现时,对需求变更做管理是自然必要的,但是不遵循旧计划才是敏捷所倡导的。当需求变化后,大家坐在一起重新审视用户故事,调整后续的迭代和排列product backlog item的优先级,风险共担是解决问题的基础。上面介绍了4个宣言,但注意一下,虽然敏捷倡导宣言左向的价值,但不可忽略右项的重要,流程、文档、合同、计划也是必要的。网上有人发问敏捷要不要写文档的人就走了极端。敏捷还有12条核心原则是对价值观的解释和实践的指导,是敏捷项目得以成功的基石。此处不一一展开原则,举例一下最小工作量原则,原文是:以简洁为本,极力减少不必要的工作量的艺术。它是帮助项目提高效率的指导,以防在开发中画蛇添足的工作浪费项目人员的精力。

敏捷发展到现在有许多流派,他们之间不是明显的分支,而是有共性的。在某石化敏捷项目中借鉴了极限编程XP它其中的tdd。倡导测试先行,每一个开发工程师,都要在提交代码前完成自己的单元测试。虽然编写给这gtest和junit的测试代码会占用开发时间,但每日构建时就能排除低级的错误了。对XP有借鉴的同时也有弃用项。极限编程中提出的结对编程被我主张排除使用,毕竟中国程序员的习惯还是要考虑在内的,否则破坏了团队的氛围有时更为危险。对于scrum的过程管理,在实践时会碰到各种问题,其中有一种较传统的工程师,他不能理解敏捷背后的理念问题,他很机械地执行每日站会,有时无精打采,无话可说,有时又滔滔不绝,超时每人2分钟,他讲4分钟。有一次我们在sprint回顾会议上终于听到了抱怨声音。他认为每日站会是一种监督工作和体罚,怕员工迟到等。这时SM敏捷教练就必须站出来了,于是我开了专题会正面解释。每日站会一般控制在15分钟,每人之所以要回答三个问题:我昨天做了什么,今天要做什么,我需要什么资源。这是在拉平小组内开发情况的信息,信息对称就消除了隐患,及时了解开发速率,就像协调1个车子的4个轮子共同前进。而sprint的评审会,这是将迭代的成果集成,汇总和向客户演示。而sprint的回顾会议更像是对轮子的一种清洁和检修。是要汇总在上一个sprint的过程中出现的制度或团队瓶颈问题,讨论对策和完善规则的。为防止大家对会议多且密有反感,我们在和领导讨论后决定在回顾会议上摆上水果和零食、茶水,这下子让头脑风暴环节的发言率提升了两倍。经过了几次sprint后,大家直接把回顾会议称为了水果会议了。本人作为SM,同时需要考虑到少部分人可能对敏捷知之甚少或没有敏捷团队的经历时,需要慢慢的转变。在实践中,后期加入dev的人员就很难对敏捷的此前细节完全了解。新加入到dev中来,仅简单培训了开发环境就开始干活了。所以,SM要抽时间给他们“补课”。比如,讲解敏捷项目中需求开发中使用3C的标准去采集用户故事,同时用invest来衡量一个好用户故事的标准。在sprint的计划启动会中一般会有两个阶段,第一个阶段解决why。由po来介绍自己排序的pbi,并解释明白哪些是近光灯范围,哪些是远光灯的代办项,所以远光灯暂时并不急于排到下一个sprint的任务中。而第二阶段就需要dev和SM一起研究how。即如何分解任务,如何建立架构模型、算法模型、技术准备等。二阶段时,当对PBI有问题时,可以找来po再解释和协调。在经过了第二阶段后,sprint的计划就会可以输出 sprint待办事件列表了。计划会实现一个由PBI到SBI的分解过程。SBI是sprint backlog item。此时的列表不仅仅是用户故事的分解,还包括许多质量属性(非功能需求的)的或者一些技术工作的任务加入。由于,由于在某石化敏捷项目中开发和交付应用了IBM的RTC协同工具,所以代码管理,定时抽取,每日构建都是自动化的。所以提交sprint的成果并不用占用一条sbi。所以在敏捷方法指导项目开发前需要准备好 devops的工具链,这样能让项目事半功倍。有人把这种技术选型、创建工程、基础设施的准备和自动化部署结合统称为零迭代。有句话说得好,磨刀不误砍柴工。同样在实践时如果估计不出团队的速率,可以牺牲第一次迭代来投石问路,这样为以后准确地制定计划提供了参考。

某石化敏捷项目最终上线受到了客户的好评,帮助了地震数据指导石油勘探方向上许多创新的探索。纵观目前的众多开发方法,能在客户、研发团队和公司管理层之间游刃有余,协调资源到位的方法非敏捷方法不可。在未来也希望更多的项目应用敏捷或借鉴其中优秀的特性,本人仅以个人经历和项目场景为探讨契机,提出观点供大家参考。下面就列出一些文中提到的术语解释。

论中国足球–心理问题高于技术问题

原因一:中国的俱乐部成绩一般能高于国家队

中国恒大和山东,上港现在外战都可以了,而且俱乐部的梯队也上来了,归化也开始磨合了。现在国足和俱乐部除了一个国字,几乎差不多的,但就是这个国字,让选人出现难度,让选上场的人脚上注铅,为名声、为钱财、却不为荣誉。

原因二:归化的“桔”成了“枳”

–从野牛到洛国富,阿兰却还是阿兰

这么说,你大概就明白了我的隐喻。不明白,就读,桔生淮南则为桔,桔生淮北则为枳。当然,归化是终归有利于中国足球进步的。野牛还距离阿兰一样的境界有段境界。我指是他需要改正那股不该有的“锐气”。这不同于有年少气盛的韦世豪气,而是一种怀才不遇的“自以为是”。当然,我不是在攻击这种球员,反而希望国足多一些这个类型的。他们是有水平的,只是更喜欢发挥在更衣室和场面上的战术违规。在俱乐部,没有压力,也没有关注,可以到了国家队,那是责任,国之面子,技术高的让自己不甘心,看到不如自己的人场场首发,被“二桃杀了三士”。你可以理解野牛上场时的心态,就是要秀,争口气却失掉了传球的意识。而蒿俊敏也还没有学会收敛锋芒,让双输挡在自己职业生涯的高度。

原因三:留洋的人数就是底蕴和心理优势

看韩国有英超德比,看日本队主流球员已经都是有留洋血统的了。

而中国留洋的“星”成了单刀“黑洞”。每次武磊在国家队发挥的水准是没有国外好的。这也是正常,但是,调焦好每个球员的水平是教练的责任。不能因为他是高水平的,就一定派上场,而且能发挥好。因为,每个人都知道,不派上武磊出场,比赛输了,要担当的舆论压力。

张玉宁让留洋的经历留在自己的血液里。而我们的武球王,却盛名之下,其实下滑。

  1. 打越南,第一个单刀不进,玉宁补的。(刚和巨星换过球衣的武磊,没时间去练一下,刚在西甲错失的单刀。如果练了,不信这个球是玉宁的)。

  2. 第二个球让武磊占得了美誉,可是,他说自己没碰到,是王新超的任意球破门。好,如果是怕进球被说是越位的角度,我赞美你。但事实上,你真的是没碰到。你还为国家寸功未立的状态呀。

  3. 第三场了,你还没有练习单刀,两次前车之鉴了。要不,你先看看孙兴敏的进球也算你上心了。

小结

中国足球队的教练需要更多的是圆滑和心理学“学位”。米卢要说战术有多么牛,也未必高过里皮吧?只能是名帅之一。但是,他能让中国队忘记自己是“中国队”。

大佬们,中国队进不去世界杯,你们依然是吃香喝辣。俱乐部也能稳步提高。但是,你们的青春,你们的职业生涯有色彩吗?他人也罢,只为吴曦和张琳芃而惋惜。

长津湖观后感

看了电影总感觉思绪停不住,但又有大V公然侮辱志愿军先烈,就有了下面的文字。

首先,先收集一下未了的情节:

1)红围脖为什么不设计进彩蛋。千里,万里回家盖房子场面也是不赖的创意。

2)伍百里的牺牲,好像在电影中未交待清楚的感觉。所以,故弄玄虚,且不完整。

导演多了,线索也交待不完了吗?

下面聊些亮点吧:

  • 有钢七连,就有兰晓龙,就有第328个兵,就有李晨,段弈宏的士兵再突击。

兰作为电视《士兵突击》和《长津湖》的编剧,情节相似却不熟套,念念不忘,必有回响。这是让人喜欢的,共鸣的情节,因为,所谓许三多的钢七连,此刻应该j掷地有声了。你能理解电视剧中,军宣传报社有人弄错历史,诋毁七连荣誉时,那群扛着老团旗堵门讨说法的士兵的心情。

  • 致敬山东沂蒙山区的老兵

雷公,小山都是山东籍贯的。而那次战争也都是有原型的。参考如下:

https://mbd.baidu.com/newspage/data/landingsuper?context=%7B%22nid%22%3A%22news_8810030719094925385%22%7D&n_type=0&p_from=1

钢刀有刀刃,那么能端掉陆军指挥部的,缴获美军”北极熊团旗“的,需要更有胆识的英雄。欣赏以个人的最小的牺牲去换取对敌人的最大杀伤。我不否认,艰守阵地的李根才是英雄,也佩服那冻死成冰雕的战士。服从命令是军人的天职。也正是千千万万个先辈替我们打了仗,才让我们能在红旗下,享受生活。

而我们中的甚者,哗众取宠,浅了说是不知羞耻,深了说是叛国者。国之主流思想是不容有差错的。就像,军国主义的教育就会有对外的侵略。任何毁誉英雄的行为,就是对国家的不忠。就是在试探国民的意识,那么,现在罗大V被邢拘了,中国人民永远不会包容这类人,中国这个醒龙的双眼也不会再被蒙昧了。

且看北京报对大V事件的回应:

https://mbd.baidu.com/newspage/data/landingsuper?context=%7B%22nid%22%3A%22news_8329342926969500520%22%7D&n_type=0&p_from=1

《觉醒年代》-坚韧意志之路

最近,中国疫情得到控制,为世界抗疫作出了表率。国家领导到基层干部全面重视,党员带头冲锋在一线,群众影响号召。大家减少外出和聚集。决胜武汉之后,全国各地又严格执行常态化的防控管理。影响是巨大的,但难不倒有着坚韧意志的中国人。

说到坚韧的意志,就不得不说央视大剧《觉醒年代》。

即便不是因为疫情让我们有更多时间品味它,也应该是因为中国共产党走过百年,回首那个时代中国人的探索和奋斗,是相当必要的。

于老一代无产阶级革命家来说,他们就像翻开一部珍宝般的影集。而对于80后,在红旗下成长过程中熏陶的碎片记忆后,更好奇的想拼出那个”胜负手”的原汁原味。而更年轻的人们可能又像是等着书画的白纸,对党的历史也更好奇。所以,在党的百年之际,用最还原历史的,慢节奏的,青春的,现代质感的……,总之,绝对不能错过。

无数的镜头中给我留下较深印象的是,陈独秀家门前到胡同口的泥泞之路,毛主席在火车上换回适合自己脚的草鞋,延年和乔年在法国没有学费也坚持原则。他们面对着现实生活的问题没有丝毫的抱怨,就像也摆在旧中国面前的未来之路问题,他们同样也当仁不让。路泥泞了可以垫砖,草鞋虽然不及皮鞋保暖,但草鞋的好处是材料取之不尽,用之不竭。生活启发着他们,他们启发着中国。《新青年》和北京大学是新文化运动的重要源泉,蔡元培的不拘一格的聘请教授进入北京大学讲坛,让北大兼收并序;仲傅和守常还有鲁迅的文章在每个不愿做奴隶的中国人心中生根发芽。由八股文到白话文,由新文化到五四运动,由改良到斗争,从斗争到革命,由革命到不怕牺牲,南陈北李,相约建党,直到奉献生命给共产党,奉献给中国。每一步都有人睡去,或者不愿醒来,同样,每一步也有人不断的觉醒。胡适先生专搞他的美国化和学术去了,吴疯子从反封建斗士彻底变成了人民的对立面,出卖了延年和乔年(陈独秀的两个儿子)。而不知不觉间,延年和乔年也由最终坚持的无政府主义变成了共产党最坚定的支持者。落伍掉队者要么苟活着被淘汰,而举火照亮前面之路者难免被火迫害。然而,那火炬如红旗一样永远不倒。因为,东方睡狮已经醒来,中国就要跳过资本主义建立有中国特色的社会主义。自己的路自己作主。党的初建成员,大都没有逃过国民党的杀害。杀伐是扼杀思想的利器吗?清朝错了,军阀错了,不得民心的国民党在几十年后又错了一次,杀伐是征服一个民族的利器吗?日本人又错了。中国共产党的路,越走越宽了,跟随他一起走路的人越来越多了,有工人,有学生,有农民,现在有着各行各业的人,全中国的人。

但这部电影让我们铭记先烈的奋斗目标和梦想。也鼓舞了当下疫情中的中国,没有什么坎儿是中国人跨不过去的。因为我们有着坚韧的意志和共产党领导的路。

敏捷开发价值观和原则

敏捷是一套关于软件开发过程的思想,方法和工具体系,通过遵循一系列价值观和核心原则,并借助由此演化出来的实践方法和工具,来实现更早和持续的交付有价值的软件,最终帮助客户最大化投资收益,提高影响力和竞争优势。

—概念
本文以下系转载,原地址:https://blog.csdn.net/anderslu/article/details/57422377

敏捷开发的核心理念:

敏捷开发的核心理念:敏捷开发的核心理念就是以最简单有效的方式快速地达成目标,并在这个过程中及时地响应外界的变化,做出迅速的调整。 敏捷开发的第一条价值观就是“ 以人为本”,强调“ 个体(人)” 及“ 个体” 间的沟通与协作在软件开发过程中的重要性。这个顺序不是偶然而为之的,敏捷开发将重视个体潜能的激发和团队的高效协作作为其所推崇的第一价值观。 敏捷开发的第二条价值观就是“ 目标导向”。同其他众多管理理论和模型一样,敏捷开发认同目标导向是成功的关键,因为没有目标也就无所谓成功。敏捷开发的价值观中清楚地阐明,软件开发的目标是“ 可工作的软件”,而不是面面俱到的文档。而遗憾的是,很多软件项目已经在纷繁的文档之中迷失了自己的目标。 敏捷开发的第三条价值观就是“ 客户为先”。虽然敏捷开发强调的第一价值观是“ 以人为本”,但敏捷宣言的缔造者们并没有忘记客户,相反他们真正的理解客户的需求、懂得如何与客户合作。敏捷价值观里强调的“ 客户为先”即不是简单地把客户当作“ 上帝”、刻板的推崇“ 客户至上”,客户要求什么、我们就做什么;也不是把客户当作“ 谈判桌上的对手” 甚至“ 敌人”,去斗智斗勇。敏捷价值观把客户当成了合作者和伙伴,把自己的使命定位为“ “ 帮助客户取得竞争优势”。 敏捷开发的第四条价值观就是“ 拥抱变化”。人们常说“ 世界上唯一不变的就是变化”,大多数人也相信事实确实如此。而以往很多的软件项目却忽视了这一点,或者更准确地说是他们不愿意“ 正视”。他们总是试图用详尽的计划去预先穷举这些变化,然后又试图通过严格遵循计划来控制变化的发生,而结果往往是被不断涌现的变化击垮。敏捷开发价值观中承认变化是软件开发的一部分、并相信正是客户在不断变化其需求的过程中明晰了其真正的需要。因而敏捷开发欢迎变化、拥抱变化,并可坦然应对变化,正是这些变化为客户和项目带来了价值。 再次梳理可以总结和上面意义相近的左右值比较项:
  • 个体和互动高于流程和工具
  • 工作的软件高于详尽的文档
  • 客户合作高于合同谈判
  • 响应变化高于遵循计划
最后,还应记住敏捷宣言中的最后一句话:“ 尽管右项有其价值,我们更重视左项的价值”—敏捷宣言并未否定或贬损“ 右项” 的价值,在敏捷开发的价值观中承认“ 流程和工具”、“ 详尽的文档”、“ 合同谈判” 以及“ 遵循计划” 的重要性,只是两相比较,“ 更重视左项的价值”。

敏捷开发的十二条原则:

1)我们最重要的目标,是通过持续不断地及早交付有价值的软件使客户满意。 2)欣然面对需求变化,即使在开发后期也一样。为了客户的竞争优势,敏捷过程掌控变化。 3)经常地交付可工作的软件,相隔几星期或一两个月,倾向于采取较短的周期。 4)业务人员和开发人员必须相互合作,项目中的每一天都不例外。 5)激发个体的斗志,以他们为核心搭建项目。提供所需的环境和支援,辅以信任,从而达成目标。 6)不论团队内外,传递信息效果最好和效率最高的方式是面对面的交谈。 7)可工作的软件是进度的首要度量标准。 8)敏捷过程倡导可持续开发。责任人、开发人员和用户要能够共同维持其步调稳定延续。 9)坚持不懈地追求技术卓越和良好设计,敏捷能力由此增强。 10)以简洁为本,它是极力减少不必要工作量的艺术。 11)最好的架构、需求和设计出自组织团队。 12)团队定期地反思如何能提高成效,并依此调整自身的举止表现。
  • 敏捷开发原则是对敏捷价值观的解释和实践,它将敏捷的价值观落实到具体的可操作的原则之上,遵循这十二条原则,是敏捷软件开发项目得以成功的基石。
  • 这十二条原则囊括了软件项目管理的所有基本流程,而且这些流程足够具体,它告诉我们项目管理的第一步就是要明确目标,而软件项目的终极目标就是“ 不断地及早交付有价值的软件使客户满意”;它提示我们软件工程的起始点是需求,而需求的固有特征就是不断变化,敏捷开发过程要响应变化;它强调“ 可工作的软件是进度的首要度量标准”,因而需要以尽可能短的周期“ 经常地交付可工作的软件”;它重视相关干系人的协调(“ 业务人员和开发人员必须相互合作”、“ 责任人、开发人员和用户要能够共同维持其步调稳定延续”),重视激发个人潜能(“ 激发个体的斗志”),要求团队使用最高效的沟通方式(“ 面对面的交谈”);它推崇技术变革所具备的强大能量(“ 坚持不懈地追求技术卓越和良好设计”);它强调精益生产(“ 简洁为本”),要求项目采用自组织团队管理模式,并指出“ 定期总结反思” 是校准团队行为、最终达成目标的有效途径。

三苏之程

唐宋大家八占三,进士兄弟皆学霸, 少年壮志妈姓程,大器晚成学渣爸。

—本人有感而发
三苏之程,即有旅程之意,又有对三苏背后的女人程夫人的赞赏。 这个女人可以说影响了中国的家庭教育观 然而,二十七岁前的苏洵,可以说是“考渣”和“顽徒”。但他有一个好媳妇–程夫人。 当这个不务正业的父亲考了十年进士不中后,发现了比兄弟们早早成才更让自己痛苦的事。 自己的两个儿子学业有成,才气直逼老爸。程夫人的育儿水平让大家倒吸一口冷气。 当看到孩子比自己当年出色,这种感觉只有做了父亲的人才能体会微妙。有人说:男人的成熟是在他当了爸爸之后。这不无道理。 苏洵的父亲,也就是苏轼的爷爷叫苏序。对苏洵的不务正业的态度是顺其自然,当年的不务正业也就是泛指所有的非科举之业。但苏洵游历多地,颇像李白的到处转悠,也正是因为这些历程让他得到了很多的积累。在后期能够大器晚成,出名出仕有很大帮助。 这故事中,值得玩味的点很多,对现今更有教育的意义。 1)犬子激励虎父,学渣教出学霸。 好一句“小儿如拾芥”,摘于:
莫道登科易,老夫如登天。 莫道登科难,小儿如拾芥。
2)三苏游京之风光时,背后的那个女人却病逝于老家。 好一句“内失良朋”摘于:
与子相好,相期百年。不知中道,弃我而去。 嗟予老矣,四海一身。自子之逝,内失良朋。
3)夫妻情,父子情,兄弟情。 好一幕“兄弟归老一处”: 在苏轼弥留之际,想念遥远的兄弟,仍不怕奔波之苦难,为的是能与兄弟苏辙再续童年的记忆,并最终与家人合葬一处。 这就是著名家族三苏的故事。 在中国近代,又有一个家庭的父子三人对中国的贡献颇大。 那就是三陈:陈独秀和他的两个为国捐躯的儿子,陈延年和陈乔年。 中国历史的三苏与三陈。 想了解更多可以去看《觉醒年代》。 也借此文,向7月1日党的百年华诞献礼。

docker容器仓库私服建立

本人有一台云服务器182.254.……(公网地址),所以,在上面操练容器仓库,方便以后推送部署产品。使用者用自己的环境替换一下即可用。

工具准备

->安装registry

docker pull registry:2

然后就看到images中存在了。

运行它的命令如下:

docker run -itd -p 5000:5000 –name dlregistry -v /home/home4dk:/var/lib/registry registry:2

注意事项

->修改环境变量

1)修改文件

vim /etc/docker/daemon.json

加入内容

{

“registry-mirrors”: [“https://llpuz83z.mirror.aliyuncs.com”,”https://registry.docker-cn.com”],

“insecure-registries”: [“182.254.……:5000”]

}

2)加环境变量

这会让https变成http来访问推送

export INSECURE_REGISTRY=182.254.……:5000

3)然后再启动docker

systemctl daemon-reload

systemctl restart docker

推送实验

要推送本地要有一个打好tag的镜像才行。

#从自己本地的镜像中选一个相对小的做推送实验品,空间小上传快一点

docker tag docker.io/redis:latest 182.254.……:5000/testredis:7

#上传具体命令

docker push 182.254.……:5000/testredis:7

当推送成功后可以用浏览器看:

http://182.254.……:5000/v2/_catalog

http://182.254.……:5000/v2/testredis/tags/list

同时在与容器映射的文件夹下也看到上传后的序列好的文件(从docker开始都是系统建立的)

ll home4dk/docker/registry/v2/

五笔第一课

1-五笔根基

五区

横竖撇捺折

在笔划区域概念的基础上,可以参考键盘的具体字母映射关系。

注意:字根口诀是一定要背的,直到你已经会盲打。

字根表

2-简码和词组

一级简码

打一个字根,重复两次,三次,四次,会出现一些字,在这里统称为广义上的一级简码。

打G,会出:一,五,王。

打F,会出:地,寺,圭,土。

……

看每个字母打下去你就搞定至少3个字,而且是使用频率最高的字,所以,五笔不难,你已经学会理论上的大约26*3个字。

四笔字根

  • 多于四笔字根的字

直接前三笔加最后一笔

  • 少于四笔字根的字

就是字根打完还不到4个码的情况,并且字根拆解清楚的,比如左右或上下结构很明显。

这有两种情况:一是字根周边,一个是非字根源。

非字根源的:

比如“芹”字,打完a(草字头)r(斤),第三笔就需要末笔码。

如下表:

结构
备注(末笔)
左右
G
H
T
Y
N
上下
F
J
R
U
B
点也是捺,提也是横,竖钩是竖
其它
D
K
E
I
V

有字根源的

另外一种情况即可以说有”户口“的。

首先找第一笔的区,比如卜第一笔是竖,那么第一码就打h,然后就一步步的用码写字喽。第二码就是竖–h,第三码就是点,也就是撇–y

hhy–卜就打出来了。

如:石字,先报上户口-d,再打第一笔-g,第二笔-t,和末笔画横-g。同样斤也是要R报户口,T第一笔,T第二笔,竖最后一笔。

二字词组

各字前两笔

二级简码

比如:cn—马,vt—九,vn—刀

三字词组

前两字的头一笔,最后一字前两笔

四字词组

每字头一笔

多字词组

kwwl会打出什么?

K–中的第一笔,W–华的第一笔,W–人的第一笔,……最后就是国的第一笔–L

3-特殊字

一笔字

一:ggll

丨:hhll

乙:nnll

丿:ttll

丶:yyll

这就该算是五笔的一个特别规定,只有一笔的字为键面码两次加两个L。

4-疑难字策略

划重点喽:

1)可以选择极品五笔或者万能五笔。这两类可以兼容拼音,忘记了字根就拼吧。

2)不会的打的字一定可以组词,那么就打词,再去掉不用的字。

3)百度喽,重要的是,当你查到或者打出了疑难的字,一定要去理解一下为什么自己没折字成功。只为下一次,它不会再难倒你。

4)最后,当字码摆出来,你也不理解为什么时,那就一条路了,死记硬背嘛。无招胜有招。

5-五笔资源

https://haokan.baidu.com/v?vid=2382683989118497467

https://haokan.baidu.com/v?vid=9040386477116581464

拜读老子—-三知三守

知其雄,守其雌,为天下溪。 为天下溪,常德不离,复归于婴儿。 知其白,守其黑,为天下式。为天下式,常德不忒, 复归于无极。 知其荣,守其辱,为天下谷。 为天下谷,常德乃足,复归于朴。 朴散则为器,圣人用之,则为官长,故大制不割。

—–《道德经》老子
知其雄(知道阳刚的雄健),
守其雌(却甘愿安守雌柔),
为天下溪(好比天下的溪流)。
为天下溪(成为天下的溪流),
常德不离(自然之德陪伴左右),
复归于婴儿(这样就能回复婴儿般的纯真自然)。
知其白(知道光明在那里),
守其黑(却安于暗昧之处),
为天下式(甘愿做天下人的榜样)。
为天下式(成为天下人的榜样),
常德不忒(自然之德不会丢失),
复归于无极(这样就能回复到最初的无极状态)。
知其荣(知道荣耀的珍贵),
守其辱(却能守得住耻辱),
为天下谷(就像天下的虚谷一样)。
为天下谷(天下的虚谷容纳万物),
常德乃足(自然之德才能富足),
复归于朴(这样就能回复到返朴归真的境界)。
朴散则为器(这种品质的人到哪里都是成大器者),
圣人用之(圣人如果用他),
则为官长(会让他做领导),
故 大制不割(所以完善的制度是自然而成的,是不可分割的)。
这一章的中心思想是用三知三守来阐述不争、无为、静虚的‘道’! ‘老子’即看到了人们的正反两面;世人都追求刚强、光明、荣耀,而‘老子’却认为雌柔、黑暗、耻辱也是应该坚持的。他希望人们像出生的婴儿那样不为荣辱所惑,无私无欲,纯朴无邪。 这里可以隐约看出‘老子’反对利用仁、义、礼、智、信这些概念去约束人、塑造人,他认为这些外部的约束只会扭曲人的本性,只是小道而。只有顺从自然、顺从道,才是永恒的德行。完善的制度也应该是这样,包含事物的不同方面,而不是割裂分隔的! 我们可以看出‘老子’对于‘阴柔’有很多赞扬。如之前的章节: “第十章:专气致柔,能婴儿乎? 第六章:谷神不死,是谓玄牝(pìn), 第四章:渊兮似万物之宗 ,第八章:上善若水。水善利万物而不争,处众人之所恶(wù),故几(jī)于道…” 这里有柔、婴儿、玄牝、渊、水等字眼都能说明老子看待事物的全面性,因为‘道’包含阴阳,必须有两面性,人应该也是这样! 做人既要有美好的理想,也要有包容当前的不足,这就是‘知其白,守其黑’,要能看到人性的光明,也要正视人性黑暗,只有这样才能为天下人的模范。‘水至清则无鱼,人至察则无徒’,所以不能过于偏激。 这里说的‘知荣守辱’,也是一种心胸。向往荣耀,也要能坚守耻辱,这样的人才能展现远大报复!很好理解,比如韩信的‘胯下之辱’,如果当时韩信一怒杀了人,很可能就成了囚犯,哪有后来的‘兵神韩信’!再比如勾践当时的不屈服,哪有后面的的卧薪尝胆复国的机会。所以说‘知荣守辱’很是重要! ‘老子’说“复归于无极、复归于朴,朴散则为器,”是一种返璞归真的一种状态,只有这样的人才能成大器。这里的无极、朴也说明了内心的静虚和纯朴,只有这样才能近于‘道’。 做人应是一种复归,应是一种超越,是在经历、知道、体验、饱尝、失去之后的重新获得,那是不同的生命状态,那也是人的觉醒! 老子本章阐述的“知其雄,守其雌”,“知其白,守其黑”,“知其荣,守其辱”,是一种知阴阳、知进退、无为合道的处世哲学。只有这样才能返璞归真,超越自我! 结构解读
阴极
核心式(个人领悟关键)
阳极
雄雌
黑白
荣辱
婴儿
无极
由太极过渡到无极,把中间那条界限化掉。太极,是没有玄的,实际上它没有玄。 阴中含阳,阳中包阴。其状态如同混沌已经初判了一样,所以我们不可能在玄上逗留很久。就是这个东西你不可能把它分割开来的。你一分割,它就不成为道了。 以下转来,深以为是
任何事情都是比较而存在的。你看第二章, 故有无相生,难易相成,长短相形,高下相倾,声音相合,前后相随, 连用了六个相,它实际上就是叫你比较。 整个宇宙,都是比较而存在的,你不能单纯的提倡哪一个问题,撇开其他的问题。实际上现在科学犯的毛病就是这个毛病。 今天讲的两章的都是非常重要的,也是我们修道中很容易犯的弊端。在未来的世界,未来的人中间,所要产生的基本理念,都要从这两章中产生出来。 我们在这个自然中间生存,或者是修道,都存在非常重要的一点,那就是你的创建意识。这一点非常重要。有很多人他没有创建意识,他只能跟在人家的屁股后面跑。人家说什么,他就也说什么,人家理解什么,他也跟着理解什么,这是一类。 但是有的人他根本就不用跟着人家跑,他就知道我自己应该怎么想,应该怎么做。像这样的人他境界肯定就高一层了。 有的人,他是学了古人的经验,就像现在很多人在提倡读经运动一样,古人把他的许多生存经验写成了书,写成了经文,你去背它。你背时间长了以后,你就形成了圣人那种行为方式,但这个行为方式毕竟是它阳性的那一面,这就和师父在这个地方讲的式,大相径庭。 从这一点上来说,一般学而知之的人,他就没办法得道。因为他的创建意识没办法溶进阴性的那一面去。从阴性的那一面,他不容易获得谷的那种效应。他没有回应,就是他虚无的一面没有精神,这个精神实际上就是圣人的,你最后就没有自己的立足点。 过去师父就把这个叫境地,境地这个东西很重要。你完全按别人的去修,到最后你连立足的地方都没有了。 你头脑中都是人家的思想,那个时候你根本就修不下去的,很多人都有这个问题。读书读多了,经文看多了,最后他就有依赖性,信佛的人也是这样。他每天读经也好,念佛也好,烧香也好,磕头也好,搞来搞去,最后都是佛说的,菩萨说的,要他自己说呢?他说不会说。 你既然不会说,那你怎么还有自己哪?没有了。那你只能根据佛祖说的,你跟着佛祖的影子,然后再去学佛。实际上作为佛来说,每个人身上都有。 佛性平等,佛性既然每个人都有,那就没有分别。那么他自己如果要有创建性的话,自己走自己的路,自己说自己的话,自己做自己的事,同时自己修练自己的成果,最终你才能够成就真正的佛。 有的人就说,好像一个住持就能修成菩萨果位,游方的和尚就永远都沾不上边。这明显的是给人一种思维上的错觉,这种说法本身就站不住脚的。 你看那个济公和尚,一辈子在灵隐寺里面,也没做过住持,他是最大的佛,最大的菩萨。当然济公式民间所造出来的一个比较好的形象,是民众对佛教组织中保守势力的一种嘲笑。你看,真正是佛的人,他是没有任何讲究的,所以说济公,他是道家人物。 问:不贵其师,不爱其资,虽智大迷,是为要妙。这句话,按大多数人的解释,是否也可以说得通? 通,肯定是说得通的。还是那一点,还是个“式”的问题,因为阳性的一面肯定有阳性的说法了。 但你要抱什么?你要抱阴性的一面。你永远不要搞忘了这个式,式是个立足点。 这个你没看清楚或者你没想过的话,最后你自己就飘逸了。那你看这个版本,人家是这么说的,那个版本又是那么说的,就像xx老师一样,他把每个版本都考证过了,考证来考证去有什么意义呢?把古人的话一看你就知道,噢,有很多字是相通的,很多意思很模糊,特别是他现在搞的一个版本,长沙的甲本吧? 很多字,意思尽管看起来相反,但是它的含义不一定相矛盾的,这就是老子所说的式的原因。因为这个式里面本身有阴阳两重性,他说了阳性的,然后他也说阴性的。然后他告诉你,阳性的一面是怎么表现的,阴性的一面是你的根子,你不能把它放到旁边不管。 常人一般抱去抱来,都是抱住了阳性的东西,对阴性的他根本都不去理解。 你比方说,对于师这个问题,我们犯的错误,实际上都是这个错误。看到一个老师就盲目的崇拜,就以为能够从师傅那个地方学到一些东西。你学到学不到呢?学不到的。 当初xxx,她对x 老师非常崇拜,要不然她怎么会在她家住三个月?可以这样说,是供养了三个月。专门请个保姆去照看她。这叫贵师,他不爱其资了。 尊师不等于贵师,贵跟尊是两个截然不同的概念。过去有句话,叫做言语道断。就是你只要开口说话,道的基本性质就丧失了。靠语言解释这些问题的时候,解释不了的。像我们现在只能说是抱着学生的角度、做弟子的角度,慢慢的去想,大概有哪些观点是我自己能够认识到的。 是不是能依靠别人的意识去认识这些问题呢?不是的。我要靠自己去认识。你多几个自己去认识,这个时候你就会发现,噢,问题不是那样。 我的原话是这样说的:所以对师的尊重要放到内心,认真地去体悟为师的隐衷。 也就是“师不为师,众人为师”。从大众和万物这些对立面中,去体察大道之为师。 同时对所有获得的任何教益,都要若即若离,不可偏爱,只可无心而应。这样,即使你心中知道很多事情和要窍了,可是你的外表仍然显得迷迷登登,谓为大智若愚,这才是修真者求师问道的玄妙之地界。谁能解否? 当年我是这样写的,我想这句话拿到现在来说,也能解答您的问题。 《道德经 》大家要学、要看、要听,大家还是要自己动动脑筋。当然这需要一个前提,那就是自己的实践一定要有一个基础,这个实践基础实际上就是你信息量多和寡的问题。 如果你信息量很多的话,你就可以从信息量中比较出来师父他说的是什么意思。你的信息量太寡了,或者你太执着了,你执着于一个想法,你就很难以知道老子本来的想法到底是什么。 为什么要换一个角度呢?就是上一章讲的最后一个道理,你颠倒总是有好结果的。为什么有好结果呢?最起码有一个新品种产生。 所以说任何事情他都是矛盾,又统一,人修炼 无非就是利用这个矛盾和统一,找到它的共性,然后去张扬它的个性那才行。 你没找到共性,你盲目地去张扬个性,到最后,你就被自己的个性所限制。而且你自己甚至把自己扼杀了,你还不知道。
有物混成,先天地生. 寂兮寥兮,独立而不改,周行而不殆。

——《道德经》