Sviluppo abbastanza spesso script che sono utilizzati principalmente come un'applicazione console, ma in seguito sono utilizzati in altri script, servizi web e altre cose in cui è molto conveniente, per importare semplicemente lo script e chiamare i metodi direttamente piuttosto che utilizzare un processo e analizzando lo stdout.
La domanda è ora, qual è una buona strategia di progettazione per sviluppare tali script? Ho un esempio qui in python:
def main():
# do stuff
print("Found several results here:")
for foo in bar:
print("result: %s" % foo)
if __name__ == "__main__"():
main()
questo potrebbe essere facilmente riscritto in qualcosa del genere:
def main():
result = some_function()
print("Found several results here:")
for foo in result:
print("result: %s" % foo)
def some_function():
# do stuff
return bar
if __name__ == "__main__"():
main()
Ma nella maggior parte dei casi questo non è così facile. Ma come affrontare questo problema quando il programma fa un bel po 'di output, come diverse analisi o diversi passaggi o il valore di ritorno di una funzione API sarebbe qualcosa come una lista di dict di lista di tuple (o anche strutture più complicate) ? Sarebbe opportuno incapsulare ogni passaggio in un unico metodo e eseguirli uno dopo l'altro? Quali schemi di progettazione possono essere utilizzati per scrivere buoni programmi che possono essere facilmente riutilizzati come API?