探秘大厂:程序员面试成功的关键

在当前竞争激烈的就业市场中,大厂无疑成为了众多程序员心目中的理想工作场所。随着科技的飞速发展和行业的日益壮大,大厂对于优秀程序员的需求也愈发迫切。然而,面对众多竞争者,如何在面试中脱颖而出,成功踏入大厂的门槛,成为了摆在程序员们面前的一道难题。在这一背景下,我将为大家分享一些面试大厂的实用技巧,帮助各位程序员朋友们更好地展示自己的实力,增加成功的机会。

成功上岸大厂必备的能力

  1. 注重代码规范。想要进入大厂,就必须重视代码规范。这是大厂对程序员的基本要求,也是你提升竞争力的关键所在。每家大厂都有代码规范,在面试前需要提前了解。
  2. 优质代码和优化代码。大家要明白,在大厂的竞争中,仅仅写出能运行的代码是不够的。优质代码和优化代码的能力才是脱颖而出的关键技能。
  3. 多写注释!!!在大厂的代码评审中,注释的质量和数量是重要的考量因素。因此,多写注释是非常有必要的良好习惯。

答题技巧

首先举个栗子

小明是一个爱吃炸鸡的宅男
小李是一个热爱工作的外卖小哥
李明是炸鸡店的老板,他家的炸鸡特别好吃

于是小明天天吃李明家的炸鸡

如果面试官要求我们用代码去实现小明得到炸鸡,那我们应该怎么做呢?

在面试的紧张气氛下遇到这样的问题是不是会感觉寄了,大脑一团浆糊。

探秘大厂:程序员面试成功的关键

不用慌,我来给你带来思路。

面向对象的思想

首先第一步也是最关键的一步,我们要选对语言。

我的建议是选择JavaScript,JavaScript的表现力是最强的,{}就可以声明一个对象,一个对象由属性和方法构成。

我们可以获取一些信息,小明爱吃炸鸡,小李是外卖员,李明是炸鸡店老板。

const xm{
    name:'小明',
    habits:['爱吃炸鸡','待在家里'],
    identity:'无业游民',
}
const xl{
    name:'小李',
    habit:'送外卖',
    identity:'外卖小哥'    
}
const lm{
    name:'李明',
    habit:'炸炸鸡',
    identity:'老板'
}

抽象思维

那我们要怎么让他们动起来呢?我们可以用js方法让他们动起来。

xm、xl和lm都是对象,当对象越来越多的时候世界越来越复杂,我们要抽象使用形参。

李明可以直接将炸鸡送给小明

 const xm = {
     name: '小明',                    
     habit: '爱吃炸鸡',
     identity: '无业游民',
     receiveFood: function (sender) {
         console.log(this.name + '收到' + sender.name + '的炸鸡');
     }
 }

 const xl = {
     name: '小李',
     habit: '送外卖',
     identity: '外卖小哥'
 }

 const lm = {
     name: '李明',
     habit: '炸炸鸡',
     identity: '老板',
     sendFood: function (receiver) {
         receiver.receiveFood(lm)
     }
 }

结果是

探秘大厂:程序员面试成功的关键

代码健壮性

如果我们不知道sendFood方法需要引入参数,我们没有引入参数会发生什么情况呢?

探秘大厂:程序员面试成功的关键

如图所示,会报错。那该怎么办呢?

我们要让我们的代码具有健壮性。这样我们可以对可能出现的错误进行适当的处理,避免程序崩溃或出现意外结果。

 const lm = {
     name: '李明',
     habit: '炸炸鸡',
     identity: '老板',
     sendFood: function (receiver) {
         //receiver.receiveFood(lm)
         receiver && receiver.receiveFood(lm)
     }
 }

结果是

探秘大厂:程序员面试成功的关键

接口

接口是同样的方法,从而实现互换。当多个对象具有相同的方法时,可以互换使用。

如果让李明送炸鸡给小明,那就没有人在炸炸鸡了。那我们可以让小李帮李明送炸鸡。

 const xm = {
 	name: '小明',
 	habit: '爱吃炸鸡',
 	identity: '无业游民',
     receiveFood: function (sender) {
         console.log(this.name + '收到' + sender.name + '的炸鸡');
     }
 }

 const xl = {
     name: '小李',
     habit: '送外卖',
     identity: '外卖小哥',
     receiveFood: function (sender) {
         console.log(this.name + '收到' + sender.name + '的炸鸡');
     }
 }

 const lm = {
     name: '李明',
     habit: '炸炸鸡',
     identity: '老板',
     sendFood: function (receiver) {
         //receiver.receiveFood(lm)
         receiver && receiver.receiveFood(lm)
     }
 }

代理模式

代理模式是一种设计模式,它为其他对象提供一个代理或中介,控制对这个对象的访问。其基本原理是创建一个代理对象,代替对真实对象的访问。代理对象可以在调用真实对象的方法前后执行一些额外的操作。

小李就是代理对象。则xl的方法和lm的方法的内容应该不一样。

优化代码

我们优化我们的代码,不仅是让我们的代码更优质而且具有更多功能,也需要注意代码规范。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        //写代码从写注释开始
        /*
        *@func 功能
        *@desc 功能介绍
        *@author 创作者
        *@date 创作日期
        */
        const xm = {
            name: '小明',
            habit: '爱吃炸鸡',
            identity: '无业游民',
            hunger: Math.floor(Math.random() * 101),                      //随机生成一个1到100的整数表示小明的饥饿程度,数值越大就越饿
            receiveFood: function (sender) {
                console.log(this.name + '收到' + sender.name + '的炸鸡');
                if (this.hunger < 70) {
                    console.log('小明:我现在不想吃炸鸡');                  //小明的饥饿程度小于70时不想吃炸鸡
                }
                else {
                    console.log('小明:我现在想吃炸鸡了');                 //小明的饥饿程度不小于70时想吃炸鸡
                }

            }
        }

        const xl = {
            name: '小李',
            habit: '送外卖',
            identity: '外卖小哥',
            receiveFood: function (sender) {
                console.log(this.name + '收到' + sender.name + '的炸鸡');
                if (xm.hunger >= 70)                                    //小明想吃炸鸡就给他送
                    xm.receiveFood(sender);
                else {                                                 //小明不想吃炸鸡就不给他送
                    console.log('小李:小明现在不想吃炸鸡');
                }
            }
        }

        const lm = {
            name: '李明',
            habit: '炸炸鸡',
            identity: '老板',
            sendFood: function (receiver) {
                receiver && receiver.receiveFood(lm);
            }
        }
    </script>
</body>

</html>

有两种结果

第一种是

探秘大厂:程序员面试成功的关键

第二种是

探秘大厂:程序员面试成功的关键

最后

首先要理清对象之间的关系,用方法实现相互联系;在写代码时要注意代码的健壮性;运用接口,当多个对象具有相同的方法时,可以互换使用;创建代理对象,代替对真实对象的访问;最后优化代码。

以上是我的分享,希望可以帮助到你们。

原文链接:https://juejin.cn/post/7358004857888931894 作者:睡着学

(0)
上一篇 2024年4月16日 下午4:54
下一篇 2024年4月16日 下午5:04

相关推荐

发表回复

登录后才能评论