项目管理维护
文章平均质量分 63
AlbenXie
这个作者很懒,什么都没留下…
展开
-
Java:注释规范(配合EasyYapi使用)
分类名称接口描述@author@date。转载 2022-07-31 01:21:41 · 783 阅读 · 0 评论 -
灰度发布&蓝绿发布
应用现状应用程序升级面临最大挑战是新旧业务切换,将软件从测试的最后阶段带到生产环境,同时要保证系统不间断提供服务。如果直接将某版本上线发布给全部用户,一旦遇到线上事故(或BUG),对用户的影响极大,解决问题周期较长,甚至有时不得不回滚到前一版本,严重影响了用户体验。解决方案长期以来,业务升级逐渐形成了几个发布策略:灰度发布、蓝绿发布、A/B测试、滚动升级以及分批暂停发布,尽可能避免因发布导致的流量丢失或服务不可用问题。本文着重介绍灰度发布和蓝绿发布的原理及实践案例。灰度发布,又称金丝雀发转载 2022-05-26 17:36:09 · 1688 阅读 · 0 评论 -
IDEA修改项目模块名称的显示
一、找到Project Structure二、修改name转载 2022-03-25 13:44:59 · 683 阅读 · 0 评论 -
快速学习时序图:时序图简介、画法及实例
一、 什么是时序图?时序图(Sequence Diagram),亦称为序列图、循序图或顺序图,是一种UML交互图。它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。时序图是一个二维图,横轴表示对象,纵轴表示时间,消息在各对象之间横向传递,依照时间顺序纵向排列。二、 时序图的作用是什么?1、展示对象之间交互的顺序。将交互行为建模为消息传递,通过描述消息是如何在对象间发送和接收的来动态展示对象之间的交互;2、相对于其他UML图,时序图更强调交互的时间顺序;3、可以直观的描述转载 2022-02-15 14:39:39 · 85609 阅读 · 2 评论 -
时序图怎么画
笔者坚定认为,在绘制任何图形之前,都应该先弄清楚图形的概念、组成元素以及绘制规范。这有助于提升我们的绘图效率。什么是时序图? 时序图的组成元素 如何绘制时序图?(附微信二维码支付案例)一、什么是时序图时序图是UML交互图中的一类,又名序列图、顺序图。用于描述对象之间的传递消息的时间顺序(包括发送消息、接收消息、处理消息、返回消息等)。二、时序图的组成元素1、对象对象代表时序图中的对象在交互中所扮演的角色,一般使用矩形表示。如果对象位于时序图的顶部,说明在交互开始时对象转载 2022-02-14 15:11:48 · 34108 阅读 · 1 评论 -
程序员绘图工具-Plantuml
在写文档的过程中,经常需要进行画图。虽然说现在有很多类似viso之类的可视化画图工具,但是还是要花费大量时间在拖拉组件上,效率十分低下。最近在网上找到了一款还算不错的绘图工具-- Plantuml, 它本质上是也算一门可以快速画图的设计语言,学习起来也很方便。可以在Open-source tool that uses simple textual descriptions to draw beautiful UML diagrams.网站上体验一下。在vscode, webstorm都有相关的插件可以使用转载 2021-12-20 19:45:27 · 30366 阅读 · 1 评论 -
IDEA git 切换分支注意事项
IDEA 帮助文档提供了切换分支时的选项说明:1、本地分支切换的时候(例如A切到B),会弹出来Restore workspace on branch switching 对话框,如果选择是的话,在切换分支的时候,你在当前分支(A)所做的一些还未add或commit/push的文件改动(包括断点等的设置)会带到切换后的分支(B)上;2、如果本地工作空间没有uncommitted changes, 分支会顺利切换3、如果本地工作空间(分支A)有些文件会被分支B改动,IDEA会弹出对话框,让你选.转载 2021-09-11 15:50:41 · 1862 阅读 · 3 评论 -
Git本地新建、删除分支 并推送到 远程仓库
一、常用增删命令(本地&远程)1、在本地新建一个分支git branch newBranch2、切换到你本地新建的分支git checkout newBranch3、创建并切换到新建本地分支git checkout -b newBranch4、将新创建本地分支推送到远程仓库git push origin newBranch或者git push 远程仓库名 newBranch5、删除本地一个分支git branch -d newBranch6.转载 2021-09-08 10:23:53 · 1330 阅读 · 0 评论 -
idea 直接进入方法的实现
1、对该方法右键——>选中GOTO——>然后选择implementation即可2、直接快捷键Ctrl+T原创 2021-09-07 18:06:37 · 5049 阅读 · 1 评论 -
警惕软件复杂度困局
简介:对于大型的软件系统如互联网分布式应用或企业级软件,为何我们常常会陷入复杂度陷阱?如何识别复杂度增长的因素?在代码开发以及演进的过程中需要遵循哪些原则?本文将分享阿里研究员谷朴关于软件复杂度的思考:什么是复杂度、复杂度是如何产生的以及解决的思路。较长,同学们可收藏后再看。写在前面软件设计和实现的本质是工程师相互通过“写作”来交流一些包含丰富细节的抽象概念并且不断迭代过程。另外,如果你的代码生存期一般不超过6个月,本文用处不大。一 软件架构的核心挑战是快速增长的复杂性越是...转载 2021-05-19 18:17:58 · 567 阅读 · 0 评论 -
代码的抽象三原则
软件开发是"抽象化"原则(Abstraction)的一种体现。所谓"抽象化",就是指从具体问题中,提取出具有共性的模式,再使用通用的解决方法加以处理。开发软件的时候,一方面,我们总是希望使用别人已经写好的代码,另一方面,又希望自己写的代码尽可能重用,以求减少工作量。要做到这两个目标,这需要"抽象化"。最近,我读到美国程序员Derick Bailey的一篇文章,谈到"抽象化"应该遵循的三个原则,觉得很有启发。一、DRY原则DRY是 Don't repeat yourself 的缩写,意转载 2021-05-19 16:00:33 · 525 阅读 · 0 评论 -
三条你必须知道的软件开发原则
前言在本文中将介绍3条重要的软件开发原则,你可能已经知道,也可能只知道其中一条。这些原则看似很简单,但实施起来会很难。无论如何,这些原则提供了一个管理复杂软件项目的强大的途径。当涉及到真实世界中的项目开发时,你会发现这些原则都是非常有用的。原则1:不要重复自己(Don’t Repeat Yourself,DRY原则)这个原则非常重要,换言之,就是不要写重复的代码。当你正在构建一个大型的软件项目时,你通常会被整体复杂性搞得不知所措。解决复杂性的最基本的策略是将系统分成若干个容易处理的部分。起初转载 2021-05-19 15:35:54 · 524 阅读 · 0 评论 -
EasyCode(代码神器)
Easycode是idea的一个插件,可以直接对数据的表生成entity,controller,service,dao,mapper,无需任何编码,简单而强大。1、安装(EasyCode)我这里的话是已经那装好了。建议大家在安装一个插件,叫做Lombok。 Lombok能通过注解的方式,在编译时自动为属性生成构造器、getter/setter、equals、hashcode、toString方法。出现的神奇就是在源码中没有getter和setter方法,但是在编译生成的字节码文件中有get转载 2020-11-09 14:57:46 · 1023 阅读 · 0 评论 -
领域驱动设计(DDD)靠谱吗?
怎么感觉在国内没什么人用啊由于公司领导的要求,所有的软件开发都要将DDD作为指导思想,并且要接受敏捷的思想;"迫不得已"下拜读了《实现领域驱动设计》这本书,将会在公司的内部系统上全面实践DDD。DDD把领域模型的重要性提高到了数据模型之上,在传统的MVC分层架构下。我们将项目结构分为Controller,Service,DAO 这三个主要的层,所有的业务逻辑都在Service中体现,而我们的实体类Entity却只是充当一个与数据库做ORM映射的数据容器而已,它并没有反映出模型的业务价值。所以又把.原创 2020-11-06 19:18:26 · 657 阅读 · 0 评论 -
阿里高级技术专家方法论:如何写复杂业务代码?
简介:面对零售通如此复杂的业务场景,如何在架构和代码层面进行应对,是一个新课题。阿里妹导读:张建飞是阿里巴巴高级技术专家,一直在致力于应用架构和代码复杂度的治理。最近,他在看零售通商品域的代码。面对零售通如此复杂的业务场景,如何在架构和代码层面进行应对,是一个新课题。结合实际的业务场景,Frank 沉淀了一套“如何写复杂业务代码”的方法论,在此分享给大家,相信同样的方法论可以复制到大部分复杂业务场景。一个复杂业务的处理过程业务背景简单的介绍下业务背景,零售通是给线下小店供货的B..转载 2020-11-06 16:15:49 · 295 阅读 · 0 评论 -
面对复杂业务,if-else coder 如何升级?
简介:针对业务在不同场景下的差异,我们常常会习惯性地使用 if-else 来实现不同的业务逻辑,久而久之代码越来越难以维护。那么如何消除这些 if-else?面对复杂业务应如何思考和分析?本文分享阿里高级技术专家张建飞(Frank)关于复杂业务治理的方法论,介绍一种多维度分析问题的方法:矩阵分析法。作者 | 张建飞 阿里巴巴高级技术专家导读:针对业务在不同场景下的差异,我们常常会习惯性地使用 if-else 来实现不同的业务逻辑,久而久之代码越来越难以维护。那么如何消除这些 if-e...转载 2020-11-06 14:57:53 · 301 阅读 · 0 评论 -
github clone 项目很龟速 ?那是你不知道这个小技能,快到起飞!
听说OpenJDK的源码可以在github上直接clone,再也不用通过hg的方式获取了,马上找到仓库地址:https://github.com/openjdk/jdk反手一个命令:git clone git@github.com:openjdk/jdk.git然后开始蛮长的等待…动了,它动了!!!太崩溃了,这clone速度也太慢了。下面介绍一个简单的方法,可以很好的解决这个问题:国内的gitee可以直接同步github上的仓库,那如果我先把openjdk的git仓库先同步到gi转载 2020-10-12 13:42:46 · 430 阅读 · 0 评论 -
Git 看这一篇就够了
上一篇讲 Git 的文章发出来没想到效果特别好,很多读者都要求继续深入的写。那今天齐姐简单讲下 Git 的实现原理,知其所以然才能知其然;并且梳理了日常最常用的 12 个命令,分为三大类分享给你。本文的结构如下:作者和开发原由 Git 的数据模型 常用命令 资源推荐作者和开发原由Talk is cheap. Show me the code.这句话就出自 Linux 和 Git 的作者Linus Torvalds。原本 Linux 内核的版本控制系统是用的 BitKeeper转载 2020-09-21 19:07:07 · 261 阅读 · 0 评论 -
maven删除不必要的依赖;优化pom依赖研究
maven如何去除没有使用的依赖:项目做了比较大的改动。以前很多的依赖都没有用了。能否让maven或者eclipse自动检索,哪些依赖是没有被使用的。标记出来或者直接删除。方法1:好像没有这个功能。你可以手动筛选。把不是必须的包配置注释掉。如果报异常,就把需要的包的注释打开。方法2:>mvn dependency:analyze[INFO] --- maven-dependency-plugin:2.8:analyze (default-cli) @ wtp-core ---原创 2020-09-16 15:01:34 · 4313 阅读 · 0 评论 -
项目延期原因及应对之道
每个项目经理都希望能有效地控制项目进度。但这件看似简单的事情,实际操作起来却常常不尽如人意。即使在成熟的大公司里,有着完善的项目管理流程,配备着一流的团队,项目延期事件还是频频发生。这里分析主要的三个原因。常见的原因之计划不清很多项目经理,计划做得很漂亮,却总是计划赶不上变化。原因 在于,有些时候,按工作量预估的发布日期却得不到领导的同意,领导有时会说我们现在就是和时间赛跑,这个项目必须在...原创 2019-12-18 20:09:18 · 587 阅读 · 0 评论 -
优秀Web开发者必须知道的10件事
“开发工作不仅仅只是写代码”这句话来自3EV网站的Dan Frost,他在一篇文章中阐述了开发过程中应该注意的一些事项。原文内容如下:开发者是创造数字世界的主力军,他们不应该只扮演编程工具的角色,而应该对开发工作有更高的要求。那么,开发者可以从哪些方面提高开发能力呢?下面我就谈一下我的想法。我的建议可能不全面,但希望能够给你带来一些帮助。1. 不要只盯着代码如今人人都会写代码。很多业余爱...原创 2019-12-18 20:05:31 · 348 阅读 · 0 评论 -
对开发人员有用的定律和原则
这篇文章包含对一些定律、原则以及模式的解释,但不提倡其中任何一个。它们的应用始终存在着争论,并且很大程度上取决于你正在做什么。一、定律1、布鲁克斯法则这个定律表明,在许多情况下,试图通过增加人力来加速已延期项目的交付,将会使项目交付得更晚。布鲁克斯也明白,这是一种过度简化。但一般的论据是,新资源的时间增加和通信开销,会在短期内使开发速度减慢。而且,许多任务是密不可分的,换句话说,这...转载 2019-12-06 13:32:31 · 436 阅读 · 0 评论 -
如何量化考核技术人的 KPI?
阿里妹导读:对技术人来说,技术是成长的“核心”。然而,在实际工作协作中,技术的重要性常常被业务所掩盖,造成先业务后技术的现象。针对这个痛点,阿里高级技术专家张建飞提出了自己的解决思路,希望能与大家一起探讨、交流。为什么需要技术KPI?在业务技术团队,有一个不好的趋势就是团队越来越业务,越来越没有技术味道。每个人都在谈业务,技术大会上在谈业务,周会上在聊业务,周报里写的是业务项目.....转载 2019-11-12 11:22:00 · 588 阅读 · 0 评论 -
微服务业务监控和行为分析怎么做?试试日志埋点
一、说明互联网公司一般都会有专门的数据团队对公司的一些业务指标负责;为了拿到这些基本的业务指标,一般也要工程团队去配合做一些数据采集工作,于是埋点诞生了。埋点的方式有很多种,本文主要介绍日志埋点这种方式以及实现思路和案例。日志埋点就是通过程序打印log日志的方式进行业务/行为数据的记录二、总体架构通过日志埋点来实现业务监控和行为分析主要需要以下4个...转载 2019-11-11 17:14:11 · 614 阅读 · 0 评论 -
DDD实战篇:分层架构的代码结构
https://www.jianshu.com/p/4551c0248289原创 2019-11-11 14:18:49 · 1204 阅读 · 0 评论 -
团队开发框架实战—DDD之我见
https://www.jianshu.com/p/f4f40c7dd7fc原创 2019-11-11 14:17:24 · 376 阅读 · 0 评论 -
GIT版本管理看这一篇就够了
本文地址:https://www.jianshu.com/p/0e9d07ec76f9一、简介GIT基本上是目前最为先进的分布式版本控制系统,通过GIT能够非常方便的管理文件多个版本,能够实现版本的回滚,比对等功能,并且支持分布式也就是多人协同工作。GIT也是目前使用作为广泛的版本控制软件,大名鼎鼎的Github网站能直接与GIT对接,使用GIT上传代码到Github之中。二、GI...转载 2019-11-01 13:49:34 · 346 阅读 · 0 评论 -
Maven:Non-resolvable parent POM: Failure to find错误
使用Maven编译淘宝的TimeTunnel项目时遇到如下错误:[INFO] Scanning for projects...[ERROR] The build could not read 1 project -> [Help 1][ERROR][ERROR] The project com.taobao:timetunnel-client:0.2.0-SNAPSHOT (E...转载 2018-09-11 09:43:12 · 1749 阅读 · 0 评论 -
SpringBoot 在IDEA中实现热部署(实用版)
好的热部署让开发调试事半功倍,这样的“神技能”怎么能错过呢, 使用过IDEA的童鞋赶紧进来撸一把吧。学习目标快速学会在项目中使用热部署插件运行项目,提高开发效率。快速查阅相关教程: IDEA快速入门教程(2018图文版)专题阅读:《SpringBoot 布道系列》具体步骤一、开启IDEA的自动编译(静态)具体步骤:打开顶部工具栏 File -> Sett...转载 2019-08-13 09:28:40 · 268 阅读 · 0 评论 -
sdk和api有什么区别
---原答案----举个例子:在这里,一个简单的功能链条我将它分为三个组成部分:1、客户端组装数据2、客户端使用组装的数据来请求服务端(或者操作系统)的 api3、服务端(或者操作系统)的 api 处理数据并返回处理结果结合这个链条得出结论:1、api为细粒度的功能接口2、sdk包含第2、3步3、sdk为api的集...转载 2019-08-29 13:37:28 · 558 阅读 · 0 评论 -
github提交PR(pull request)过程和问题
前几天boss让做一个PR,一脸懵逼,查资料问同事,最后还被boss批,终于提交了PR。PR,全程pull Request ,下面写一下提交过程和我遇到的坑。项目背景:一个开源项目,我自己创建了一个分支并进行大量修改,需要PR到master上面,boss进行merge。1. 登录我的github,访问开源项目的github,在代码右上方有一个按钮,fork。点击fork后,自己的git...转载 2019-09-25 09:35:25 · 3085 阅读 · 0 评论 -
微信小程序java开发流程分享
前段时间,我接触了微信的开发小程序,在开发过程中,我不得不承认微信小程序开发的简单粗暴,不多说,直接hight。微信小程序可以去公众平台下载。有64位和32位的。在这里我就不多哔哔了。下载完微信小程序后,打开界面是这样子的,通过扫描二维码登录验证,添加项目,奉天承运,上图:登陆完成后。。。那个微信基础框架在公众平台会有简易教程,我就不多说了。在这里我就直接讲我是如何链接后台进行开发的,其实和aja...转载 2018-05-04 19:14:39 · 699 阅读 · 0 评论 -
Hexo+GitHub搭建免费博客
第一部分 基本介绍一直想自己搭建一个博客,断断续续,折折腾腾了两天多的多时间,终于算是搭建完毕了.为什么要搭建博客呢?想有个属于自己的博客空间世面上的平台不够好看佩服那些有博客的人,所以自己也想搞一个独立的才是自己的。但是不懂服务器,没有空间,不懂前端怎么破?小白进入门槛1、非常折腾,需要耐心;2、也需要一定的学习能力和钻研精神;3、懂一些网页基原创 2017-07-23 22:32:12 · 933 阅读 · 0 评论 -
CodeReview常见代码问题
路线图 常见代码问题常见的潜在代码问题是当前直接会导致BUG、故障或者产品功能不能正常工作的类别。 空值空值恐怕是最容易出现的地方之一。 常见错误有: a. 值为NULL导致空指针异常; b. 参数字符串含有前导或后缀空格没有Trim导致查询为空。 导致以上结果的原因主要有: 无此记录、有此记录但由于SQL访问异常而没查到、网络调用失败、记录中有脏数据、参数没传。原则上...转载 2018-09-07 12:39:48 · 1736 阅读 · 0 评论 -
java 面试总结(都是亲身面试的经历)
一、如何比较两个对象,比如学生类,根据属性年龄比较大小import java.util.*;public class Demo10 { public static void main(String[] args) { Person p1 = new Student(9, "m", "gd", "广"); Person p2 = new Student(3, "m", "gd", ...转载 2018-08-20 19:51:13 · 997 阅读 · 0 评论 -
浅谈那些年让运维掉了大把头发的并发统计
随笔:今天笔者给大家分享一下自己收集的关于并发量统计比较好的文章,注意是收集来的,不是笔者自写,在这里向原著致敬!普通的Web系统,关于并发量与用户数的关系计算如下: 1.单台服务器最高并发数2000,这是业内的大牛通过各种架构/优化/技术实现的. 我们水平没那么高, 但200并发 绝对是没问题的.2.单个请求的处理时间, 理论上的极值为70ms(这是内网Web服务器访问数据...转载 2018-08-06 20:05:52 · 371 阅读 · 0 评论 -
使用RedisTemplate进行Redis存取的工具类设计
通常在访问量大数据更新频率不高的系统中会使用第三方的缓存组件来降低数据库服务的负载,鉴于模块独立分工独立的考虑,针对缓存组件操作的工作全部应该统一接口对其他业务提供服务,这样业务操作只需要关注业务实现不需要关注缓存的具体细节。本例以Redis缓存组件为例,制定操作Redis的工具类。 1 package com.luwei.console.mg.util; 2原创 2017-09-04 09:10:53 · 757 阅读 · 0 评论 -
敏捷结果30天之第一天:总体认识敏捷结果方法
敏捷结果30天之第一天:总体认识敏捷结果方法 Agile Results对个人的工作和生活来说,主要就是培养以结果为导向,有计划、有目标的管理个人时间,定期聚焦一些热点,高效的工作、学习,快乐的生活的习惯! 三个核心要素:1.3的规则 (The Rule of 3) 2.周一目标,每天结果,周五回顾(Monday Vision, Daily Outco原创 2017-08-14 11:14:57 · 412 阅读 · 0 评论 -
产品管理
产品管理产品管理(product management) 从过程来看,产品管理是对产品进行全生命周期管理。按顺序,它应该包括四个环节,即产品战略管理、产品市场管理(或称产品营销管理)、产品研发管理和产品生命周期管理。 对产品管理的一个通常的定义是:把企业的一部分(通常是一个系列的产品)拿出来当作“虚拟企业”来管理。什么是产品管理 从本质上看,产品管理是原创 2017-08-18 17:16:15 · 846 阅读 · 0 评论 -
产品管理和项目管理有什么区别
1、理解1国内基本上是把产品和项目这两个概念混淆了。其实产品管理主要是需求管理,计划管理,发布管理,是强调的是做什么。而项目管理主要是任务管理,侧重的是如何实现这些需求。国产的开源项目管理软件禅道里面,这两个概念区分的非常清楚。zentao.net2、理解2这问题很有意思,个人经验所知:互联网公司叫产品经理居多,而做纯软件公司的研发部叫项目经理居多,特别是外包的软件公司。而产品经理原创 2017-08-18 17:04:31 · 14307 阅读 · 0 评论