Un resumen de las nuevas preguntas de la entrevista de PHP para el reclutamiento de primavera de 2021, Baidu, Ali, Meituan y otras grandes empresas (2)

Oro tres plata cuatro comenzaron, por lo que tomó mucho tiempo recopilar y resolver este conjunto de preguntas de la entrevista PHP, espero que sea útil para todos ~

El bloguero también organizó una gran cantidad de preguntas de la entrevista en un manual de entrevistas PHP,

Es una versión en PDF, y hay una forma de obtenerla al final del artículo, así que si está interesado.

1.¿Cómo funciona el carrito de la compra?

Respuesta: El carro de la compra equivale en realidad al carro de la compra del supermercado, la diferencia es que uno es un carro físico y el otro es un carro virtual. Los usuarios pueden saltar entre diferentes páginas del sitio web de compras para comprar sus productos favoritos. Cuando hacen clic para comprar, el producto se guarda automáticamente en su carrito de compras. Después de compras repetidas, los productos seleccionados finalmente se colocan en El carrito de compras se unifica al mostrador de pago, que también intenta que los clientes experimenten la sensación de comprar en la vida real. El servidor rastrea las acciones de cada usuario para asegurarse de que cada artículo tenga su propio propietario en el momento del pago.
Implica principalmente los siguientes puntos:

    1. Agregar productos al carrito de compras, es decir, ordenar
    2. Eliminar los productos pedidos en el
    carrito de compras 3. Modificar la cantidad de pedido de un libro en el
    carrito de compras 4. Limpiar el carrito de compras
    5. Mostrar la lista y la cantidad de los productos en el carrito de la compra, precio

La clave para implementar un carrito de compras es que el servidor reconozca a cada usuario y se mantenga en contacto con ellos. Pero el protocolo HTTP es un protocolo "sin estado", por lo que el servidor no puede recordar quién está comprando el producto. Cuando el producto se agrega al carrito de compras, el servidor no sabe qué hay en el carrito de compras, lo que hace que el usuario sea diferente. El carrito no se puede "llevar con usted" al saltar entre páginas, lo que provoca ciertas dificultades en la realización del carrito de la compra.
En la actualidad, la realización del carrito de la compra es principalmente a través de cookie, sesión o combinado con base de datos. Analicemos su mecanismo y función.

cookie Una
cookie es una pieza de información generada por el servidor y almacenada en el cliente. Define un mecanismo para que el servidor web almacene y devuelva información sobre el cliente. El archivo de cookies contiene el dominio, la ruta, la duración y los valores de las variables establecidos por el servidor. Cuando el usuario visite el mismo servidor web en el futuro, el navegador enviará la cookie al servidor tal como está. Al permitir que el servidor lea la información previamente guardada para el cliente, el sitio web puede proporcionar una serie de comodidades para los espectadores, como identificar la identidad del usuario durante las transacciones en línea, evitar que el usuario vuelva a ingresar el nombre y la contraseña, y la página de inicio del sitio web del portal cuando los requisitos de seguridad no son altos. Publicidad personalizada, dirigida, etc. Utilizando las características de las cookies, las funciones de las aplicaciones WEB se amplían enormemente, no solo se puede establecer la conexión entre el servidor y el cliente, porque la cookie puede ser personalizada por el servidor, también puede almacenar la información de compra generada en el valor de la cookie en el cliente, dándose cuenta de las características del carrito de la compra. El uso de métodos basados ​​en cookies para implementar una sesión o carrito de compras entre el servidor y el navegador tiene las siguientes características:

1. La cookie se almacena en el cliente y ocupa muy pocos recursos. El navegador permite almacenar 300 cookies, cada una de las cuales tiene un tamaño de 4 KB, lo que es suficiente para cumplir con los requisitos del carrito de la compra y además reduce la carga en el servidor. ;
2. La cookie es El navegador está integrado y es fácil de usar. Incluso si el usuario cierra accidentalmente la ventana del navegador, siempre que la información en el carrito de compras esté dentro del período de validez definido por la cookie, la información en el carrito de compras no se perderá;
3. La cookie no es un archivo ejecutable, por lo que no se ejecutará de ninguna manera, por lo que no traerá virus o sistema de usuario ***;
4. El carrito de compras basado en cookies requiere que el navegador del usuario sea compatible y esté configurado para habilitar las cookies, de lo contrario, el carrito de compras no será válido ;
5. Hay disputas sobre la violación de cookies de la privacidad de los visitantes, por lo que algunos El usuario prohibirá la función de cookies de esta máquina.

sesión

