Dieser Artikel ist ein Relay-Artikel von "2019 Tech Connect Summer" von Link Information System. .. Weitergeleitet von einem Gruppenmitglied von engineer.hanzomon. Das Linkinformationssystem Facebook ist hier.
Mein Name ist Go (@Go_in_lis) und ich bin verantwortlich für den 9. Tag des Bärenteams. Ich werde eine Arbeitsmethode namens Pomodoro-Technik und eine einfache Methode (Java) vorstellen, um einen für diese Arbeit erforderlichen Timer zu erstellen.
Die Pomodoro-Technik ist eine effiziente Arbeitsmethode, die Francesco Cirillo in den 1980er Jahren vorgeschlagen hat. Der Zweck der Pomodoro-Technik besteht darin, die Produktivität von Einzelpersonen und Teams zu verbessern, indem die folgenden Schritte ausgeführt werden, um die Konzentration und Motivation von Personen zu erhöhen.
Die Konzentration variiert jedoch von Person zu Person. Ich bin sicher, es gibt Leute, die sich in 25 Minuten endlich konzentrieren können, aber unterbrochen werden, oder 5 Minuten Pause sind nicht genug. Daher werde ich in diesem Artikel eine Methode zum Erstellen eines "eigenen Pomodoro-Timers" vorstellen, mit der die Zeit jedes Elements angepasst werden kann.
Art | Name |
---|---|
Entwicklungssprache | Java |
Entwicklungswerkzeuge | Eclipse Java 2019-06 |
Entwicklung os | win10 |
Das folgende Flussdiagramm zeigt die Programmablauf. Die in der Schleife angegebenen Bedingungen sind Fortsetzungsbedingungen.
* Tool zur Erstellung von Flussdiagrammen: https: // www.draw.io /
Sie können die Zeit für jedes Element festlegen, indem Sie sie über die Konsole eingeben. Außerdem haben wir eine Methode, die den Wert jedes Feldmitglieds lesen kann, damit andere Methoden die festgelegte Zeit verwenden können.
public class SetTimer
{
private int pomodoroTime;
private int shortBreakTime;
private int pomoNum;
private int longBreakTime;
//Timer-Einstellungen
public SetTimer() throws NumberFormatException, IOException
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Pomodoro Zeit(Protokoll)Bitte eingeben:");
pomodoroTime = Integer.parseInt(br.readLine());
System.out.print("Kurze Pausenzeit(Protokoll)Bitte eingeben:");
shortBreakTime = Integer.parseInt(br.readLine());
System.out.print("Geben Sie die Anzahl der Pomodoros bis zur langen Pause ein:");
pomoNum = Integer.parseInt(br.readLine());
System.out.print("Lange Pausenzeit(Protokoll)Bitte eingeben:");
longBreakTime = Integer.parseInt(br.readLine());
}
//Lesen der Daten jedes Elements
public int getPomodoroTime()
{
return pomodoroTime;
}
public int getShortBreakTime()
{
return shortBreakTime;
}
public int getPomoNum()
{
return pomoNum;
}
public int getLongBreakTime()
{
return longBreakTime;
}
}
Konvertieren Sie als hier verwendete Countdown-Verarbeitungsmethode zuerst die eingestellte Zeit in Sekunden. Dann wird der Vorgang des Wartens auf 1 Sekunde und des Verkürzens der Zeit um 1 Sekunde wiederholt. Die Schleife endet, wenn die Zeit Null erreicht. Der Code ist unten.
public class CountDown
{
//fields
private static long totalTimeBySec;
private static long perSec = 1000;
//method
public static void bySleep(int totalTime) throws InterruptedException //Countdown-Methode mit Schlafmethode
{
totalTimeBySec =totalTime * 60;
for(long i = totalTimeBySec; i >= 0; i--)
{
Thread.sleep(perSec); //Warte mal eine Sekunde
ShowTime.remainTime(i); //Restzeit anzeigen
}
}
}
Im Alltag verwendete Digitaluhren werden in der Regel unabhängig von Minuten oder Sekunden zweistellig angezeigt. Java hat eine ähnliche Methode wie "% 2d" in der Sprache c, aber da es sich um eine objektorientierte Programmiersprache handelt, möchte ich eine Klasse namens DecimalFormat verwenden. Die DecimalFormat-Klasse kann das Dezimalformat mithilfe des Konstruktors festlegen. Anschließend können Sie die format () -Methode verwenden, um das Argument entsprechend dem Format zu ändern. Der Code ist unten.
public static void remainTime(long timeBySec)
{
long min = timeBySec/60;
long sec = timeBySec%60;
DecimalFormat df = new DecimalFormat("00"); //Minuten und Sekunden zweistellig ausgeben
System.out.println(df.format(min) + ":" + df.format(sec));
}
Lassen Sie den Benutzer entscheiden, ob er die nächste Aufgabe eingeben möchte oder nicht. Die io-Verarbeitungsmethode zu diesem Zeitpunkt ist in der folgenden Klasse geschrieben. Und wenn ein Pomodoro / eine Pause gestartet oder beendet wird, ist es meiner Meinung nach notwendig, nicht nur die Anzeigezeit auf Null oder den Anfangswert zu setzen, sondern auch eine entsprechende Meldung zu präsentieren. Die Anzeigemethoden für diese Nachrichten sind auch in den folgenden Klassen zusammengefasst.
public class Message
{
public static boolean isContinue() throws IOException
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
while(true)
{
System.out.println("Möchten Sie die nächste Aufgabe erledigen??(Y/N)");
String reply = br.readLine();
if(reply.equals("Y"))
{
System.out.println("Fortsetzen. geben wir unser Bestes.");
return true;
}
else if(reply.equals("N"))
{
System.out.println("Es ist fertig. Ist Prost auf gute Arbeit.");
return false;
}
else
{
continue;
}
}
}
public static void startPomo()
{
System.out.print("Pomodoro, lass uns anfangen.");
}
public static void startShortBreak()
{
System.out.print("Beginnen wir eine kurze Pause.");
}
public static void startLongBreak()
{
System.out.print("Beginnen wir eine lange Pause.");
}
}
Wenn Sie alle Prozesse gemäß dem Flussdiagramm kombinieren, haben Sie Ihren eigenen Pomodoro-Timer.
public class Main
{
public static void main(String[] args) throws InterruptedException, NumberFormatException, IOException
{
boolean isContinue = true;
SetTimer timer = new SetTimer(); //Zeiteinstellung für jeden Artikel
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()); //Lange Pause
}
else
{
Message.startShortBreak();
CountDown.bySleep(timer.getShortBreakTime()); //Kurze Pause
}
}
isContinue = Message.isContinue();
}while(isContinue);
}
}
Sehen wir uns das Ausführungsergebnis an. Nach der Ausführung können Sie zunächst die Zeit für Pomodoro, die kurze Pause, die lange Pause und die Anzahl der Pomodoro bis zur langen Pause durch Eingabe der Konsole einstellen. Wenn alle Einstellungen vorgenommen wurden, startet der Timer. Für dieses Bild ist eine kurze Zeit eingestellt, um den Effekt zu zeigen. Nachdem ein Pomodoro fertig ist, werden wir eine Nachricht präsentieren, dass eine kurze Pause beginnt und eine kurze Pause beginnt. Nach einer kurzen Pause beginnt der nächste Pomodoro. Selbst wenn Sie eine lange Pause einlegen, beginnt diese nach dem Präsentieren einer Nachricht. Nach einer langen Pause können Sie entscheiden, ob Sie mit der nächsten Aufgabe fortfahren möchten. Geben Sie "Y" ein, um die nächste Aufgabe einzugeben und Pomodoro zu starten. Geben Sie "N" ein, um den Timer zu beenden.
Diese Konsolenanwendung gibt die verbleibende Zeit zeilenweise aus. Der Grund ist, sicherzustellen, dass die Zeit um eine Sekunde richtig heruntergezählt wird. Um die vorherige Zeile jedes Mal zu überschreiben, sollte es möglich sein, eine Escape-Sequenz wie "\ b" oder "\ r" für die Doppelbeschichtung von "System.out.print (" ")" zu verwenden. Abhängig von der Umgebung wie der Eclipse-Version und dem System ist dies möglicherweise nicht möglich. Wir haben überprüft, dass dies in dieser Implementierungsumgebung nicht erreicht werden kann.
[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).
Dieses Mal habe ich mich gefragt, was das Thema sein soll, und da ich mich nur langsam entschieden habe, habe ich nur eine Konsolenanwendung erstellt. Als Aussicht auf dieses System
Es ist langweilig, aber danke, dass du bis zum Ende zugesehen hast. Wenn ich noch eine Chance habe, möchte ich den verbesserten Pomodoro ausstellen. Als nächstes kommt der Artikel über Vögel. Danke, weiter!
Link Information System Co., Ltd. rekrutiert Kollegen für die Zusammenarbeit mit nach Bedarf. Wir suchen auch Arbeitsanfragen und Geschäftspartner. Bitte kontaktieren Sie uns (https://www.lis.co.jp/inquiry).
Recommended Posts