后评估系统

博客分类: 江河计划

后评估系统

算法

合并两个有序数组

给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。

说明:

初始化 nums1 和 nums2 的元素数量分别为 m 和 n。 你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。

输入:
nums1 = [1,2,3,0,0,0], m = 3
nums2 = [2,5,6],       n = 3

输出: [1,2,2,3,5,6]

我的解法:

var merge = function(nums1, m, nums2, n) {
    var j=0;
    for(let i=0; i<n; i++){
        while(nums1[j] < nums2[i] && j < m+i){
            j++;
        }
        console.log(j)
        nums1.splice(j, 0, nums2[i]);
    }
    nums1.length = m+n;
};

最优解法:

var merge = function(nums1, m, nums2, n) {
    let len = nums1.length;
    nums2.forEach((num2, i2) => {
        let index = nums1.findIndex(num1 => num1 > num2);
        index = index === -1 ? m + i2 : index;
        nums1.splice(index, 0, num2);
    });
    nums1.length = len;

};

后评估系统

前面总结各种架构,最终如何衡量各种架构做的结果如何,不能凭借主观性的评价,需要构建一套评估体系去评估最终结果如何。这快目前自己也不是非常清晰。

当然也有很多评估系统是评价不出来的,比如团队潜力,技术能否承担未来业务发展。但是后评估系统也分三方面去评估。

业务架构

业务会有业务的指标,这些指标可能开发不背,但是开发有责任去主动关注一些指标,并且通过技术层面去提出优化建议,目标是为了更好的推进业务。

业务数据常规有 PV、UV、转化率,下单率,下单时长等等,很多都可以通过交互和展现来提升,页面展现的不同侧重来提高转化率。根据具体的业务情况来定和前端技术相关的数据指标,通过交互和页面侧重点来提高相关数据

技术架构

可以通过各种性能指标来衡量技术架构的优劣。比如白屏时间,资源加载时间,页面间切换的时间来衡量技术架构的性能

js 报错的情况,线上 bug 情况,线上的故障的情况来衡量技术架构的稳定性。

上述这些维度网上一搜一大堆,这些维度的统计都是比较常规的,但是数据得从一定量级去衡量才有效,比如硬币问题,至少要达到一万次的实验量级概率才能基本稳定,所以这些数据一定要在一定的量级下才有意义。

团队架构

团队架构的衡量更多是项目管理的衡量,完成需求的情况,有没有 delay,测试 bug 的情况,代码 review 的情况等等

总结

这块自己的实践目前还不足,这些衡量并非为了衡量结果而衡量,而是通过衡量发现问题,然后推动方案去解决问题,最终提升产品品质。

一开始应该有个用户产品期望,然后有个我们自身对于产品的一个期望,我们的期望比用户的期望高,就会给用户带来惊喜,如果我们的期望比用户低就会失望。

后评估系统实际上是评估现状,衡量现状和产品期望的落差,现在高于产品期望就是产品收益高,低于落差就是应该去查找问题,解决问题,将实际产品价值体现出来。