La sesión es otra forma de implementar un carrito de compras. La sesión proporciona la función de guardar y rastrear la información de estado del usuario, de modo que las variables y los objetos definidos por el usuario actual en la sesión se puedan compartir entre páginas, pero otros usuarios de la aplicación no puedan acceder a ellos. La diferencia más significativa entre y las cookies es, Session almacena la información privada del usuario durante la sesión en el lado del servidor, lo que mejora la seguridad. Una vez que el servidor genera la sesión, el cliente generará un número de identificación de id de sesión y lo guardará en el cliente para mantener la sincronización con el servidor. Este id. De sesión es de solo lectura. Si el cliente deshabilita la función de cookies, la sesión se transferirá entre páginas agregando parámetros a la URL o enviándola implícitamente en el formulario. Por tanto, el uso de la sesión para implementar la gestión de usuarios es más seguro y eficaz.
Del mismo modo, también se puede implementar un carrito de la compra mediante sesión. Las características de este método son:

1. La sesión utiliza un nuevo mecanismo para mantener la sincronización con el cliente, y no depende de la configuración del cliente;
2. En comparación con las cookies, la sesión es información almacenada en el lado del servidor, por lo que es más segura, por lo que puede marcar identidad, compras y otra información almacenada en la sesión;
3. La sesión ocupará recursos del servidor y aumentará la carga en el lado del servidor, especialmente cuando hay muchos usuarios concurrentes, generará una gran cantidad de sesiones, lo que afectará el rendimiento del servidor;
4. Debido a que la información almacenada en la sesión es más sensible y se basa en El formato de archivo se almacena en el servidor, por lo que todavía existe un riesgo de seguridad.

El método de combinación con la base de datos
también es un modo común en la actualidad En este método, la base de datos asume el papel de almacenar información de compras y la sesión o cookie se utiliza para rastrear a los usuarios. Este método tiene las siguientes características:

1. La base de datos y la cookie son respectivamente responsables de registrar datos y mantener sesiones. Pueden jugar sus respectivas ventajas para mejorar la seguridad y el rendimiento del servidor;
2. Para cada comportamiento de compra, se debe establecer una conexión con la base de datos directamente hasta que se verifique la tabla. Una vez finalizada la operación, se libera la conexión. Cuando hay muchos usuarios concurrentes, afectará el rendimiento de la base de datos, por lo que esto plantea mayores requisitos sobre el rendimiento de la base de datos
3. Se requiere el apoyo del cliente para mantener la sesión con la cookie.

Varias formas de elegir:
Si bien las cookies se pueden utilizar para implementar carritos de compra, estas deben ser soportadas por el navegador. Además, son información almacenada en el lado del cliente, la cual es muy fácil de obtener, por lo que esto también lo limita a almacenar más y lo que es más importante, información. Por lo tanto, generalmente las cookies solo se usan para mantener una sesión con el servidor. Por ejemplo, la librería en línea Dangdang más grande de China usa cookies para mantener el contacto con los clientes, pero la mayor desventaja de este método es que si el cliente no admite cookies, el carrito de la compra dejará de ser válido.
La sesión puede mantener una conversación con ambas partes de la transacción y se puede ignorar la configuración del cliente. Ha sido ampliamente utilizado en la tecnología de carritos de compras. Sin embargo, el atributo de archivo de la sesión sigue siendo un riesgo para la seguridad.
Aunque el método de combinar la base de datos resuelve los problemas anteriores hasta cierto punto, se puede ver en el ejemplo anterior: este tipo de proceso de compra implica operaciones frecuentes en las tablas de la base de datos, especialmente cuando el usuario compra un producto cada vez. la base de datos aumenta la carga en el servidor y la base de datos cuando hay muchos usuarios.

2. ¿A qué debo prestar atención cuando la cola de mensajes de redis es el primero en entrar, primero en salir?

Respuesta: Por lo general, se usa una lista para implementar operaciones en cola, por lo que hay un pequeño límite, por lo que las tareas se unifican primero en entrar, primero en salir. Si desea priorizar una determinada tarea, no es fácil de manejar. Esto requiere prioridad en la cola. Concepto, podemos priorizar las tareas de alto nivel. Hay varias formas de lograrlo:
1) Implementación de lista única: El funcionamiento normal de la cola es de entrada y salida (lpush, rpop) para procesar las tareas de alta prioridad primero. Cuando se trata de una tarea de alto nivel, puedes saltar directamente a la cola y ponerla directamente en el encabezado de la cola (rpush). De esta manera, cuando recibes una tarea del jefe de la cola (a la derecha), obtienes la tarea de alta prioridad (rpop).
2) Usa dos cola A, una cola normal, una cola avanzada, coloca diferentes colas según el nivel de la tarea, también es muy simple para obtener la tarea, el comando BRPOP de redis puede tomar valores de múltiples colas en orden, y BRPOP seguirá la clave dada Ver secuencialmente, y mostrará un elemento al final de la primera lista no vacía encontrada, redis> BRPOP lista1 lista2 0

