Название задания: Разбиение спагетти-кода на компоненты Цель: Превратить ужасный спагетти-код в приличный структурированный. Описание задания: Ознакомиться с приведённым листингом кода на одном из языков программирования Провести рефакторинг, разбив код на функции (методы) Шаг 1: Python import sys from uuid import uuid4 import requests URL = "https://meowfacts.herokuapp.com/" file_name = 'enum' if __name__ == '__main__': if len(sys.argv) < 2: sys.exit() count = sys.argv[1] try: data = requests.get(URL+f'?count={count}') except Exception as e: print('error', e) sys.exit() data = data.json() if 'data' in data: data = data['data'] else: print('wrong data') sys.exit() if len(sys.argv) == 3: if sys.argv[2] == 'file': for i, fact in enumerate(data): if file_name == 'enum': name = i + 1 else: name = uuid4() with open(f'{name}.txt', 'w') as fw: fw.write(fact) elif sys.argv[2] == 'stdout': for fact in data: print(fact) else: print('unknown output format') Шаг 2: Java package org.slurm; import javax.json.Json; import javax.json.JsonObject; import javax.json.JsonReader; import javax.json.JsonValue; import java.io.*; import java.net.HttpURLConnection; import java.net.URL; import java.util.Objects; public class Main { public static void main(String[] args) throws IOException { if (args.length < 1) { System.exit(0); } Integer count = Integer.valueOf(args[0]); String baseURL = "https://meowfacts.herokuapp.com"; URL url = new URL(baseURL + "/?count=%d".formatted(count)); HttpURLConnection con = (HttpURLConnection) url.openConnection(); con.setRequestMethod("GET"); BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream())); JsonReader jsonReader = Json.createReader(in); JsonObject data = jsonReader.readObject(); if (args.length > 1) { int i = 0; for (JsonValue item : data.get("data").asJsonArray()) { i += 1; if (Objects.equals(args[1], "stdout")) { System.out.println(item); } else if (Objects.equals(args[1], "file")) { FileWriter file = new FileWriter("%d.txt".formatted(i)); file.write(item.toString()); file.close(); } else { System.out.println("unknown format"); System.exit(0); } } } else { System.out.println("unknown format"); System.exit(0); } con.disconnect(); } }