Você está na página 1de 3

23/01/2015

QualadiferenadeAPI,bibliotecaeFramework?StackOverflowemPortugus

Sparacomplementar,ajudarouconfundirumpoucomais:)eserligeiramentedissonante.ostermos
podemserdefinidosdiferentementedependendodocontexto.
FuiolharadefinioencontradanaWikipediaeminglsparaostermosAPI,LibraryeFramework."S
paravariar"umadefiniomelhor.

API
LficaclaroqueumaAPIumconceitomaisabstratoquedefineformasdeexecutarumatarefa
especfica.amaneiraqueoseucdigoserelacionacomumabiblioteca.Algumasrespostaspassam
aimpresso(nonecessariamenteafirmam)queAPIparaacessarserviosexternosaaplicao,e
frequentementeistoverdade.Seistofossesempreverdadeiro,comomanipularumastringnoseria
umaAPI.
DeumacertaformapodemosdizerqueaAPIadocumentaoquedeterminacomoum
programadorpoderealizarumatarefaatravsdeumabiblioteca.Claroquenohumarelao
obrigatriacomadocumentao.possvelterumaAPI(porca)semdocumentao.Ea
documentaoefetivadeumabibliotecaserprximamasnonecessariamenteigualaAPI.AAPI
umconjuntoderegraspararealizarumatarefa.Elatratadecomportamentos.
UmaAPIcostumaserestvel,especialmentequandoeladelivreusopublicamente.Apesarde
incomumelapodeterpartesdocumentadascomoinstveis(mutveis),oqueexigemuitocuidadono
seuuso.
EmalgunscasosumaAPIpodedocumentaralgunsdetalhesdecomodeveseraimplementaopara
garantirquealgunsobjetivossejamalcanados.

Biblioteca
AbibliotecanormalmenteumaimplementaorealdasregrasdeumaAPI.Portantoelamais
concreta.AssimcomoaAPI,vocnoprecisasaberosdetalhesdaimplementaoparausla.A
bibliotecaprecisarespeitarasregrasdaAPIsempremasnoprecisatersuaimplementaoestvel.A
bibliotecacostumaserautosuficiente.
UmabibliotecapodeconterimplementaespblicasquenofazempartedaAPI.Uslaspodem
trazerrisco.
Vocchamaumabiblioteca.umaferramenta.Vocusaoqueprecisa.
Atomomentonenhumarespostatratoudotermobibliotecacomoformadeorganizaodecdigos
binriosparaousocomaplicaes.Umabibliotecatambmumarquivoexecutvelcomumconjunto
defunesparaexecutardiversastarefas. .dll ou .so soarquivosdebibliotecaparaligao
dinmicanaaplicao. .lib ou .a soarquivosdebibliotecaparaligaoestticanaaplicao.
Vocpodeterumabibliotecadestrings,deexpressesregulares,decoleesdedados,de
manipulaodearquivos,acessoaumbancodedados,manipulaodeimagens,etc.

Framework
Umframeworknormalmenteumconjuntodebibliotecasparaconseguirexecutarumaoperao
maior.comumumframeworkencapsularoscomportamentosdaAPIemimplementaesmais
complexaspermitindooseuusodeformamaisflexvel,frequentementeatravsdeextenses,
configuraeseinversesdecontrole.ComopodeserconsideradaumacamadaemcimadaAPI
eventualmentepodesimplificlaemcertosentido.Elecostumadarconsistnciaaumconjuntode
bibliotecas(penaqueaconteceoopostoemalgunscasos).

data:text/htmlcharset=utf8,%3Cdiv%20class%3D%22posttext%22%20itemprop%3D%22text%22%20style%3D%22margin%3A%200px%205px%205px

1/3

23/01/2015

QualadiferenadeAPI,bibliotecaeFramework?StackOverflowemPortugus

Oframeworkcostuma"tomarconta"dasuaaplicaodeixando"portas"paravocacessaroque
importanteparaoseuobjetivo.comumterumagrandeinterdependnciaentreseuscomponentes.
Porestasduasrazes,oframeworkpodesetornarumfardoquandoelenobemfeito,no
adequadoaoqueoprogramadorprecisaouquandooprogramadornosabebemcomouslo.
Umframeworkchamavoc.umestilodevida.Seuprojetosecomprometecomele.
Frameworkspodemserentendidoscomoplataformasdedesenvolvimento.Elespossuemlacunasque
devemserpreenchidaspeloprogramadorparafuncionarconformesuanecessidade.Podeservisto
comoumesqueletodeumaaplicao.Frequentementesoconfundidos,deformacertaouerrada,
comoumconjuntodeclasses.
Algumasvezesotermousadoparadeterminarumconjuntosdearquivosdebibliotecasdecdigos
binrios,oufontesouatoutrosrecursosparaaaplicaoquesorelacionados.
ExemplossoossistemasdeGUI,deoperaesweb,algunsORMs,umconjuntodebibliotecas
padrodeumalinguagemdeprogramao,implementaodeumpadroMVC,etc.
Algumasvezesumabibliotecaousetornatocomplexaqueacabavirandoumframework.Seisto
bomouruimdeixoparavocdecidir.

ToolkitseSDKs
Vocnoperguntoumasaindapodeterostoolkitsquepodemserconfundidoscomframeworksmas
funcionamdeformamaislivre,elessomaiscomobibliotecasfuncionandoemconjuntomasdeuma
maneiratradicionalondevocchamaoqueprecisa.
ExistemaindaosSDKs.SoftwareDevelopmentKitspodemassumiraformadedetoolkitsou
deframeworksefornecemtudooqueprecisaparaprogramaremcimadeumaplataforma(sistema
operacional,bancodedados,aplicao,etc.).Esteskitscostumamenglobarferramentasadicionais
almdasbibliotecasalmdedocumentaoeexemplosdecdigosqueajudamausarabiblioteca
adequadamente.

Concluso
Namaiorpartedostempoostermospodemserintercambiveissemcausargrandeproblema.Todo
mundoentendeessastrscoisascomoumconjuntodecdigosprontosparaalcanaralgumobjetivo
(mesmoquenosejaexatamentebemistoemnostrscasos).
Masquandovocestdefinindoalgomaisformal,quandoexplicaparaalgumdetalhesdeumprojeto,
data:text/htmlcharset=utf8,%3Cdiv%20class%3D%22posttext%22%20itemprop%3D%22text%22%20style%3D%22margin%3A%200px%205px%205px

2/3

23/01/2015

QualadiferenadeAPI,bibliotecaeFramework?StackOverflowemPortugus

melhorusarostermoscorretosparadarmelhorentendimento.Claroqueseointerlocutornosabe
ostermoscorretos,aconversaficatruncadadequalquerjeito.Avocmandaosujeitoviraquileristo
:)
AlgumasdefinieseimagenseutireidestasrespostasnoSO.
compartilhar

melhorarestaresposta

editada2/06/14s11:46

respondida29/05/14s16:13

bigown
35.2k 3 72 173

data:text/htmlcharset=utf8,%3Cdiv%20class%3D%22posttext%22%20itemprop%3D%22text%22%20style%3D%22margin%3A%200px%205px%205px

3/3