掘金 后端 ( ) • 2024-04-16 18:01

前言

想要顺顺利利进入大厂,养成一些好的代码习惯和认真钻研这些大厂的高质量代码必不可少哦,所以我们应该养成哪些好的代码习惯呢?首先我们先探索一下腾讯高质量代码的奥秘,让我们一起来见证言谭和椰汁的爱情开始之路吧!

比心.jpeg

高质量代码介绍

  1. 创建言谭和椰汁两个对象
  2. 创建两个方法sendFlower和 receiveFlower实现言谭给椰汁送花
const lpp={
            name:'言谭',//简单数据类型
            hometown:'上饶',
            age:18,//数值类型,
            girlfriend:null,//空
            city:undefined,//未定义
            isSingle:false,//布尔值类型
            hobbies:['睡觉','吃','打麻将'],//对象
            //形参
             sendFlower(receiver){
                receiver && receiver.receiveFlower(lpp);//提高代码健壮性 安全代码 防止用户传空值
            }
        } 
       
        const ltt={
            name:'椰汁',
            hometown:'上饶',
            mood:20,
            receiveFlower(sender){
                console.log(this.name+'收到了 '+sender.name+' 的花花~');
            }

        }

仔细观察,其实代码的思路存在一定问题,可以进一步改进,如果在椰汁心情不太好时,收到花花可能效果不太好,那么这个时候就需要一个小零二(接口)天使来帮助言谭将花传送给椰汁,等椰汁心情好再送花花,改进代码如下:

<script>
        /*
        *@func 代理送花
        *@desc 通过实现receiveFlower,互换对象
        *@author 椰汁
        *@data   24/4/15
        */
        //对象 object 复杂(引用)数据类型
        const lpp={
            name:'言谭',//简单数据类型
            hometown:'上饶',
            age:18,//数值类型,
            girlfriend:null,//空
            city:undefined,//未定义
            isSingle:false,//布尔值类型
            hobbies:['睡觉','吃','打麻将'],//对象
            //形参
             sendFlower(receiver){
                receiver && receiver.receiveFlower(lpp);//提高代码健壮性 安全代码 防止用户传空值
            }
        } 
       
        const ltt={
            name:'椰汁',
            hometown:'上饶',
            mood:20,
            receiveFlower(sender){
                console.log(this.name+'收到了 '+sender.name+' 的花花~');
                if(this.mood<80){
                    console.log(sender.name+'我们还是算了!');
                }
                else{
                    console.log(sender.name+'恰饭去~');
                }
            }

        }

        //对象字面量
        const xle={
           name:'小零二',
           hometown:'上饶',
           //实现了和ltt一样的接口,就可以互换
           receiveFlower(sender){
                 setTimeout(function(){
                 ltt.mood=99;
                 ltt.receiveFlower(sender);
            },2000);
            
        }
    }
        lpp.sendFlower(xle);
    </script>

总结

  1. 面向对象编程:JS是一门表现力极强的语言,{}即可声明一个对象,对象由属性和方法构成;
  2. 代码要够健壮:代码要被怎么调用不清楚,留个心眼,例如上述的receiver && receiver.receiveFlower();
  3. 抽象思想:lpp和ltt是一个个对象,当对象越来越多的时候,越来越复杂;
  4. 接口(interface):当多个对象具有相似的方法时,可以互换使用;
  5. 代理模式(proxy ):面向对象设计模式的一种,可以通过接口让对象之间互换使用,从而达到某些复杂目的;
  6. JS语法: (1)简单数据类型:字符串String,数值类型Number,布尔值Boolean,Null,Undefined; (2)复杂数据类型:其他的一切都是对象:Object, {}, [], function也是对象;
  7. 代码规范: (1)大厂都有代码规范,写代码前读一读; (2)驼峰式命名,结尾以' ; '结束,多写注释。
希望能给各位友友们带来一些帮助**~**

image.png