ufw allow ssh
This inserts rules that allow udp and tcp packets destined for port 22.
ufw allow 22/tcp
This inserts rules that allow just tcp packets destined for port 22
ufw allow ssh/tcp
This inserts rules that allow just tcp packets destined for port 22
When you provide the name of a service rather than a port number ufw looks the name up in /etc/services
and reads the port number from it. Ultimately
ufw allow ssh/tcp
gets translated into ... 22/tcp
and from there to iptables/netfilter.
The most restrictive are the ones that limit to service/protocol (obviously you can further restrict using source address(es) etc).
As to which is cleanest/best ... that's up to you some people will prefer service names and others port numbers.