Engenharia de software

Perguntas e respostas para profissionais, acadêmicos e estudantes que trabalham no ciclo de vida de desenvolvimento de sistemas

1
O que o Google quer dizer aqui quando dizem "não copie e cole este código"?
Aqui está um trecho do código da API recaptcha do Google ( https://www.google.com/recaptcha/api.js ): /* PLEASE DO NOT COPY AND PASTE THIS CODE. */ (function() { if (!window['___grecaptcha_cfg']) { window['___grecaptcha_cfg'] = {}; }; if (!window['___grecaptcha_cfg']['render']) { window['___grecaptcha_cfg']['render'] = 'onload'; }; window['__google_recaptcha_client'] = true; var po = document.createElement('script'); po.type = 'text/javascript'; …

5
Herança vs propriedade adicional com valor nulo
Para classes com campos opcionais, é melhor usar herança ou uma propriedade anulável? Considere este exemplo: class Book { private String name; } class BookWithColor extends Book { private String color; } ou class Book { private String name; private String color; //when this is null then it is "Book" …
12 java  inheritance  class  null 


2
Devo ser permissivo de parâmetros desconhecidos?
Estou projetando uma API RESTful e enfrentando o problema do título, atualizado para maior clareza: Devo falhar rapidamente se um cliente enviar um parâmetro não reconhecido? Por exemplo, http://example.com/api/foo?bar=true&paula=bean Acima, baré um parâmetro válido, mas paulanão é especificado pela API. Eu devo Avise o cliente do erro Falhar rápido Ignore …
12 rest  api-design 



3
É melhor proteger a chamada do método ou o próprio método?
Estou escrevendo um aplicativo e cheguei a este ponto: private void SomeMethod() { if (Settings.GiveApples) { GiveApples(); } if (Settings.GiveBananas) { GiveBananas(); } } private void GiveApples() { ... } private void GiveBananas() { ... } Isso parece bem direto. Existem algumas condições e, se forem verdadeiras, os métodos estão …

1
Muitas chamadas assíncronas versus uma única chamada para a API
Estamos desenvolvendo uma API REST que, entre outras, será consumida por um front-end HTML5 via javascript. O aplicativo é para uso dentro da organização e geralmente possui cerca de 300 usuários, mas queremos escalar bem até 1000 usuários. Normalmente, as conexões com a API serão feitas na LAN, para que …
12 rest  api  ajax 

1
Manter API vs. usar expressões idiomáticas em uma porta
Estou trabalhando em uma porta do Python para o Rust e encontrei um código que não pode ser expresso tão naturalmente no Rust quanto no Python. Um caso disso é usar parâmetros padrão: class Foo: def __init__(self, a="Hello"): self._a = a No Rust, você pode implementar isso usando um construtor: …

2
Por que a subtipagem comportamental é indecidível?
O trabalho de Liskov nessa área enfocou a subtipagem comportamental, que além da segurança do sistema de tipos discutida neste artigo também exige que os subtipos preservem todos os invariantes garantidos pelos supertipos em algum contrato. [3] Essa definição de subtipagem geralmente é indecidível, portanto, não pode ser verificada por …


2
Implantação contínua com gitignore
Ao fazer uma implantação contínua com o Git, como você lida com arquivos ignorados no gitignore? Esses arquivos são ignorados por motivos de privacidade (ou seja, não os querem enviados para outros repositórios remotos, como o GitHub), mas com esses arquivos ignorados não sendo enviados para o repositório de implantação …




Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.