list1 se usa como una cola de tareas de alta prioridad y 

list2 se usa como una cola de tareas normal. 

Esto se da cuenta de que las tareas de alta prioridad se procesan primero. Cuando no hay una tarea de alta prioridad, 

se obtiene la tarea común. El método 1 es el más simple, pero la aplicación real es más limitada. 3 puede lograr una prioridad compleja, pero la implementación es más complicada, lo que no conduce al mantenimiento. El 

método 2 es el uso recomendado, que es el más adecuado para aplicaciones prácticas.

3. ¿Cuáles son los problemas con los módulos de los que es responsable?

Respuesta: En el proyecto de comercio electrónico B2B del que soy responsable, estaba a cargo del módulo de pedidos en ese momento. Debido a que el cliente seleccionó los productos de varios comerciantes a la vez, finalmente se generó un pedido, por lo que nuestra plataforma no sabía esto cuando el comerciante llegó a un acuerdo. ¿Qué comerciante debe pagar más que la tarifa? En este momento, nuestro grupo ha discutido que debe involucrar la división de pedidos, es decir, después de que el usuario hace clic para pagar, si hay varios artículos y no están en la misma tienda, se utilizará la división de pedidos. Por ejemplo, si hay dos artículos y no están en la misma tienda, genere dos números de suborden bajo el número de pedido original y modifique el pedido números de los dos elementos en la tabla de pedidos. Finalmente realicé la gestión de distribución de commodities y solucionamos nuestros problemas.
Creo que en el proceso de desarrollo no hay más que dos problemas, uno es el nivel técnico, creo que mientras tengas perseverancia y entusiasmo no habrá problemas que no puedas encontrar. La otra es la comunicación. La comunicación es lo más importante en cualquier lugar y en cualquier momento, especialmente cuando hacemos desarrollo. No comunicarnos bien afectará el avance de todo el proyecto. Soy una persona muy comunicativa, por lo que este punto también es importante. No es un gran problema.

4. ¿Cómo realiza un pedido el usuario?

Respuesta: Se juzga si el usuario ha iniciado sesión y no se le permite realizar un pedido sin iniciar sesión. Después de iniciar sesión, puede realizar un pedido y generar un número de pedido único. En este momento, el estado del pedido es impago.

5. ¿Cómo se realiza el inicio de sesión de comercio electrónico?

Respuesta: Se divide en inicio de sesión ordinario e inicio de sesión de terceros. Hablemos del inicio de sesión de terceros. El inicio de sesión de terceros utiliza principalmente el protocolo de autor. Tomaré el inicio de sesión de terceros de QQ como ejemplo para ilustrar: Cuando el usuario está en nuestro sitio Al solicitar un inicio de sesión de terceros de QQ, nuestro sitio guiará al usuario para que salte a la interfaz de autorización de inicio de sesión de QQ. Cuando el usuario ingrese QQ y la contraseña e inicie sesión correctamente, volverá automáticamente a la página de devolución de llamada establecida por nuestro sitio con un parámetro de código. Luego, usa el código para solicitar la página de autorización de QQ nuevamente, y puede obtener un token de acceso (token de acceso) de ella. A través de este access_token, podemos llamar a la interfaz que QQ nos proporciona, como la obtención de open_id, que puede obtener la información básica del usuario. Después de obtenerlo, necesitamos vincular la información de autorización del usuario y open_id con los usuarios normales de nuestra plataforma. De esta manera, ya sea un inicio de sesión de usuario normal o un usuario de inicio de sesión de terceros, el inicio de sesión se puede realizar.

6. ¿Cómo se maneja la seguridad de la interfaz?

Respuesta: Hicimos esto en ese momento. Usamos HTTP POST para firmar digitalmente parámetros fijos + parámetros adicionales y usamos cifrado md5. Por ejemplo: quiero recibir un mensaje a través del título y usar el título del mensaje + fecha + en el cliente La clave acordada por ambas partes es encriptada por md5 para generar un signo, y luego se pasa al servidor como un parámetro. El servidor usa el mismo método para la verificación. Cómo aceptar el signo es el mismo que el valor calculado por El algoritmo Demuestra ser una solicitud de interfaz normal, devolveremos los datos de interfaz correspondientes.

7. ¿Qué tecnología se utiliza para enviar SMS y dónde puedo llamarlo?

Respuesta: Utilizo principalmente la interfaz de SMS de terceros. Cuando solicito la interfaz, configuro la información correspondiente y luego la llamo donde se necesita la verificación por SMS en nuestro sitio. Por lo general, la usamos durante el registro de usuario.

8. ¿Qué dificultades encuentra en el trabajo?

