[JAVA] J'ai posé une question qui peut être utilisée pour des entretiens techniques

Public cible

Un enquêteur technique qui souhaite mener un entretien technique pour un ingénieur enseignant mais qui n'arrive pas à penser à une bonne question

Position cible

--Tech Lead pour améliorer la productivité de l'équipe de développement

Contexte

Objet de la question

Confirmation du fait que la conception peut être conçue en gardant à l'esprit l'efficacité du développement et de la maintenance, et s'il est possible de discuter de la conception et de l'amélioration du code avec les ingénieurs avant le code

question 1

  1. Quels sont les avantages de l'abstraction des classes?
  2. Pourquoi les classes devraient-elles s'appuyer sur l'abstrait plutôt que sur le concret?
  3. Veuillez expliquer les spécifications du polymorphisme et son objectif.

question 2

  1. Veuillez améliorer le code suivant en le refactorisant
  2. Veuillez expliquer les points à améliorer et leurs avantages

Code (Java)

python



public interface InterfaceA {	
	String search(String key);
	String delete(String key);
	String insert(String key);
}

public class ServiceA implements InterfaceA {
	@Override
	public String search(String key) {
		return null;
	}

	@Override
	public String delete(String key) {
		return null;
	}

	@Override
	public String insert(String key) {
		return null;
	}
}

python


public class ServiceController {

	private static ServiceA objA;
	private static ServiceB objB;
	private static ServiceC objC;
	
	public static void set(ServiceA obj) {
		objA = obj;		
	}
	
	public static void set(ServiceB obj) {
		objB = obj;		
	}
	
	public static void set(ServiceC obj) {
		objC = obj;		
	}
	
	public static void search(int serviceType, String key) throws Exception {
		if(1 == serviceType)	 objA.search(key);
		else if(2 == serviceType)objB.search(key);
		else if(3 == serviceType)objC.search(key);
		else throw new Exception("Error");
	}
	
}

python


public class Provider {

	public static void init() {		
		ServiceController.set(new ServiceA());
		ServiceController.set(new ServiceB());
		ServiceController.set(new ServiceC());		
	}

	public static void searchA(String key) throws Exception {
		ServiceController.search(1, key);
	}
}

Résumé

Telles sont les questions pour les réviseurs de code et les enseignants.

Recommended Posts

J'ai posé une question qui peut être utilisée pour des entretiens techniques
J'ai créé un client API THETA qui peut être utilisé pour le développement de plugins
[Android] Je souhaite créer un ViewPager pouvant être utilisé pour les didacticiels
Créer un contrôle de page qui peut être utilisé avec RecyclerView
J'ai créé un plug-in pour IntelliJ IDEA
J'ai créé une classe qui peut utiliser JUMAN et KNP de Java
J'ai créé un outil Diff pour les fichiers Java
Organiser les méthodes qui peuvent être utilisées avec StringUtils
Collection RSpec que j'ai fréquemment utilisée
Extrait technologique pouvant être utilisé pour créer des sites EC dans la formation Java
J'ai créé une image Docker pour la version japonaise de SDAPS
J'ai créé un outil de vérification pour le module de version
Ecrire une classe qui peut être ordonnée en Java Un petit mémo standard
J'ai fait une méthode pour demander la prime vendredi
J'ai créé une bibliothèque qui fonctionne comme un onglet dans Safari !!
J'ai créé une bibliothèque pour afficher des tutoriels sur Android.
J'ai créé un Wrapper qui appelle KNP depuis Java
À propos du problème que hidden_field peut être utilisé de manière insensée
J'ai utilisé Docker pour mon portfolio en tant que débutant, donc j'espère que même 1 mm sera utile à quelqu'un.
Touches de raccourci pratiques pour Eclipse
J'ai essayé un puzzle qui ne peut être résolu que par les 10% de mauvais ingénieurs
J'ai créé une fonction de réponse pour l'extension Rails Tutorial (Partie 4): une fonction qui rend l'utilisateur unique
Créez un fichier jar qui peut être exécuté sur Gradle
Base de données Firebase-Realtime sur Android pouvant être utilisée avec copie
Problèmes facilement confondus avec Java et JavaScript
[Question] Nullif peut-il être utilisé dans la fonction de comptage de JPQL?
Rechercher une instruction Switch qui peut être convertie en une expression Switch
J'ai créé un MOD qui appelle instantanément un véhicule avec Minecraft
J'ai créé une application de chat.
Je ne peux plus me connecter à une VM avec un conteneur Docker pouvant se connecter via SSH
Outil d'analyse statique pouvant être utilisé avec GitHub [version Java]
Mécanisme de conversion vers une langue que le navigateur peut reconnaître
Résumé de l'ORM "uroboroSQL" qui peut être utilisé dans le Java d'entreprise
J'ai créé une fonction de réponse pour l'extension Rails Tutorial (Partie 1)
J'ai créé une source qui génère automatiquement un fichier de classe d'entité JPA
Création d'une méthode pour demander Premium Friday (version Java 8)
Compétences de puissance qui peuvent être utilisées rapidement à tout moment - Réflexion
SwiftUI View qui peut être utilisé en combinaison avec d'autres frameworks
J'ai créé une fonction de réponse pour l'extension Rails Tutorial (Partie 5):
Installation de Mecab qui peut se faire presque en tapant une commande
Une histoire que j'ai finalement comprise Java pour une déclaration en tant que non-ingénieur
[Java 8] Jusqu'à la conversion de l'entrée standard qui peut être utilisée dans les tests de codage en une liste ou un tableau
J'ai essayé d'implémenter la fonction de téléchargement d'images multiples dans Rails afin que plusieurs images puissent être glissées pour le message
[Spring Boot] Liste des règles de validation qui peuvent être utilisées dans le fichier de propriétés pour les messages d'erreur
J'ai créé une application shopify @java
J'ai fait une simple fonction de recommandation.
J'ai créé une application correspondante (application Android)
J'ai créé un outil de génération package.xml.
[Android] J'ai créé une application de podomètre.
Traitement d'entrée / sortie de fichier Java pouvant être utilisé via l'historique
Peut-être peut-il être utilisé lors d'une fête de fin d'année? Code du jeu Mosaic
J'ai essayé d'apprendre Java avec une série que les débutants peuvent comprendre clairement
Implémentation de machine à sous simple qui peut être utilisée avec copie
J'avais des problèmes au travail, j'ai donc créé un plug-in IntelliJ
Code Java qui ne peut pas être utilisé depuis Kotlin (pour les sessions d'étude en interne)