Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 11174|Risposta: 1

Domande per il colloquio con architetto programmatore senior php

[Copiato link]
Pubblicato su 23/12/2016 09:10:09 | | |


Recentemente ho intervistato diverse aziende una dopo l'altra e ho registrato alcune domande importanti, spingendomi a studiare e migliorare, e allo stesso tempo sperando di dare un po' di aiuto ai miei amici.
C'è molto contenuto, poco a poco, un apprendimento passo dopo passo.
Alcuni vengono interrogati durante i colloqui, altri sono requisiti di reclutamento, e altri vengono aggiunti da soli.

1. Conoscenze relative a MySQL
    1. Metodo di ottimizzazione MySQL
            Metodi comuni di ottimizzazione MYSQL
            Schema di ottimizzazione delle prestazioni MySQL
  
    2. Come dividere il database e le tabelle
           Riferimento:
   http://blog.sina.com.cn/s/blog_6e322ce70100zs9a.html
           http://www.jb51.net/article/29771.htm

   3. Come fare standby a doppio sistema e bilanciamento del carico in Mysql+
http://www.dewen.org/q/51/Mysql+如何做双机热备和负载均衡
   
   4. Quali sono i tipi di tabelle dati?
       MyISAM, InnoDB, HEAP, BOB, ARCHIVE, CSV, ecc
       MyISAM: Maturo, stabile, facile da gestire, veloce da leggere. Alcune funzionalità non sono supportate (transazioni, ecc.), blocchi a livello di tabella.
       InnoDB: Supporta transazioni, chiavi estere e serrature a riga. Occupa molto spazio e non supporta l'indicizzazione del testo completo.

       Caratteristiche chiave dei motori myisam e Innodb:
       Qual è la differenza tra il motore di storage MySQL MyISAM e InnoDB?

   5. Metodo di iniezione Anti-SQL
      mysql_escape_string(strip_tags($arr["$val"]));

   6. Come risolvere il problema di efficienza delle query cross-table dopo che mysql ha suddiviso una tabella grande in più tabelle

[php] visualizza copia semplice
Visualizza code slice derivati dai miei code slice su CODE

    /**
    * Nome funzione: post_check()  
    * Funzione funzione: Elabora le modifiche inviate  
    * Parametro: $post: Il contenuto da inviare  
    * Valore di ritorno: $post: restituisce contenuti filtrati  
    */  
    funzione post_check($post){  
    if(!get_magic_quotes_gpc()){// Determina se il magic_quotes_gpc è aperto   
    $post = barrate aggiuntive ($post); Esegui magic_quotes_gpc filtraggio dei dati inviati senza aprire   
    }  
    $post = str_replace("_","\_", $post); Filtra '_'  
    $post = str_replace("%","\%", $post); Filtra '%'  
    $post = nl2br($post); Entra in scena la conversione   
    $post = htmlspecialchars($post); Conversione di markup HTML   
    ritorno $post;  
    }  

   7. Applicazione dell'indice
         Quando considerare l'indicizzazione
         Quali situazioni non sono adatte all'indicizzazione
         Come giudicare se una dichiarazione utilizza un indice
        Scenari frequenti in cui gli indici non vengono utilizzati:
                come '%.....'
                Conversione implicita dei tipi di dati
                o parole chiave più altre condizioni
       Indice del testo completo:
                Può essere usato solo per le tabelle MYIsAM, create su colonne di tipo CHAR, VARCHAR, TEXT.
      

   8. Come ottimizzare MySQL per tabelle grandi (decine di milioni)?
        Riferimento http://www.zhihu.com/question/19719997

   9. Problema di query lenta di mysql
  In effetti, è un modo relativamente semplice per analizzare attraverso log di query lenti; se non vuoi vedere i log, puoi usare strumenti per completarlo.

Come mysqldumpslow, mysqlsla, myprofi, mysql-explain-slow-log, mysqllogfilter, ecc., sembra che serva molta esperienza per analizzarne uno e che sia una perdita di tempo.

10. Riguardo ai vantaggi e svantaggi dello stato di accesso dell'utente, sessione, cookie, database o memcache http://www.dewen.org/q/11504/

