Though I have limited knowledge on Abap Proxy and IDOC and better way can be explained by an Abaper as there are different different scenarios where Proxy and IDOC fits in. With both Proxy and IDOC you would either be dealing with SAP PI or any other middle-ware. The main difference is once you send an IDOC to a receiver, receiver can process it using the processing functions, however there is not associated any such functions with Proxy. Thus once you receive the IDOC at SAP PI/Middle-ware you can process it further. However processing the Proxy might again require some more coding.
Hope that helps!!