Я читал кое-что о том, как хорошо спроектировать библиотеку или API, и наткнулся на замечательный доклад Джошуа Блоха на Google Tech Talks. Теперь, хотя я и не нахожусь рядом с профессиональным разработчиком API, я думаю, что программирование множества классов / функций - это схожая, хотя и сильно уменьшенная версия одного и того же: четкое разделение действий, простота и приятное использование, поощрение чистого кода и т. д.
Я просматривал какой-то широко используемый Java-код с открытым исходным кодом и получил эту идею (ничего нового, но просто ясно изложил это ...)
Давайте возьмем пример псевдокод (или возможно некоторый диалект бейсика):
1. new label
2. set name 'hello world'
3. set color 'blue'
4. show 'topmost'
5. on click hide
Теперь, вдохновленный Java-кодом, я бы хотел иметь возможность что-то , например:
1. Label l = new Label()
2. .setName('Hello World')
3. .setColor('blue')
4. .show(zindex.top);
5. l.onClick = l.hide() ;
У меня такой вопрос:
Кто-нибудь еще разрабатывает API, начиная с псевдокода, как этот?
Это хорошая идея для чего-то маленького? Скажем, до 10 классов, в каждом из которых может быть по 10 методов, каждый из которых содержит не более 5-6 строк кода. Это, очевидно, просто приблизительный набор цифр, показывающий размер разрабатываемых классов - нигде не близкий к полноценному API, а не просто хобби-проект - профессиональный пакет, который делает что-то маленькое, но делает хорошо .
Кто-нибудь нашел какие-либо серьезные недостатки этого подхода?
Я думаю, что одно реальное преимущество состоит в том, что оно заставляет вас сначала записать сценарии использования .
Другое дело, что существительные и глаголы остаются простыми , что позволяет вашему конечному продукту увернуться от MultiPhraseAbstractParadigmDesignPatternImplementor синдром: -D