[Notes2-team] O modelo de desenvolvimento do Notes...
Brought to you by:
andersonrb
From: Anderson B. <no...@ig...> - 2003-07-03 00:46:17
|
*Os 3 modelos...* Ol=E1 pessoal. Nos =FAltimos e-mails uma discuss=E3o muito importante vem= =20 tomando corpo e acho que chegou a hora de incluirmos todos (n=E3o apenas=20 os desenvolvedores) nela para que possamos tomar uma decis=E3o e seguirmo= s=20 em frente. A discuss=E3o =E9 sobre qual modelo de desenvolvimento vamos utilizar.=20 Apesar de parecer algo para programador, na verdade n=E3o =E9 - o modelo=20 escolhido traz conseq=FC=EAncias para todo o futuro do Notes e, portanto,= =20 conseq=FC=EAncias para o planejamento que temos discutido. Pelos e-mails = que=20 chegaram, temos 3 modelos diferentes e teremos que escolher um deles.=20 Vou tentar explic=E1-los a seguir do modo que sei. Por favor, leiam e me=20 corrijam onde for quiserem. /*1) Dois c=F3digos fonte:*/ um exemplo deste modelo =E9 o M$ Office. Doi= s=20 c=F3digos fontes diferentes s=E3o mantidos e quando capacidades novas s=E3= o=20 implementadas em um precisam ser depois traduzidas para o outro fonte.=20 Os dois fontes possuem alguma semelhan=E7a, mas tamb=E9m muitas diferen=E7= as,=20 pois cada um deles segue as APIs e padr=F5es espec=EDficos de cada sistem= a=20 operacional. O M$ Office no windows =E9 totalmente integrado ao Windows=20 por causa disto. O M$ Office do Mac tamb=E9m =E9 bastante integrado ao=20 sistema operacional. Por um lado a forte integra=E7=E3o aos sistemas=20 operacionais diminu=ED a curva de aprendizado para pessoas acostumadas co= m=20 aquele sistema operacional e, algumas vezes, traz algum aumento de=20 performance. Por outro lado, usu=E1rios que usam o programa nos dois=20 sistemas operacionais ter=E3o que reaprender algumas coisas do programa,=20 j=E1 que ele n=E3o =E9 igual nos dois sistemas operacionais. Al=E9m disso= , como=20 isto leva a desenvolver quase dois programas ao mesmo tempo, o=20 desenvolvimento acaba sendo demorado e laboroso. Eu vejo este modelo=20 sendo muito adotado por empresas como M$, Qualcom, Macromedia e Adobe=20 (se bem que estas duas =FAltimas n=E3o integram seus produtos tanto ao OS= ,=20 preferindo manter muitas semelhan=E7as entre as vers=F5es para Mac e Win = de=20 seus produtos). Por causa de todo o trabalho a mais que este modelo de=20 desenvolvimento gera as empresas mant=E9m duas equipes distintas de=20 desenvolvimento - uma para cada c=F3digo fonte. Outro por=E9m deste model= o =E9=20 que as vers=F5es costumam ter datas de lan=E7amento bastante diferentes -= =E9=20 normal que o produto para Mac esteja na vers=E3o 2.1 e que a vers=E3o par= a=20 windows j=E1 esteja na vers=E3o 3 ou vice-versa. No nosso caso este model= o=20 nos daria uma vantagem a mais: n=E3o precisar=EDamos distribuir a QT no=20 windows (o que significa 2 ou 3 Mbs a menos). /*2) IFDEFs:*/ este modelo tamb=E9m traria para n=F3s a vantagem de n=E3o= =20 precisar distribuir a biblioteca QT. Na realidade ele n=E3o chega a ser=20 t=E3o diferete do modelo 1: usa-se apenas um c=F3digo fonte, pois atrav=E9= s=20 dos famosos ifdefs (*IDEF =E9 uma instru=E7=E3o que permite que voc=EA us= e um=20 peda=E7o do fonte ou outro dependendo de certas condi=E7=F5es podendo ass= im,=20 por exemplo, usar certo trecho de c=F3digo no linux e outro diferente no=20 windows*) os trechos espec=EDficos para cada sistema operacional podem=20 ficar juntos. Este modelo n=E3o =E9 t=E3o trabalhoso quanto o anterior, m= as=20 por causa da grande quantidade de ifdefs no c=F3digo este acaba ficando=20 menos claro. Mas com algumas pol=EDticas de desenvolvimento os ifdefs=20 podem ser "escondidos" e a clareza do co"digo pode ser mantida em boa=20 parte do fonte. Parece um bom modelo. Mas no nosto caso espec=EDfico ele=20 tem um problema - por causa de certas diferen=E7as entre o linux e o=20 windows (na realidade entre a CLX e a VCL, para quem programa em Delphi)=20 n=E3o teremos como implementar temas e skins do modo como vinhamos=20 pensando. (At=E9 existe uma forma, mas ter=EDamos que usar algo do modelo= 1,=20 parte do fonte teria que ser espec=EDfico para cada plataforma.) Temos qu= e=20 pesar ent=E3o o qu=E3o importante =E9 para n=F3s a interface do Notes ser= =20 configur=E1vel. *3) Bibliotecas cross-plataforma: *voc=EAs conhecem esta solu=E7=E3o de=20 softwares abertos como OpenOffice e Mozilla. =C9 a que eu tenho visto ser= =20 empregada nos softwares livres mais novos. =C0s vezes penso que o Java da= =20 Sun e o .Net da M$ derivaram suas id=E9ias deste modelo. A id=E9ia aqui =E9= =20 basear toda a constru=E7=E3o do software em bibliotecas que sejam=20 multiplataforma ao inv=E9s de usar as APIs providas pelo sistema=20 operacional. Na verdade, este modelo deixa o trabalho de adaptar-se as=20 APIs dos sistemas operacionais para as bibliotecas. Como o trabalho=20 chato fica com os desenvolvedores da biblioteca esta me parece ser a=20 forma mais r=E1pida e menos trabalhosa de desenvolver um aplicativo=20 multiplataforma. Claro que h=E1 alguns problemas: A. voc=EA deve distribu= ir=20 as bibliotecas junto com o software. No nosso caso isto significa que=20 ter=EDamos que distribuir a QT no windows (no linux sempre teremos que=20 distribu=ED-la). B. se a biblioteca tiver alguma falha em algum dos=20 sistemas operacionais o desenvolvedor depende do desenvolvedor da=20 biblioteca para corrigir o erro (no nosso caso =E9 assim, mas o mozilla p= .=20 ex. n=E3o sofre deste problema por desenvolver as suas pr=F3prias=20 bibliotecas) C. os desenvolvedores, normalmente acostumados com as APIs=20 de algum sistema operacional precisam aprender as APIs da biblioteca=20 (n=E3o =E9 o nosso caso, j=E1 que a Borland fez as APIs ficarem na maior = parte=20 das vezes iguais a que usamos no windows ou disponibilizou alguma forma=20 do reaprendizdo n=E3o ser necess=E1rio). No nosso caso acho que este =E9 = o=20 modelo que permitiria o desenvolvimento mais acelerado e tamb=E9m a=20 interface mais customiz=E1vel. Por outro lado, os controles da QT tem=20 algumas diferen=E7as dos controles do windows - o que pode causar alguma=20 estranhesa em algum usu=E1rio, por mais que todos os controles sejam=20 f=E1ceis de usar. S=E3o estes os tr=EAs modelos e os pr=F3s e contras que conhe=E7o deles. = Qual=20 voc=EAs acham que devemos usar? Aguardo os argumentos de voc=EAs! Anderson --=20 Anderson R. Barbieri --------------------- Coordenador do Projeto Notes - Notepad Replacement http://notes.codigolivre.org.br * no...@ig... |