0%

Github Copilot

基于GitHub上的代码,训练出来的AI补全,需要准确描述函数的作用,它去找相似的

tabnine

基于自己写过的代码做自动补全

HicodeAI

华为自研的,不知道借鉴的哪一种

原文地址 https://article.itxueyuan.com/ylqMxp

  • 基于自定义元素,影子节点。web-components实现。
  • 自定义元素属性不支持对象,这里重写set方法,用数据中心传递数据
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    const dataCenter={
    people:{
    name:'Bob',
    age:18
    }
    }
    (function (setAttribute) {
    let setOld=setAttribute;
    document.getElementById("myPeople").setAttribute=function (attrName,attrValue) {
    setOld(attrName,attrValue);
    this.attrName=dataCenter[attrValue]
    }
    })(document.getElementById("myPeople").setAttribute)

  • 使用微前端会导致各个子项目技术栈完全不一致,各玩各的真的好吗?难道统一技术栈不是更好的选择,这样玩用人成本不是更高了么?
  • 微前端本身也是有学习成本的,这种各玩各的问题定位起来更难了,想组织技术培训的话,卧槽!!!各个子项目用的技术都不一样,无形提高了沟通成本

  1. GA 可全球发布
  2. EOP 停止生产
  3. EOM 停止销售
  4. EOS 停止服务

图片

  1. defer 能确保脚本加载的顺序,会在dom解析完成后执行
  2. async 是先请求到先加载,会中断dom解析
  3. ES6 Module 有 type=module 默认defer模式
  4. async适合完全独立的脚本

chrome://settings/system 里面有一个关闭 Google Chrome 后继续运行后台应用 默认是打开的,需要手动关闭。
如果项目中用到了sessionStorage的话,可能会影响到正常的逻辑。

这里只是做一个笔记,解释的话可以自行百度

广度优先

1
2
3
4
5
6
7
8
9
10
11
12

function foreach(data,callback) {
let nodes=[];
for (const item of data) {
if(item.childrens){
node=node.concat(item.childrens)
}
callback(item)
}
if(nodes.length==0)return
foreach(nodes)
}

深度优先

1
2
3
4
5
6
7
8
9
function foreach(data,callback) {
for (const item of data) {
if(item.childrens){
foreach(item.childrens)
}else{
callback(item)
}
}
}

范围管理分两部分,第一是需求管理,项目组单位时间的产出是固定的。哪些需求可以砍,哪些需求可以延期,都是范围管理的内容。
范围管理的另外一部分,是标识项目交付与验收标准。

主要确定 业务需求,交付时间,验收标准,交付件 就差不多了

做好范围管理的核心是做好需求变更的控制,一定要评估变更对进度,成本,质量的影响,才能决定需求变更。

需求获取

外部需求:来自用户
内部需求:来自开发与测试(这个容易被忽视)

需求分析与优先级

  • what/why 目的是什么,要解决什么,背景是什么
  • who 主要看这个需求是普遍需求还是个别需求
  • when 需求要什么时候满足
  • 优先级,必选,可选,是否可替代
  • how 客户期待推荐的解决方案

总的来说就是 投资回报高 > 提升用户满意的 > 提升竞争力的 > 能做的

项目管理风险识别 CheckList

风险分类 风险检查项
项目环境 是否及时建立适合项目运作的环境(办公设备,数据库申请)
人员技能 PDT成员缺少必要的项目管理技能,导致项目管理无法有效进行
人员技能 各级项目经理是否有必备的或丰富的项目管理技能和经验
人员技能 是否有安排项目经理的管理培训来提升团队管理能力,提高管理效率
异地管理 是否存在异地开发情况
异地管理 如有,是否建立了可用的异地管理体系来支撑异地的日常管理工作
流程执行 是否在项目开始前,就考虑了项目应该遵守的流程
流程执行 是否考虑了项目的特殊性,提出需要裁剪的流程建议,包括需要遵从的标准
流程执行 是否提前根据各评审点的要求来准备相关文档
流程执行 是否将各评审点的要求来分解,并提前考虑在过程中进行满足

个人理解:风险主要集中在项目前的准备,以及流程的制定。制定流程应该充分讨论,得到大家的认可才能更好的实施。各个评审点基本上都是用来把控风险的,所以要提前准备。

风险管理表

类别 风险描述 预防措施 应急措施 当前状态 风险系数 责任人 开始时间 结束时间 当前进展 发生概率 影响度
进度/人力/质量/技术 设计人员还在招聘中 优先根据低保真完成功能模块,等设计稿出来后再修改样式 提前从xx项目协调一名设计人员到,一周内招聘无进展 open 0.6 张三 2021年9月16日 2021年10月16日 xx项目设计人员已协调到位

风险需要从客户的角度去看。风险可以规避,转移,减轻。制定风险计划的时候,应该拉上责任人一起。

版本火车

一个比较成熟的软件系统,发版本的时间基本都是固定的,就像列车的时刻表。需求就是需要乘车的人。在进行版本计划的时候。就把相关需求列在版本火车的区间内。如果需求能够按时完成,赶上车就上线。如果测试不够充分,或者需求有变更,就敢下一趟上线的火车。

版本火车适合需求之间没有依赖。成熟度比较高的软件。

敏捷开发

与版本火车相对的就是敏捷开发。
敏捷开发对开发人员的素质要求比较高。因为测试时间短,主要依靠开发人员的水平。适合需求频繁变更,需求间高度依赖的启动阶段的项目。