Per quanto riguarda lo stato di accesso dell'utente, i vantaggi e gli svantaggi di session%2Ccookie, database o memcache

  11. I casi estremi vengono gestiti nelle transazioni
  12. SQL lingua è suddivisa in 4 categorie, per favore elenca
        DDL—CREARE, ELIMINARE, MODIFICARE
        DML--INSERIRE, AGGIORNARE, CANCELLA
        DQL-SELECT
        DCL--CONCEDERE, REVOCARE, COMPROMETTERSI, ANNULLARE
        

2. PHP nozioni di base

      Sessione

        Diversi modi e differenze tra il collegamento PHP ai database MySQL
    MySQL: orientato ai processi
    mysqli: orientato agli oggetti
    PDO: Alta portabilità
    Si prega di fare riferimento: PHP Basic Series: Tre API utilizzate da PHP per connettersi ai database MySQL

3. PHP Avanzato

    Uso di connessioni lunghe e brevi

    Presa

    Problemi di sicurezza dei pagamenti

    Orientato agli oggetti
    Tre caratteristiche principali: incapsulamento, ereditarietà e polimorfismo (riscrittura dei metodi).
    Classe astratta: astratto, almeno un metodo è un metodo astratto che non può essere istanziato, definendo un'interfaccia comune per la sottoclasse.
    Interfaccia: interfaccia, risolvi il problema dell'ereditarietà singola di PHP, tutti i metodi sono metodi astratti di accesso pubblico, non puoi dichiarare variabili, solo costanti.
    Ereditare una classe mentre si implementano più interfacce
    la classe A estende B implementa interfaccia 1, interfaccia 2..., interfaccia n() {
          Implementare metodi in tutte le interfacce
    }
    Analisi delle cause delle differenze di prestazioni tra le architetture di siti web LAMP e LNMP
    Analisi delle prestazioni di linguaggi interpretati e compilati, esempi.

4. Regolarità

      Email, HTML, JS, ecc. corrispondenza

5. Fondamento per lo sviluppo

          Definizioni, distinzioni e connessioni di processi e thread.
           Lo stato del processo: corri, pronto, aspetta

6. Database Nosql
       Connessioni differenziate Memcached, Redis, Mongodb
       3 scene completamente diverse. 1.memcached: Se un singolo valore chiave è memorizzato in memoria, non esiste un sostituto per la cache distribuita dell'oggetto in cache; 2. redis: è una raccolta di algoritmi e strutture dati, il funzionamento rapido delle strutture dati è la sua caratteristica principale, supportando la persistenza dei dati; 3. MongoDB è una struttura BSON, tra RDB e NoSQL, più ampia e flessibile, ma non supporta transazioni ed è utilizzata solo come archivio dati non importante.
     Posso riferirmi a MongoDB o redis come alternativa a memcached?

7. Comandi Linux comunemente usati
      Ad esempio, collegamenti morbidi

8. Legato all'architettura

           Test di stress prima che il progetto venga attivo, il numero di concorrenti supportate da un singolo server e il numero di PV.

           Allocazione ragionevole delle risorse server

             CPU:Apache
                   In un ambiente ad alto carico, troppe letture e scritture di IO su disco richiederanno sicuramente molte risorse, e la CPU inevitabilmente occuperà troppa CPU.
             Memoria: Banca di memoria, software di database
               
             Hard Disk: File

           Selezione dell'architettura Web2.0

              MongoDB+Redis o MySQL+Memcached è una combinazione migliore, mentre NOSQL viene usato per la logica semplice

           L'architettura principale del sito web è attualmente molto popolare
    LAMPADA、LNMP、LLMP
    Ora esiste anche un'architettura LNAMP sulla rete, cioè combina i vantaggi di nginx e Apache, usando Apache per caricare PHP, nginx è responsabile dell'analisi di altre richieste web e utilizza il modulo di riscrittura di nginx, ma la porta Apache non è aperta al pubblico e molti moduli di Apache possono ridurre le risorse senza caricarsi.





Precedente:Windows PowerShell per trovare l'IP dell'attaccante
Prossimo:C# identifica la posizione del codice QR sullo schermo
Pubblicato su 23/12/2016 21:53:52 |
Distruggi tutto.
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com