Na DrupalCon San Francisco 2010, que acontecerá nos próximos dias 19,20 e 21, dentre diversas sessões interessantes, essa chama a atenção para quem quer conhecer mais sobre como se aproveitar dos outros módulos e suas APIs: "20 APIs Every Drupal Developer Should Know"(http://sf2010.drupal.org/conference/sessions/20-apis-every-drupal-developer-should-know).
O palestrante está aproveitando e lançando um post por dia no blog dele, com exemplos de cada uma dessas APIs. Quem quiser pode acompanhar em http://www.trellon.com/category/blog-tags/20-apis-20-days
Para quem não sabe o que é uma API, segue via Wikipedia(http://pt.wikipedia.org/wiki/API):
"API, de Application Programming Interface (ou Interface de Programação de Aplicativos) é um conjunto de rotinas e padrões estabelecidos por um software para a utilização das suas funcionalidades por programas aplicativos que não querem envolver-se em detalhes da implementação do software, mas apenas usar seus serviços."
Exemplo simples: com a API do Google Maps(http://code.google.com/apis/maps/), você diz "me dê o mapa centralizado nas coordenadas X e Y" e ele te retorna o mapa pronto, não importando a você de onde vieram as imagens, quais lógicas ele precisou para gerar aquilo ali, etc. Você só queria o mapa, não é mesmo?
Com as APIs, você foca no que realmente é importante para você: "o seu problema real". Para que recriar a roda, se tem uma roda prontinha ali do seu lado, bastando você pedir a ela que gire?
No mundo do Drupal, isso se refere muito à forma de trabalhar com módulos também, pois cada módulo pode fornecer APIs para que outros módulos as usem, sem precisarem se preocupar com sua lógica de implementação.
Além da vantagem técnica de se aproveitar de algo já pronto, existe uma vantagem maior, que é tanto técnica quanto gerencial, que é o fato de cada módulo ter "vida própria"(cada módulo tem uma comunidade em torno dele, que já cuida de seu desenvolvimento, mesmo que você não faça nada), então você não precisa se preocupar em ficar desenvolvendo todas as peças.
Essa sessão e série de posts que indiquei aqui falarão sobre:
- CCK
- Ctools
- Views
- Preprocessing / Theme layer
- Hooks (creating your own)
- Relationships
- Activity
- Feeds
- Services API
- Workflow
- Node API
- Forms API
- Triggers and Actions
- Messaging / Notifications
- WYSIWYG
- ApacheSolr
- Voting API
- Domain Access
- Token
- Organic Groups