Respuesta: En términos generales: me encontré principalmente con estos pocos problemas en el trabajo que son más difíciles de resolver:
①Cuando trabajaba antes, descubrí que a menudo había necesidades temporales que interrumpían mi plan y, a veces, la tarea no se completaba. hacer otras tareas. Al final del último día, hay muchas cosas grandes y pequeñas, pero no se han hecho muy bien. Las resumiré más adelante. Daré prioridad a todas estas. Cuando encuentre necesidades temporales , siga las prioridades Vuelva a formatear las tareas existentes y las tareas temporales para garantizar la finalización eficiente de las tareas de alta prioridad dentro del tiempo especificado.
②Cuando se trabaja en los requisitos del proyecto, cuando se encuentran con personas con poca comprensión, es fácil que se enojen al comunicarse y afecten sus emociones. Al final, no pueden lograr el efecto deseado. Más tarde, cada vez que llego a este tipo de tiempo, suelo usar algunas cosas en papel más vívidas para comunicarme de una manera que ambas partes estén de acuerdo y comprendan, lo que reduce muchos problemas innecesarios. Todo el mundo sabe que para los programadores, cambiar los requisitos es algo muy doloroso, por lo que la comunicación temprana es muy importante.
③Hay una cosa más. Mi líder anterior no sabía mucho sobre tecnología, por lo que cada vez que surgía una nueva demanda, siempre nos pedíamos que la completáramos en un corto período de tiempo. Si no la completaba, lo haríamos ser sospechoso de problemas de capacidad. Por supuesto, todo líder espera que sus empleados puedan completar las tareas lo antes posible, reducir costos y mejorar la eficiencia. En este momento, refinaré nuestras necesidades, enumeraré los puntos clave y las dificultades, haré un buen trabajo en la planificación del tiempo, me comunicaré pacientemente con los líderes, la importancia de cada punto del proyecto y la proporción de tiempo invertido, para asegurar que el La planificación es Completar la tarea con calidad y cantidad dentro del punto de tiempo. Poco a poco, ha sido reconocido por el líder. De hecho, el líder no es ciegamente irrazonable. Siempre que planifique bien las cosas, puede obtener el mayor valor al menor costo. Todos son fáciles de entender.

9. ¿Cómo puede el usuario agregar directamente al carrito de compras sin iniciar sesión?

Respuesta: El usuario puede guardar la información del producto que se va a comprar (como el ID del producto, el precio del producto, el sku_id del producto, el número de compras y otros datos clave) sin iniciar sesión, en el caso de iniciar sesión. Guarde el contenido de la cookie en la base de datos y borre los datos de la cookie.

10. ¿Ha escrito alguna vez una interfaz? ¿Cómo se define la interfaz?

Respuesta: he escrito. Hay dos tipos de interfaces: una es una interfaz de tipo de datos y la otra es una interfaz de tipo aplicación.
Interfaz de datos: es una cierta "estructura" que es más abstracta que una clase abstracta; en realidad no es una clase, sino una cierta estructura gramatical como una clase. Es una especificación estructural que regula el formato en el que nuestra clase debería estar definido, generalmente Se utiliza cuando el equipo es relativamente grande y hay muchas sucursales.
Interfaz de la aplicación: API (interfaz de la aplicación) es una entrada para el acceso externo a los datos.
Estoy principalmente involucrado en la preparación de la interfaz en el desarrollo de la APP. Les proporcionaremos los datos correspondientes para qué tipo de datos necesita el cliente. Los datos están en json / xml Se devuelve el formato y se adjunta el documento de interfaz correspondiente.

11.sku inventario reducido?

Respuesta: SKU = Unidad de mantenimiento de existencias (Unidad de mantenimiento de existencias)
es la unidad de medida de entrada y salida de existencias, que puede estar en unidades de piezas, cajas, palés, etc. SKU es la unidad de inventario que distingue productos individuales.
Es el más utilizado en productos de ropa y calzado. Por ejemplo, un SKU en textiles generalmente significa: especificaciones, colores y estilos.
Al diseñar la tabla, no solo hay una tabla de productos, sino que hay un inventario total en la tabla de productos. También necesitamos incluir una tabla de SKU con el inventario de SKU y los campos de precio unitario. Cada vez que un usuario compra un producto, lo que comprar es SKU. Productos básicos, de modo que después de realizar el pedido correctamente, el inventario de SKU correspondiente debe reducirse de acuerdo con el número de SKU único del producto comprado. Por supuesto, el inventario total del producto se almacena en la tabla maestra de productos , y es necesario reducir la cantidad de inventario en el inventario total.

Continuará ~~~~~

Siga la cuenta pública de WeChat: PHP God , y luego responda al " Manual de entrevistas " para obtenerlo ~

Supongo que te gusta

Origin blog.51cto.com/15115111/2668943
Recomendado
Clasificación