Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 11174|Resposta: 1

Perguntas para Entrevista para Arquiteto Sênior de Programador PHP

[Copiar link]
Publicado em 23/12/2016 09:10:09 | | |


Recentemente, entrevistei várias empresas uma após a outra e gravei algumas perguntas importantes, me incentivando a estudar e melhorar, e ao mesmo tempo esperando ajudar meus amigos.
Há muito conteúdo, pouco a pouco, aprendizado passo a passo.
Alguns são questionados em entrevistas, outros são requisitos de recrutamento e alguns são adicionados sozinhos.

1. Conhecimento relacionado ao MySQL
    1. Método de otimização MySQL
            Métodos comuns de otimização com MYSQL
            Esquema de otimização de desempenho MySQL
  
    2. Como dividir o banco de dados e as tabelas
           Referência:
   http://blog.sina.com.cn/s/blog_6e322ce70100zs9a.html
           http://www.jb51.net/article/29771.htm

   3. Como fazer standby a quente em duas máquinas e balanceamento de carga no Mysql+
http://www.dewen.org/q/51/Mysql+如何做双机热备和负载均衡
   
   4. Quais são os tipos de tabelas de dados?
       MyISAM, InnoDB, HEAP, BOB, ARCHIVE, CSV, etc
       MyISAM: Maduro, estável, fácil de administrar, rápido de ler. Alguns recursos não são suportados (transações, etc.), bloqueios em nível de tabela.
       InnoDB: Suporta transações, chaves estrangeiras e bloqueios de linha. Ele ocupa muito espaço e não suporta indexação de texto completo.

       Principais características dos motores myisam e Innodb:
       Qual é a diferença entre o mecanismo de armazenamento MySQL, MyISAM, e o InnoDB?

   5. Método de injeção Anti-SQL
      mysql_escape_string(strip_tags($arr["$val"]));

   6. Como resolver o problema de eficiência de consultas de tabelas cruzadas após o mysql dividir uma grande tabela em múltiplas tabelas

[php] ver cópia simples
Veja fatias de código derivadas dos meus fatios de código no CODE

    /**
    * Nome da função: post_check()  
    * Função função: Processa as edições submetidas  
    * Parâmetro: $post: O conteúdo a ser enviado  
    * Valor de retorno: $post: Retorna conteúdo filtrado  
    */  
    função post_check($post){  
    if(!get_magic_quotes_gpc()){// Determine se o magic_quotes_gpc está aberto   
    $post = barras adicionais($post); Realize magic_quotes_gpc filtragem dos dados enviados sem abrir   
    }  
    $post = str_replace("_","\_", $post); Filtrar '_'  
    $post = str_replace("%","\%", $post); Filtre '%'  
    $post = nl2br($post); Entra a conversão   
    $post = htmlspecialchars($post); Conversão de marcação HTML   
    retorno $post;  
    }  

   7. Aplicação de índice
         Quando considerar a indexação
         Quais situações não são adequadas para indexação
         Como julgar se uma afirmação usa um índice
        Cenários frequentes em que índices não são usados:
                tipo '%.....'
                Conversão implícita de tipos de dados
                ou palavras-chave mais outras condições
       Índice do Texto Completo:
                Só pode ser usado para tabelas MYIsAM, criadas em colunas do tipo CHAR, VARCHAR, TEXT.
      

   8. Como otimizar o MySQL para tabelas grandes (dezenas de milhões)?
        Referência http://www.zhihu.com/question/19719997

   9. Problema de consulta lenta do mysql
  Na verdade, é uma forma relativamente simples de analisar por meio de logs de consulta lentos; se você não quiser ver os logs, pode usar ferramentas para completá-lo.

Como mysqldumpslow, mysqlsla, myprofi, mysql-explain-slow-log, mysqllogfilter, etc., parece que você precisa de muita experiência para analisar um, e é perda de tempo.

10. Sobre as vantagens e desvantagens do status de login do usuário, sessão, cookie, banco de dados ou http://www.dewen.org/q/11504/

