编程之路:从零到腾讯,探索高质量代码的奥秘

前言

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

高质量代码介绍

  1. 创建言谭和椰汁两个对象
  2. 创建两个方法sendFlower和 receiveFlower实现言谭给椰汁送花
javascript 复制代码
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+' 的花花~');
            }

        }

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

xml 复制代码
<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)驼峰式命名,结尾以' ; '结束,多写注释。
希望能给各位友友们带来一些帮助**~**
相关推荐
To_OC8 小时前
从一次栈溢出报错说起,我把递归彻底扒明白了
javascript·算法·程序员
kyriewen10 小时前
面试官问你:“AI 能写 80% 的代码了,公司为什么还需要你?”
前端·javascript·面试
Goodbye13 小时前
从 Token 到 Embedding:LLM 核心基础深度解析
javascript·人工智能
用户9385156350713 小时前
工具调用背后:LLM 如何突破“缸中大脑”,操控真实世界?
javascript·人工智能
Goodbye13 小时前
从函数到智能:LLM Tool Use 深度解析
javascript·人工智能
半个落月13 小时前
大模型到底是怎么“调用工具”的?从一个 Node.js Demo 看懂 Tool Use
javascript·人工智能
烬羽13 小时前
中英文 token 数量差一倍?两段 JS 代码搞懂 LLM 底层是怎么"读"文字的
javascript·程序员·架构
山河木马13 小时前
矩阵专题1-怎么创建模型矩阵(uModelMatrix)
javascript·webgl·计算机图形学
前端开发爱好者18 小时前
支持 110 种文件预览!兼容 Vue、React、Svelte!
前端·javascript·vue.js
大家的林语冰19 小时前
👍 尤大重学 Webpack,Vite 8.1 再进化,打包模式复活!
前端·javascript·vite