Articles of arquitetura

AngularJS: Entendendo o padrão de design

No contexto deste post por Igor Minar, líder de AngularJS: MVC vs MVVM vs MVP . Que tópico controverso é que muitos desenvolvedores podem passar horas e horas debatendo e discutindo. Durante vários anos o AngularJS estava mais próximo do MVC (ou melhor, uma de suas variantes do lado cliente), mas com o tempo e […]

Seleção de tipo de injeção de dependência

Recentemente eu tenho um problema onde eu tenho que selecionar um tipo baseado em um parâmetro. Por exemplo: uma class usada para enviar notifications que devem selecionar o canal certo (email, sms, …) com base em um parâmetro de input. Eu pareço algo assim: public class NotificationManager { IEmail _email; ISms _sms; public NotificationManager (IEmail […]

Devo resumir a estrutura de validação da camada de domínio?

Estou usando o FluentValidation para validar minhas operações de serviço. Meu código parece: using FluentValidation; IUserService { void Add(User user); } UserService : IUserService { public void Add(User user) { new UserValidator().ValidateAndThrow(user); userRepository.Save(user); } } UserValidator implementa FluentValidation.AbstractValidator. DDD diz que a camada de domínio tem que ser independente de tecnologia. O que estou fazendo […]

WPF MVVM Por que usar modos de exibição ContentTool + DataTemplate em vez de simples exibições de janela XAML?

Eu tenho uma pergunta sobre o MVVM no WPF que está me deixando louco. Por que fazer algo assim? MainWindow.xaml: Tenha seu ExampleView.xaml configurado como: E crie a janela assim: public partial class App : Application { protected override void OnStartup(StartupEventArgs e) { base.OnStartup(e); MainWindow app = new MainWindow(); ExampleVM context = new ExampleVM(); app.DataContext […]

Singleton por esclarecimento de Jon Skeet

public sealed class Singleton { Singleton() {} public static Singleton Instance { get { return Nested.instance; } } class Nested { // Explicit static constructor to tell C# compiler // not to mark type as beforefieldinit static Nested() {} internal static readonly Singleton instance = new Singleton(); } } Desejo implementar o padrão Singleton de […]

Aplicação de página única: vantagens e desvantagens

Eu li sobre SPA e vantagens. Acho que a maioria deles não é convincente. Existem 3 vantagens que despertam minhas dúvidas. Pergunta: Você pode agir como defensor do SPA e provar que estou errado sobre as três primeiras afirmações? === ADVANTAGES === 1. O SPA é extremamente bom para sites muito responsivos: A renderização do […]

Práticas recomendadas comumente aceitas em torno da organização de código em JavaScript

À medida que os frameworks JavaScript como o jQuery tornam os aplicativos da Web do lado do cliente mais ricos e funcionais, comecei a notar um problema … Como no mundo você mantém isso organizado? Coloque todos os seus manipuladores em um ponto e escreva funções para todos os events? Criar function / classs para […]

Servicestack – arquitetura e reutilização de POCOs para tudo

Refiro-me ao uso de reg do POCOs na documentação do ServiceStack: Como ele promove código limpo e reutilizável, o ServiceStack sempre incentivou o uso de POCOs com código em primeiro lugar para quase tudo. ou seja, o mesmo POCO pode ser usado: Em Solicitação e Resposta DTO’s (no cliente e no servidor) Em serializadores de […]

Detectando tempo de compilation da arquitetura da CPU

Qual é a maneira mais confiável de descobrir a arquitetura da CPU ao compilar o código C ou C ++? Tanto quanto eu posso dizer, diferentes compiladores têm seu próprio conjunto de definições de pré-processador não padrão ( _M_X86 em MSVS, __i386__ , __arm__ no GCC, etc). Existe uma maneira padrão de detectar a arquitetura […]

O que é arquitetura N-Tier?

Recentemente, vi algumas postagens de trabalho de desenvolvedor que incluem uma frase que se lê mais ou menos assim: “Deve ter experiência com a arquitetura N-Tier” ou “Deve ser capaz de desenvolver aplicativos N-Tier”. Isso me leva a perguntar: o que é arquitetura N-Tier? Como alguém ganha experiência com isso?