投稿時間:2023-05-22 09:15:02 RSSフィード2023-05-22 09:00 分まとめ(16件)

カテゴリー等 サイト名等 記事タイトル・トレンドワード等 リンクURL 頻出ワード・要約等/検索ボリューム 登録日
IT ITmedia 総合記事一覧 [ITmedia ビジネスオンライン] 大塚「おにぎり ぼんご」はなぜ人気なのか 休日は6時間待ち https://www.itmedia.co.jp/business/articles/2305/22/news068.html itmedia 2023-05-22 08:44:00
TECH Techable(テッカブル) Sassorら、家庭用蓄電池システムの実証を実施。分散型エネルギーリソースのさらなる活用へ https://techable.jp/archives/206494 evergen 2023-05-21 23:00:20
js JavaScriptタグが付けられた新着投稿 - Qiita HTMLで電卓作ってみた https://qiita.com/Atsu1209jp/items/dbca022c27a62c4ce01c python 2023-05-22 08:57:04
技術ブログ Developers.IO AI & Big Data Expo North America に参加しました。Day2 https://dev.classmethod.jp/articles/ai-big-data-expo-north-america-day2/ aibigdataexponort 2023-05-21 23:38:34
技術ブログ Developers.IO AI & Big Data Expo North America に参加しました。Day1 https://dev.classmethod.jp/articles/ai-big-data-expo-north-america-day1/ aibigdataexponorthamer 2023-05-21 23:36:25
海外TECH DEV Community SOLID explicado com TypeScript https://dev.to/guiseek/solid-27jn SOLID explicado com TypeScriptAlguns princípios foram criados para ajudar pessoas desenvolvedoras a criar sistemas que sejam fáceis de entender manter e evoluir ao longo do tempo PrincípiosSingle Responsibility Principle ou Princípio da Responsabilidade Única diz que uma classe deve ter apenas uma única responsabilidade e assim um único motivo para mudar Open Closed Principle ou Princípio do Aberto Fechado diz que uma classe deve estar aberta para novos cenários mas fechada para modificação Liskov Substitution Principle ou Princípio da Substituição de Liskov diz que os objetos de uma classe derivada devem ser substituíveis por objetos de sua classe base sem alterar o comportamento do software Interface Segregation Principle ou Princípio da Segregação de Interface diz que interfaces devem ser separadas para que classes possam depender apenas dos métodos que utilizam Dependency Inversion Principle ou Princípio da Inversão de Dependência diz que módulos de alto nível não devem depender de módulos de baixo nível Ambos devem depender de abstrações Ao seguir esses princípios conseguimos criar sistemas mais flexíveis robustos e fáceis de manter alterar e evoluir ao longo do tempo Vamos mergulhar um pouco mais fundo Single Responsibility Principle ou Princípio da Responsabilidade ÚnicaTer uma responsabilidade única significa que uma classe deve ter apenas um motivo para mudar Se uma classe tiver mais de uma responsabilidade mudanças em uma responsabilidade podem afetar outras responsabilidades o que pode levar a um código mais complexo e difícil de manter Darei um exemplo mais claro sobre o que podem ser consideradas responsabilidades diferentes Suponha que tenhamos uma classe chamada User que éresponsável tanto pela autenticação do usuário quanto pelo envio de notificações por e mail abstract class User abstract login email string password string void abstract sendCode email string code string void Ela possui responsabilidades diferentes e não segue o princípo SRP Podemos dividir as responsabilidades em duas classes diferentes abstract class Auth abstract login email string password string void abstract class Email abstract send email string message string void Assim caso haja uma mudança em uma das responsabilidades a outra não seráafetada o código estarámais organizado fácil de entender testar e manter O que facilita sua reutilização pois as classes que têm apenas uma responsabilidade podem ser usadas em diferentes partes Open Closed Principle ou Princípio do Aberto FechadoUma classe deve permitir ser estendida para atender a novos requisitos sem necessidade de alteração ou seja deve permitir adicionar novas funcionalidades usando herança sem afetar o comportamento existente Por exemplo temos uma classe abstrata contendo alguns métodos básicos para comunicação com alguma fonte de dados abstract class Repository lt T K extends keyof T gt abstract findAll T abstract findOne key T K T abstract create entity Omit lt T K gt void abstract update key T K entity Partial lt T gt void abstract remove key T K void Então criamos uma abstração específica com um método contextual sem alterar Repository abstract class UserRepository extends Repository lt User id gt abstract findOneByEmail email string User Para seguir o OCP a classe deve depender de abstrações em vez de implementações concretas Isso significa que a classe deve depender de interfaces ou classes abstratas em vez de depender diretamente de classes concretas As extensões podem ser adicionadas por meio da criação de novas implementações de interfaces ou classes abstratas sem afetar o existente Liskov Substitution Principle ou Princípio da Substituição de LiskovUma classe derivada deve ser capaz de substituir sua classe base sem introduzir erros ou comportamentos inesperados Classes derivadas devem manter a mesma semântica que suas classes base ou seja implementações devem cumprir os mesmos contratos definidos em suas abstrações Caso uma subclasse não possa cumprir essas condições ela não deve ser considerada apta de implementação da classe base Por exemplo criamos um caso de uso para autenticação class SignInUseCase constructor private repository AuthRepository execute credential UserCredential return this repository signIn credential Em seguida criamos uma abstração que seráo contrato para garantir que a classe concreta de AuthRepository cumpra o acordo de implementação para o método signIn abstract class AuthRepository abstract signIn value UserCredential Observable lt AuthResponse gt Agora podemos criar implementações diferentes para AuthRepository que cumpram o contrato recebendo UserCredential e retornando Observable lt AuthResponse gt Como uma implementação que envia uma requisição HTTP class AuthHttpRepositoryImpl implements AuthRepository constructor private http HttpClient signIn value UserCredential return this http post lt AuthResponse gt api auth value E outra como stub usada apenas durante a execução de testes automatizados class AuthStubRepositoryImpl implements AuthRepository signIn value UserCredential return of accessToken eyJhbGciOiJIUzINiIsInRcCIIkpXVCJ eyJcVybm Então se uma classe A depende da classe base B então uma classe derivada C de B deve ser capaz de ser usada como B sem afetar o software A SignInUseCaseB AuthRepositoryC AuthMockRepositoryImpl e AuthMockRepositoryImplAssim o código se torna mais flexível e escalável pois novas classes derivadas podem ser adicionadas sem efeitos colaterais indesejados além de ajudar na prevenção de bugs pois classes derivadas devem ser testadas com relação aos contratos definidos nas classes base Princípio da Segregação de InterfaceUma classe deve ter interfaces específicas para as suas funcionalidades em vez de depender de uma única interface que contenha todas as funcionalidades possíveis Por exemplo se uma classe precisa apenas de um método de leitura de dados ela deve implementar uma interface que contenha apenas esse método em vez de depender de uma interface que contenha também métodos de escrita e exclusão de dados abstract class UserRepository implements FindOneBy lt User gt abstract findOneBy lt K extends keyof User gt key K value User K Observable lt User gt O código se torna mais coeso e menos acoplado pois dependem apenas de interfaces que precisam pois temos interfaces mais granulares e específicas o que facilita a manutenção e reutilização de código O ISP incentiva a modularidade para que interfaces possam ser adicionadas para atender a novas funcionalidades sem afetar classes existentes Dependency Inversion Principle ou Princípio da Inversão de DependênciaUma classe de alto nível deve depender de uma interface ou classe abstrata ao invés de depender de uma classe concreta de baixo nível Um bom exemplo éa implementação que apresentei no Princípio da Substituição de Liskov em que a classe SignInUseCase depende de AuthRepository que éuma classe abstrata A substituição entre AuthHttpRepositoryImpl e AuthStubRepositoryImpl quando conveniente épossível utilizando a técnica de injeção de dependências Então em vez de uma classe de alto nível depender diretamente de uma classe de acesso a dados específica ela deve depender de uma abstração genérica que represente as funcionalidades que ela precisa Alguns frameworks trabalham desta forma por padrão como éo caso do Angular quando este não éo padrão do framework que utilizamos podemos usar alguma biblioteca como a Inversify ou tsyringe da Microsoft Assim o código se torna mais flexível e reutilizável pois os módulos de alto nível são desacoplados dos módulos de baixo nível Permitindo que diferentes implementações de baixo nível possam ser usadas com a mesma classe de alto nível sem afetar o código a classe Este princípio recomenda um design orientado a interfaces que éuma abordagem mais modular e escalável para o desenvolvimento de software Permitindo que equipes diferentes trabalhem sem que uma dependa diretamente do código da outra Comenta aqui se vocêgostaria de ler uma publicação mostrando como funciona esta técnica implementando o pattern dependency injection do zero 2023-05-21 23:16:30
Apple AppleInsider - Frontpage News How to build your own working Apple I replica computer https://appleinsider.com/articles/23/05/21/how-to-build-your-own-working-apple-i-replica-computer?utm_medium=rss How to build your own working Apple I replica computerRetro computing lets you get to grips with technology s history showing how far modern computers have come Here s how to build your own working Apple I replica Computers have come a long way since Apple first started in In those days when Steve Jobs and Steve Wozniak first put together the original Apple I computer kits everything was sourced and assembled by hand Apple was a tiny company based in Steve Jobs parents garage and Apple sold kit computers out of the garage Read more 2023-05-21 23:44:00
金融 ニッセイ基礎研究所 在職老齢年金(減額)の廃止は中小企業の人手不足対策になるか~年金改革ウォッチ 2023年5月号 https://www.nli-research.co.jp/topics_detail1/id=74822?site=nli 目次先月までの動きポイント解説中小企業における在職老齢年金の影響仕組み現役世代の保険料負担増を抑えるために、給与が高い高齢就労者の厚生年金を減額前回改革での議論廃止が提案されたが、高所得者優遇となることなどが考慮され、法案化されず中小企業での在職老齢年金中堅企業を中心に、年金の減額が発生している可能性nbsp年金改革ウォッチは年月より連載。 2023-05-22 08:43:37
ニュース BBC News - Home Greek election: Centre-right Mitsotakis hails big win but wants majority https://www.bbc.co.uk/news/world-europe-65666261?at_medium=RSS&at_campaign=KARANGA outright 2023-05-21 23:08:53
ニュース BBC News - Home Explaining the 'how' - the launch of BBC Verify https://www.bbc.co.uk/news/uk-65650822?at_medium=RSS&at_campaign=KARANGA evidence 2023-05-21 23:12:36
ニュース BBC News - Home US PGA Championship 2023: Brooks Koepka beats Scottie Scheffler and Viktor Hovland at Oak Hill https://www.bbc.co.uk/sport/golf/65666788?at_medium=RSS&at_campaign=KARANGA US PGA Championship Brooks Koepka beats Scottie Scheffler and Viktor Hovland at Oak HillA resurgent Brooks Koepka holds off Scottie Scheffler and Viktor Hovland to claim his third US PGA Championship title at Oak Hill 2023-05-21 23:28:37
ニュース BBC News - Home MOTD2 analysis: How Erling Haaland helped Manchester City win Premier League title https://www.bbc.co.uk/sport/av/football/65667595?at_medium=RSS&at_campaign=KARANGA MOTD analysis How Erling Haaland helped Manchester City win Premier League titleMatch of the Day pundits Ben Mee Jermaine Jenas and Micah Richards discuss Erling Haaland s outstanding impact on Manchester City s Premier League title win 2023-05-21 23:16:30
GCP Google Cloud Platform Japan 公式ブログ Routes API の一般提供を開始 https://cloud.google.com/blog/ja/products/maps-platform/routes-api-now-generally-available/ GoogleCloudパートナー、株式会社ゴーガ代表取締役今関雄人氏RoutesAPIの一般提供の開始後も、既存のDirectionsAPIとDistanceMatrixAPIにも引き続きアクセスできますが、RoutesAPIにはComputeRoutesやComputeRouteMatrixをはじめとする新機能が追加されており、パフォーマンスも強化されています。 2023-05-22 01:00:00
マーケティング MarkeZine マーケターは知っておきたいGA4とUAの違い~「Googleアナリティクス」実践講座を開催~ http://markezine.jp/article/detail/42227 google 2023-05-22 08:30:00
マーケティング MarkeZine 1日のスマホ利用時間は「1時間以上、2時間未満」が最多/次点は「30分以上」【マイボイスコム調査】 http://markezine.jp/article/detail/42287 次点 2023-05-22 08:15:00
GCP Cloud Blog JA Routes API の一般提供を開始 https://cloud.google.com/blog/ja/products/maps-platform/routes-api-now-generally-available/ GoogleCloudパートナー、株式会社ゴーガ代表取締役今関雄人氏RoutesAPIの一般提供の開始後も、既存のDirectionsAPIとDistanceMatrixAPIにも引き続きアクセスできますが、RoutesAPIにはComputeRoutesやComputeRouteMatrixをはじめとする新機能が追加されており、パフォーマンスも強化されています。 2023-05-22 01:00:00

コメント

このブログの人気の投稿

投稿時間:2021-06-17 05:05:34 RSSフィード2021-06-17 05:00 分まとめ(1274件)

投稿時間:2021-06-20 02:06:12 RSSフィード2021-06-20 02:00 分まとめ(3871件)

投稿時間:2020-12-01 09:41:49 RSSフィード2020-12-01 09:00 分まとめ(69件)