На этот вопрос практически невозможно ответить. Это может даже не быть правильным вопросом для переполнения стека (Человек A: Как мне решить конкретную проблему? Человек B: Вот этот окончательный ответ).
1. Каковы лучшие практики и шаблоны, которым необходимо следовать при разработке API
О каком языке программирования мы говорим? О какой области проблемных областей идет речь? Потому что то, что работает для одного языка программирования / проблемной области, может не работать в другом языке программирования / проблемной области.
2.Как добиться наилучшего способа скрытия реализации (C ++ / Java)
На этот вопрос есть ответ, и писать здесь слишком долго. На самом деле, это так долго, что ссылки на сайт будет недостаточно. Существует множество веб-сайтов и книг, которые в совокупности ответят на этот вопрос. О, и я просто говорю о C ++. Повторите весь этот процесс для Java. И для C #, и для Python, и для .... (и т. Д.)
4.Любые справочники / ссылки, которые приводят наглядные примеры для начинающих
Выберите язык программирования. Тогда я могу предоставить ссылки на книги и ссылки. Как писал Фред Брукс, серебряной пули нет. Нет единого менталитета, который вы можете перенести с языка программирования на язык программирования. То, что делает хороший API на одном языке программирования, было бы ошибкой проектирования на другом языке программирования. Поверьте мне, я усвоил это с трудом, пытаясь применить идиомы C ++, Delphi и Java к этим языкам. Это приводит к плохим API и плохому коду.
Существуют также конкурирующие школы в разработке API. И, к сожалению, реальность такова, что никто не на 100% прав. На самом деле, вы становитесь отличным дизайнером API, когда знаете несколько направлений мысли и знаете, когда применять конкретную точку зрения к конкретной проблеме.