Desenvolvimento Front-End emEscala GlobalBerg BrandtFront-End Engineer - Yahoo!
PrefácioQualopapel do Front-End Engineer?“…éoprofissionalcapaz de exploraro front-end de umaaplicação web nãosócomo layout, mascomo interface móvel, mutante, interativa, proporcionando, assim, umaexperiência de usomaisrica…”
IntroduçãoDo Local ao Global,do Global ao Local “Diversidade”
Site 2(Partner)Site 3(Partner)Site 1(Partner)Site 1Site 2Site 3en-USen-USen-USen-USen-USen-USpt-BRpt-BRpt-BRpt-BRpt-BRpt-BRen-CAen-CAen-CAen-CAen-CAen-CAfr-CAfr-CAfr-CAfr-CAfr-CAfr-CA
Do Local...VárioscodebasesDuplicação de esforçosMáximacustomizaçãoecontrolelocalmenteIncompatibilidadeeinconsitênciaAlto custo de produçãoemanutençãoen-USpt-BRen-CAfr-CA
... ao GlobalCore FrameworkSite 1Site 2CodebaseúnicoPadronizaçãoReusoCusto de produçãoemanutençãootimizadosCiclo de desenvolvimentoelançamentomaiseficientesen-USen-USpt-BRpt-BRen-CAen-CAfr-CAfr-CA
Do Global ao LocalSite 1 -pt-BRCustomizadoparao marketConteúdorelevantelocalmenteAdaptadoao localeLocal contentLocalizaçãoInternacionalizaçãoCustomização
LocalizaçãoeInternacionalização“Fight Mojibake”
ApplicationLocalizaçãoeInternacionalizaçãoLocalização (L10n): adaptação de um sistemapara um certo "locale".Internacionalização (i18n): capacidade de um sistema de suportardiversos "locales".L10n e i18n sãocomplementaresGlobalização: g11n = L10n + i18nen-USpt-BRen-CAfr-CA
LocalizaçãoeInternacionalizaçãoO processo de g11n podeincluir:língua: incluindo "character enconding" e "direction" (LTR e RTL).Formato de data e tempo: incluindodiferentescalendáriosefusoshorários.Formatações dos númerosPesos emedidasNúmeros de documentosgovernamentais(CPF, RG, etc.)MoedaEtc...
Padronização, ModularizaçãoeReuso“Nãoresolvaomesmoproblema de formasdiferentes”
PadronizaçãoEstratégiamultidisciplinarProdutoDesignEngenhariaEstratégia de padronização global multidisciplinarDesign Integrity vs. Pixel PerfectNormalização: consistêncianasespecificaçõesDefinição de padrões de código: HTML, CSS, JavaScript, etc..Documentação, colaboraçãoeatualização
ModularizaçãoSnippetsSnippetsSnippetsSnippetsModuleModulePageSiteFoco no desenvolvimento de blocosSnippets: hd, bd, ft, Listas, Abas, Dialogs, ButtonsMódulos: Data + HTML + CSS + JSPáginas: agrupamento de módulosSites: agrupamento de páginas
ReusoMódulosagnósticospermitindoreusoemdiferentes sitesSnippets intercambiáveis: partes do códigopodem ser reusados de um móduloparaoutroFramework de CSS emcamadas: comum, snippets, modules, site, skin, etcComponentização do JS em YUI3 modules
GerenciamentoeIntegração“Tudojuntoemisturado”
GerenciamentoPlataformaúnicaparaservirdiferentesexperiências:RoutingeDevice DetectionSearch Engine Optimization (SEO)Configuração: site, language, region, etc. Assembly (Montagem): páginas, módulos, data, etc.Assets: Imagens ,CSS, JavaScriptCache e performance
RequestRoutingConfigurationAssemblyResponseDomainPathSiteLanguageRegionUADeviceFlavorPageModulesDataOthersAssetsCaching
IntegraçãoSCM: Source Code Management (Subversion)CI (continuous integration): check-ins constantesDesenvolvedoresemdiferenteslocaisefusoshoráriosModelo de desenvolvimentocolaborativobemdefinidoRotina de testes unitários a cadabuildCiclo de releasesmaisrápidos
PrólogoYahoo! News“Change occurs because there’s a gap between what is and what should be” (Craig McCaw)
Primeiroprojeto de Media no framework global
Lançamentoinicialem 5 markets: Brasil, Canadá (inglêsefrancês), ÍndiaeEstadosUnidosPerguntas?
Obrigado!Berg Brandtwww.bergbrandt.comblog.bergbrandt.comtwitter.com/bergbrandt

Desenvolvimento Front-End em Escala Global