Sobre o status de login do usuário, as vantagens e desvantagens do sessão%2Ccookie, banco de dados ou memcache

  11. Casos extremos são tratados em transações
  12. SQL idioma é dividido em 4 categorias, por favor, liste
        DDL — CRIAR, DESCARTAR, ALTERAR
        DML--INSERIR, ATUALIZAR, EXCLUIR
        DQL-SELECT
        DCL--CONCEDER, REVOGAR, COMPROMETER, REVERTER
        

2. PHP noções básicas

      Sessão

        Várias formas e diferenças entre a conexão do PHP a bancos de dados MySQL
    MySQL: Orientado a Processos
    MySQLI: Orientado a Objetos
    PDO: Alta portabilidade
    Por favor, consulte: PHP Basic Series: Três APIs Usadas pelo PHP para Conectar a Bancos de Dados MySQL

3. PHP Avançado

    Uso de conexões longas e curtas

    Soquete

    Questões de segurança de pagamentos

    Orientado a objetos
    Três características principais: encapsulamento, herança e polimorfismo (reescrita de métodos).
    Classe abstrata: abstrato, pelo menos um método é um método abstrato que não pode ser instanciado, definindo uma interface comum para a subclasse.
    Interface: interface, resolva o problema de herança única do PHP, todos os métodos são métodos abstratos de acesso público, você não pode declarar variáveis, apenas constantes.
    Herdar uma classe ao implementar múltiplas interfaces
    a classe A estende B implementa interface 1, interface 2..., interface n() {
          Implementar métodos em todas as interfaces
    }
    Análise das causas das diferenças de desempenho entre as arquiteturas de sites LAMP e LNMP
    Análise de desempenho de linguagens interpretadas e compiladas, exemplos.

4. Regularidade

      Correspondência de e-mail, html, js, etc.

5. Fundação de desenvolvimento

          Definições, distinções e conexões de processos e threads.
           O estado do processo: corre, pronto, espera

6. Banco de dados Nosql
       Conexões diferenciadas Memcached, Redis, Mongodb
       3 cenas, coisas completamente diferentes. 1.memcached: Se um único valor de chave estiver armazenado em cache na memória, não há substituto para cache de objetos no cache distribuído; 2. redis: É uma coleção de algoritmos e estruturas de dados, a operação rápida de estruturas de dados é sua maior característica, suportando persistência de dados; 3. MongoDB é uma estrutura BSON, entre RDB e NoSQL, que é mais flexível e flexível, mas não suporta transações e é usada apenas como um armazenamento de dados não importante.
     Posso me referir ao MongoDB ou ao redis como alternativa ao memcached?

7. Comandos Linux comumente usados
      Por exemplo, soft links

8. Relacionado à arquitetura

           Teste de estresse antes do projeto entrar em funcionamento, o número de concorrências suportadas por um único servidor e o número de PVs.

           Alocação razoável de recursos do servidor

             CPU:Apache
                   Em um ambiente de alta carga, leituras e gravações em excesso de IO em disco certamente vão consumir muitos recursos, e a CPU inevitavelmente vai consumir muita CPU.
             Memória: Banco de memória, software de banco de dados
               
             Disco Rígido: Arquivos

           Seleção da arquitetura Web2.0

              MongoDB+Redis ou MySQL+Memcached é uma combinação melhor, e NOSQL é usado para lógica simples

           A arquitetura principal do site é atualmente popular
    LÂMPADA、LNMP、LLMP
    Atualmente, também existe uma arquitetura LNAMP na rede, ou seja, ela combina as vantagens do nginx e do Apache, usando o Apache para carregar PHP, o nginx é responsável por analisar outras requisições web e usa o módulo de reescrita do nginx, mas a porta do Apache não está aberta ao público, e muitos módulos do Apache podem reduzir recursos sem carregar.





Anterior:Windows PowerShell para encontrar o IP do atacante
Próximo:C# identifica a localização do código QR na tela
Publicado em 23/12/2016 21:53:52 |
Você quebra tudo.
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com