[JAVA] Machen Sie Ihren eigenen Pomodoro

Einführung

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.

Pomodoro-Technik

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.

Pomodoro-Technik-Verfahren

  1. Legen Sie eine Aufgabe (Ziel) fest.
  2. Führen Sie pomodoro (Arbeit) durch. Normalerweise dauert ein Pomodoro 25 Minuten.
  3. Machen Sie eine kurze Pause. Normalerweise dauert eine kurze Pause 3-5 Minuten.
  4. Kehren Sie zu 2 zurück.
  5. Wenn die vier Pomodoros fertig sind, machen Sie eine lange Pause anstelle einer kurzen Pause. Lange Pausen dauern normalerweise 15-30 Minuten.
  6. Kehren Sie zu 1 zurück.

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.

Montageumgebung

Art Name
Entwicklungssprache Java
Entwicklungswerkzeuge Eclipse Java 2019-06
Entwicklung os win10

Pomodoros Flussdiagramm

Das folgende Flussdiagramm zeigt die Programmablauf. Die in der Schleife angegebenen Bedingungen sind Fortsetzungsbedingungen. pomodoro_flowchat.png

* Tool zur Erstellung von Flussdiagrammen: https: // www.draw.io /

Quellcode

Timer-Einstellungen

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;
	}	
}

Countdown-Verarbeitung (mit Thread.sleep)

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
		}
	}
}

Zeitanzeige

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));
}

Andere Meldungsanzeige

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.");
	}
}

Hauptverarbeitung

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);
	}
}

Ergebnis

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.

Verweise

[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).

Ausblick

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

  1. Stellen Sie eine Verbindung zur Datenbank her und zeichnen Sie Zeit und Arbeitsinhalte auf
  2. Analyse und Beratung der Arbeitseffizienz
  3. Es sieht gut aus, wenn es sich um eine Anwendung mit GUI oder eine Webanwendung handelt Usw. realisiert werden kann.

abschließend

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

Machen Sie Ihren eigenen Pomodoro
Erstellen Sie Ihr eigenes Elasticsearch-Plugin
Erstellen Sie Ihre eigenen Java-Anmerkungen
Erstellen Sie mit Java Ihren eigenen einfachen Server und verstehen Sie HTTP
Erstellen Sie in Docker Ihre eigene Tastatur-QMK. Für Windows einzigartiges Volume
Erstellen Sie Ihre eigene Solr-Funktionsabfrage
Verwenden Sie LocationAwareLogger für Ihren eigenen Logger
Behandeln Sie Ihre eigenen Anmerkungen in Java
Erstellen Sie Ihre eigene Codierung für String.getBytes ()
Artikel werden unordentlich, machen Sie also eine Link-Sammlung Ihrer eigenen Artikel
Java: Versuchen Sie, einen durch Kommas getrennten Formatierer selbst zu implementieren
Versuchen Sie, Ihre eigene Objektorientierung zu organisieren
Erstellen Sie Ihren eigenen Validator mit Bean Validation
Verwendung der Talend-Komponente (5) Erstellen Sie Ihre eigene Komponente