Cet article est un article relais de "2019 Tech Connect Summer" de Link Information System. .. Relayé par un membre du groupe de engineer.hanzomon. Le système d'information sur les liens Facebook est ici.
Je m'appelle Go (@Go_in_lis) et je suis en charge de la 9e journée de l'équipe ours. Je présenterai une méthode de travail appelée technique Pomodoro et une méthode simple (Java) pour créer une minuterie nécessaire à ce travail.
La technique Pomodoro est une méthode de travail efficace proposée par Francesco Cirillo dans les années 1980. Le but de la technique Pomodoro est d'améliorer la productivité des individus et des équipes en suivant les étapes ci-dessous pour augmenter la concentration et la motivation des personnes.
Cependant, la concentration varie d'une personne à l'autre. Je suis sûr qu'il y a des gens qui peuvent enfin se concentrer en 25 minutes mais qui sont interrompus, ou 5 minutes de pause ne suffisent pas. Par conséquent, dans cet article, je vais vous présenter une méthode pour créer "votre propre minuterie pomodoro" qui peut ajuster l'heure de chaque élément.
Type | Nom |
---|---|
langage de développement | Java |
Outils de développement | Eclipse Java 2019-06 |
Développement OS | win10 |
L'organigramme suivant montre la procédure du programme. Les conditions affichées dans la boucle sont des conditions de continuation.
* Outil de création d'organigrammes: https: // www.draw.io /
Vous pouvez régler l'heure de chaque élément en entrant à partir de la console. Et nous avons également une méthode qui peut lire la valeur de chaque membre du champ afin que d'autres méthodes puissent utiliser l'heure définie.
public class SetTimer
{
private int pomodoroTime;
private int shortBreakTime;
private int pomoNum;
private int longBreakTime;
//Paramètres de la minuterie
public SetTimer() throws NumberFormatException, IOException
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Heure de Pomodoro(Minutes)Entrez s'il vous plait:");
pomodoroTime = Integer.parseInt(br.readLine());
System.out.print("Temps de pause court(Minutes)Entrez s'il vous plait:");
shortBreakTime = Integer.parseInt(br.readLine());
System.out.print("Entrez le nombre de pomodoros jusqu'à la longue pause:");
pomoNum = Integer.parseInt(br.readLine());
System.out.print("Long temps de pause(Minutes)Entrez s'il vous plait:");
longBreakTime = Integer.parseInt(br.readLine());
}
//Lire les données de chaque élément
public int getPomodoroTime()
{
return pomodoroTime;
}
public int getShortBreakTime()
{
return shortBreakTime;
}
public int getPomoNum()
{
return pomoNum;
}
public int getLongBreakTime()
{
return longBreakTime;
}
}
En tant que méthode de traitement du compte à rebours utilisée ici, convertissez d'abord le temps défini en secondes. Ensuite, il boucle l'opération d'attendre 1 seconde puis de réduire le temps d'1 seconde. La boucle se termine lorsque le temps atteint zéro. Le code est ci-dessous.
public class CountDown
{
//fields
private static long totalTimeBySec;
private static long perSec = 1000;
//method
public static void bySleep(int totalTime) throws InterruptedException //Méthode de compte à rebours utilisant la méthode de sommeil
{
totalTimeBySec =totalTime * 60;
for(long i = totalTimeBySec; i >= 0; i--)
{
Thread.sleep(perSec); //Attends une seconde
ShowTime.remainTime(i); //Afficher le temps restant
}
}
}
Les horloges numériques utilisées dans la vie quotidienne sont généralement affichées sur deux chiffres, quelles que soient les minutes ou les secondes. Java a une méthode similaire à "% 2d" en langage c, mais comme il s'agit d'un langage de programmation orienté objet, j'aimerais utiliser une classe appelée DecimalFormat. La classe DecimalFormat peut définir le format décimal à l'aide du constructeur. Ensuite, vous pouvez utiliser la méthode format () pour modifier l'argument en fonction du format. Le code est ci-dessous.
public static void remainTime(long timeBySec)
{
long min = timeBySec/60;
long sec = timeBySec%60;
DecimalFormat df = new DecimalFormat("00"); //Sortie minutes et secondes sur deux chiffres
System.out.println(df.format(min) + ":" + df.format(sec));
}
Laisser l'utilisateur décider s'il souhaite ou non entrer la tâche suivante. La méthode de traitement io à ce moment-là est écrite dans la classe suivante. Et lors du démarrage ou de la fin d'un pomodoro / break, je pense qu'il est nécessaire non seulement de régler le temps d'affichage sur zéro ou la valeur initiale, mais aussi de présenter un message correspondant. Les méthodes d'affichage de ces messages sont également résumées dans les classes suivantes.
public class Message
{
public static boolean isContinue() throws IOException
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
while(true)
{
System.out.println("Voulez-vous faire la tâche suivante?(Y/N)");
String reply = br.readLine();
if(reply.equals("Y"))
{
System.out.println("Continuer. faisons de notre mieux.");
return true;
}
else if(reply.equals("N"))
{
System.out.println("C'est fini. Vive le bon travail.");
return false;
}
else
{
continue;
}
}
}
public static void startPomo()
{
System.out.print("Pomodoro, commençons.");
}
public static void startShortBreak()
{
System.out.print("Commençons une courte pause.");
}
public static void startLongBreak()
{
System.out.print("Commençons une longue pause.");
}
}
Si vous combinez tous les processus selon l'organigramme, vous aurez votre propre minuterie Pomodoro.
public class Main
{
public static void main(String[] args) throws InterruptedException, NumberFormatException, IOException
{
boolean isContinue = true;
SetTimer timer = new SetTimer(); //Réglage de l'heure pour chaque élément
do {
for(int i = 0; i < timer.getPomoNum(); i++)
{
Message.startPomo();
CountDown.bySleep(timer.getPomodoroTime()); //Pomodoro
if(i == timer.getPomoNum() - 1)
{
Message.startLongBreak();
CountDown.bySleep(timer.getLongBreakTime()); //Longue pause
}
else
{
Message.startShortBreak();
CountDown.bySleep(timer.getShortBreakTime()); //Courte pause
}
}
isContinue = Message.isContinue();
}while(isContinue);
}
}
Voyons le résultat de l'exécution. Après l'exécution, vous pouvez définir l'heure de pomodoro, courte pause, longue pause et le nombre de pomodoro jusqu'à la longue pause en entrant dans la console. Lorsque tous les réglages sont terminés, la minuterie démarre. Cette image a un court laps de temps défini pour montrer l'effet. Une fois qu'un pomodoro est terminé, nous présenterons un message indiquant qu'une courte pause commencera et commencera une courte pause. Après une courte pause, le prochain Pomodoro commencera. Même lors d'une longue pause, cela commence après la présentation d'un message. Après une longue pause, vous pouvez décider de passer à la tâche suivante. Tapez "Y" pour entrer dans la tâche suivante et démarrer Pomodoro. Entrez "N" pour mettre fin à la minuterie.
Cette application console affiche le temps restant ligne par ligne. La raison est de s'assurer que le temps compte correctement d'une seconde.
Pour écraser la ligne précédente à chaque fois, il devrait être possible d'utiliser une séquence d'échappement telle que "\ b" ou "\ r" pour le double revêtement de System.out.print (" ")
. , Cela peut ne pas être possible en fonction de l'environnement tel que la version et le système d'Eclipse. Nous avons vérifié que cela ne peut être réalisé dans cet environnement de mise en œuvre.
[1] Pomodoro Technique - Wikipedia. https://en.wikipedia.org/wiki/Pomodoro_Technique [2] Cirillo, Francesco. "The pomodoro technique (the pomodoro)." Agile Processes in Software Engineering and 54.2 (2006).
Cette fois, je me demandais quel devrait être le thème, et en raison de la lenteur à décider, je n'ai fait qu'une application console. Cependant, dans la perspective de ce système,
C'est ennuyeux, mais merci d'avoir regardé jusqu'au bout. Si j'ai une autre chance, je voudrais exposer le Pomodoro amélioré. Vient ensuite l'article sur les oiseaux. Merci, continuez!
Link Information System Co., Ltd. recrute des collègues avec qui travailler au besoin. Nous recherchons également des demandes de travaux et des partenaires commerciaux. N'hésitez pas à nous contacter (https://www.lis.co.jp/inquiry).
Recommended Posts