並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 40件

新着順 人気順

antipatternの検索結果1 - 40 件 / 40件

  • ポケモンを題材に「SQLアンチパターン」を実践してみる - kanayamaのブログ

    @tkanayama_です。「SQLアンチパターン *1」 という本を読みました。「ポケモンを題材に因果推論を実践してみる」のように、仮想的なストーリ上で実際に使ってみた感を出すことにより、自分の記憶に定着させることを狙います。 前提として、何をアンチパターンとするかは状況(ベンダーフリーである必要があるかどうか、どの程度の頻度で更新されるか・・・など)によって大きく異なるので、下記で紹介するアンチパターンは実は状況によっては問題にならないケースもあるかと思います。この投稿はあくまで「SQLアンチパターン」に忠実に従うことが目的です。 www.oreilly.co.jp 追記 登場人物 ストーリー フシギダネへの対応 ヤミカラスへの対応 ディグダへの対応 誤登録でポケモントレーナーになってしまったユーザーの削除 最後に 謝辞 追記 このブログを公開後、「外部キー制約はレコードロック周りのト

      ポケモンを題材に「SQLアンチパターン」を実践してみる - kanayamaのブログ
    • やってはいけないUIアニメーション

      ここの画面ではメインボタンの「START」を目立たせたいのですが、右上のボタンに目がいってしまいます。 右上に目がいってしまうのは、最後に動く箇所に視線が移動するので不必要に右上に視線が誘導されます。 他にもコントラストや動き量がメインボタンよりも大きく変化しているため、いやでも目についてしまいます。 不必要に待たせている 最後に動かすところに視線が行きますが、視線をメインボタンに向けさせようと最後のアニメーションを長くしてしまった結果、ユーザーがアニメーションによって待たされている状態になってしまいました。 メインボタンはすぐに押してゲームを遊べることが大切になるので、最後にボタンを大きく動かして目立たせてもユーザーは早く押させて欲しいと思ってしまうので、アニメーションは短くサッと出して上げてユーザーが気持ちよく行動できるといいですね。 動き過ぎ、優先順位が曖昧 全てが動き過ぎてしまい、

        やってはいけないUIアニメーション
      • システム運用アンチパターン

        上層部がDevOpsに理解のない組織で働き、組織構造を変える権限を持っていない開発者であっても、チームにDevOpsを導入するための現実的な方法を紹介します。 重厚な承認プロセス、可視化されていない運用、プロセスの最後でのみ行われるソフトウェアテスト、ノイズだらけのアラート、インシデントから学習しない習慣、時間外のデプロイ、情報のため込みなどを取り上げ、ソフトウェアシステムの開発運用が滞るチームや組織に共通してみられる陥りがちな状況や犯しがちな間違いをアンチパターンとして紹介します。そして管理職やマネージャでなく、エンジニアが実行し、繰り返すことで改善できる具体的な行動を解説します。 組織で必要とされる変化を、エンジニアが行動することで実現する本書は、ソフトウェアシステムをよりよく開発運用したいエンジニア必携の一冊です。 目 次 序文 本書について 1章 DevOpsを構成するもの 1.1

          システム運用アンチパターン
        • Microservices分割大全 - kawasima

          Microserviceの分割の仕方について語られているものを収集します。 microservices.ioのサイトに載っている分割パターンは4つ。ただし「自己完結型サービス」と「チームごとのサービス」は、直交していないので大きくは「ビジネスケイパビリティでの分割」と「サブドメインでの分割」の2つ。 ビジネスケイパビリティでの分割 https://microservices.io/patterns/decomposition/decompose-by-business-capability.html 現在の業務機能にしたがってサービスを分割する。 したがって、コンウェイの法則にしたがった分割とされる。 サブドメインでの分割 https://microservices.io/patterns/decomposition/decompose-by-subdomain.html DDDのサブドメ

            Microservices分割大全 - kawasima
          • オワコン大手SIerに学ぶアンチパターン - Qiita

            軽い読み物としておもしろおかしく読んでください。 はじめて社外の人の仕事を見た 今まで社内の成果物しか目にしてこなかったのですが、ふとしたきっかけで外部ベンダーが作ったシステムを移行することになりました。 会社名を見て、よく知った会社でちょっと安心しました。 「ここなら設計書とかもきちんとしてるだろう、多少古臭くても堅実にやってるんじゃないかな」って思ってました。ええ。 実態は全然違った とんでもない量のExcelが設計書として渡されました。 さすがに設計が専門だけあって設計書の量はすごいなぁ。と思って読んでいるといろいろ察してきました。 正直、「オワコン大手SIer」と呼ぶしかありません。設計しかできないと思っていたのに、何もできないなんて・・・ 実際に自分が見た「オワコン大手SIer」のアンチパターンをご紹介していきます。 自分が多く当てはまっている場合は今すぐ直してください。移行する

              オワコン大手SIerに学ぶアンチパターン - Qiita
            • やめてほしいUIアニメーション

              最近はクオリティの高いアプリも増え、UIの見せ方も工夫されて昔より質の高いアプリが増えましたが、低コストで開発していくとUIアニメーションは後回しにされがちですよね。 開発時間や人員の問題、UIアニメーションをやる人がいないから自分がやった人など、UIアニメーションの優先順位が低いため、手探りでやっている方も多いと思います。 今回の記事では今出ているアプリに対してあれはダメだ!と言いたいわけではなく、リリースされているアプリを触って、自分が作るときはここは気をつけようと思ったり、これはアニメーションいいなとか、実際体感して勉強していけるため、その経験が業界全体を徐々にクオリティアップしていくため、結果は惜しいアニメーションだとしても挑戦した結果でもあると思うため大事なことだと思っています。 前置きはここまでにして、今回はアニメーションの中で、あれ?と思ってしまう、そんな「これはやめてほしい

                やめてほしいUIアニメーション
              • 業務でどれだけSQL力がつくのか ~SQLアンチパターンを用いて確認~ 前編

                はじめに こんにちは。 GMOアドマーケティングのKONCEです。 新卒で入社し、数年経ちました。日々の業務で学ぶことは多いですが、今年度は技術の深堀りをテーマにやっていきたいと思っています。 今回は入社してDBやSQLに関しては業務内で学ぶことが多く、特別訓練をしていたわけではなかったのですが、「SQLアンチパターン」を用いて学びながら、改めて自分の現状を見つめ直していけたらと思います。 今回は学習を行う側面と自分自身のレベルについて見直していきたいので 知っていた → ○ 部分的に知っていた → △ 知らなかった → × を付けてみようと思います。 目次 SQLアンチパターンについて Ⅰ部 データベース論理設計のアンチパターン 2-1. [○]1章 ジェイウォーク(信号無視) 2-2. [×]2章 ナイーブツリー(素朴な木) 2-3. [○]3章 IDリクワイアド(とりあえずID) 2

                  業務でどれだけSQL力がつくのか ~SQLアンチパターンを用いて確認~ 前編
                • 星取表のアンチパターン

                  これだけみると LibC がよく見えますね。 オープンソースのライブラリ比較や、エンタープライズな SaaS が競合に対する優位を見せたいときに星取表が使われることが多いです。 中立な立場でライブラリを選定する過程として出てくることがあります。 自分はこれに全く意味がなく、むしろ競争的な立場では出した側が負けるものと認識しています。 星取表を作る側の意図 よく見かけるパターンがこれです。 開発自体は長いため機能が豊富だが性能に劣る先発が、後発を貶めている 恣意的な項目選定で、そもそも負けている そもそも比較対象としての土俵が違う(全部入りのフレームワークと単機能なライブラリの比較) 特に 1 と 2 の組み合わせが多く、この裏では非機能要件で圧倒的に負けていることが多いです。例えば A は機能は豊富だけどビルドに 30秒で、Bは機能は足りないけど3秒だといった場合、多くの場合ではまず B

                    星取表のアンチパターン
                  • 業務でどれだけSQL力がつくのか ~SQLアンチパターンを用いて確認~ 後編

                    はじめにこんにちは。GMOアドマーケティングのKONCEです。新卒で入社し、数年経ちました。日々の業務で学ぶことは多いですが、今年度は技術の深堀りをテーマにやっていきたいと思っています。今回は入社してDBやSQLに関しては業務内で学ぶことが多く、特別訓練をしていたわけではなかったのですが、「SQLアンチパターン」を用いて学びながら、改めて自分の現状を見つめ直していけたらと思います。今回は学習を行う側面と自分自身のレベルについて見直していきたいので 知っていた → ○ 部分的に知っていた → △ 知らなかった → ... 今回は後編です。 今回も 知っていた → ○ 部分的に知っていた → △ 知らなかった → × を付けてみようと思います。 目次 SQLアンチパターンについて Ⅲ部 クエリのアンチパターン 2-1. [△]13章 フェア・オブ・ジ・アンノウン(恐怖のunknown) 2-2

                      業務でどれだけSQL力がつくのか ~SQLアンチパターンを用いて確認~ 後編
                    • 【新人SE講座】 第1回『WBSがないのは死亡フラグ』 - Qiita

                      主に新人システムエンジニア向けに、業務で必要になる知識やテクニックを解説していきます。 第1回のテーマはプロジェクト管理の基本である「WBS」です。 (評判がよければ第2回もやります。。。) まとめ

                        【新人SE講座】 第1回『WBSがないのは死亡フラグ』 - Qiita
                      • 治安の良いCSSを目指して 〜 平和な世界のために僕たちができること 〜 - Qiita

                        はじめに 業務でCSSを書くようになってから、いくつかの月日が流れました。 CSSを学び始めた当初は、要素をキレイに横並びにすることすら手こずっていましたが、最近は随分スムーズにデザイン通りのスタイルを書くことができるようになりました。 今日に至るまで、過去の自分が書いたCSSへの後悔の念で眠れない日々や、原因のよくわからない表示崩れの悪夢にうなされる夜もありました。1 これからCSSを学ぶ人、CSSにはあまり詳しくないけどたまに書くよという人にそんな思いをして欲しくない。できたらCSSのことを好きになって欲しい。 そんな思いで自分がスタイルを書く時・レビューをする時に気をつけていることを(自戒も込めて)まとめまてみました。 🤔 良いスタイルってなんだろう? スタイルを書く時に大切だと考えていることは3点あります。 開発効率 デザイン再現性 パフォーマンス 開発効率 色々な記事や本でも引

                          治安の良いCSSを目指して 〜 平和な世界のために僕たちができること 〜 - Qiita
                        • Parse, don’t validate

                          Historically, I’ve struggled to find a concise, simple way to explain what it means to practice type-driven design. Too often, when someone asks me “How did you come up with this approach?” I find I can’t give them a satisfying answer. I know it didn’t just come to me in a vision—I have an iterative design process that doesn’t require plucking the “right” approach out of thin air—yet I haven’t bee

                          • Services By Lifecycle - Wide Awake Developers

                            This post took a lot longer to pull together than I expected. Not because it was hard to write, but because it was too easy to write too much. Like a pre-bonsai tree, it would grow out of control and get pruned back over and over. In the meantime, I delivered a workshop and spent some lovely holiday time with my family. But it’s a new year now, and January is devoid of holidays so it’s high time I

                            • Speculation in JavaScriptCore

                              This post is all about speculative compilation, or just speculation for short, in the context of the JavaScriptCore virtual machine. Speculative compilation is ideal for making dynamic languages, or any language with enough dynamic features, run faster. In this post, we will look at speculation for JavaScript. Historically, this technique or closely related variants has been applied successfully t

                              • ml-system-design-pattern

                                Skip to the content. English Korean 機械学習システム デザインパターン 機械学習システムを本番稼働させるために必要な学習、推論、運用のアーキテクチャ・デザイン・パターン集です。 目的 このドキュメントの目的は機械学習システムを本番稼働させるためのシステム・デザイン・パターンを説明することです。 このドキュメントは機械学習のモデル開発でパフォーマンスを向上させる方法(正解率やRMSE)を説明するものではありませんが、パターンによってはその手法に言及することもあります。 前提 このドキュメントで書かれる機械学習システムパターンのほとんどは、パブリック・クラウドおよびKubernetesを使って稼働させることを前提に記述されています。特定のプログラミング言語に依存しない内容にするよう努めますが、機械学習で使われる最もポピュラーな言語がPythonであるため、ほ

                                • Understanding inheritance and other limitations in Rust - LogRocket Blog

                                  Andre Bogus Andre "llogiq" Bogus is a Rust contributor and Clippy maintainer. A musician-turned-programmer, he has worked in many fields, from voice acting and teaching, to programming and managing software projects. He enjoys learning new things and telling others about them. Editor’s note: This Rust guide was updated on 3 Aug, 2022 to include information about doubly linked lists and borrowing t

                                    Understanding inheritance and other limitations in Rust - LogRocket Blog
                                  • [初心者向け]破滅的なクソコードを書かないために意識したい3つのこと - Qiita

                                    この記事で伝えたいこと ここでは、私が設計を勉強しながらコーディングした経験から、初心者でも簡単に実践できる簡単なルールを3つピックアップしました。 一つのクラスは150行以内に収める 循環参照はしない 継承はしない この3つを守れば、破滅的なクソコードであれば割と簡単に防げるかと思います。 この記事における「破滅的なクソコード」は「一切のリファクタリングの余地も残されていないほどのコード」を意味し、この記事の目的は、「破滅的なクソコード」から、「最低限リファクタリングすればなんとかなるコード」になる程度の手法を紹介することです。 マサカリは大歓迎ですがお手柔らかにお願いします。 読む上で留意して欲しいこと この記事はあくまで 「初心者のための破滅的なクソコードを書かないための簡単な方法論」 であって、「効率的で分かりやすい設計の方法論」ではありません。 この3つは「銀の弾丸」ではないです

                                      [初心者向け]破滅的なクソコードを書かないために意識したい3つのこと - Qiita
                                    • BigQuery アンチパターンレコメンデーションツールで、パフォーマンスの悪い SQL を使っていないか確認してみる。 | DevelopersIO

                                      BigQuery アンチパターンレコメンデーションツールで、パフォーマンスの悪い SQL を使っていないか確認してみる。 こんにちは、みかみです。 本州も梅雨入りの季節になってまいりましたが、沖縄はそろそろ梅雨明けです! やりたいこと BigQuery で実行している SQL のパフォーマンスチューニングをしたい BigQuery のアンチパターン SQL を使っていないか確認したい どんな DWH を使うにしろ、SQL チューニングは避けて通れない道ではないかと思います。 実行計画確認して、データ処理エンジンの思想に思いを馳せて・・・。 というのも、特に顕著な改善効果が得られた時にはこの上ない喜びを感じられる作業ですが、SQL が複雑だったり、大量の SQL を確認しないといけない場合は、心折れそうになる場合もあります。 BigQuery でも、クエリプランを確認しながら SQL をチュ

                                        BigQuery アンチパターンレコメンデーションツールで、パフォーマンスの悪い SQL を使っていないか確認してみる。 | DevelopersIO
                                      • Please stop using CDNs for external Javascript libraries

                                        I want to discuss a (minor) antipattern that I think is (slightly) harmful. Lots of websites use large Javascript libraries. They often include them by using a 3rd party Content Delivery Network like so: <script src="https://cdn.example.com/js/library-v1.2.3.js"></script>There are, supposedly, a couple of advantages to doing things this way. Users may already have the JS library in their cache fro

                                          Please stop using CDNs for external Javascript libraries
                                        • systemd, 10 years later: a historical and technical retrospective

                                          systemd, 10 years later: a historical and technical retrospective by V.R. I am not sure I am such a big fan of reimplementing NetworkManager… – Lennart Poettering’s famous last words, March 2011 10 years ago, systemd was announced and swiftly rose to become one of the most persistently controversial and polarizing pieces of software in recent history, and especially in the GNU/Linux world. The qua

                                          • How to optimize ORDER BY RANDOM() - Tobias Petry

                                            Tom Witowsky (@devgummibeer) shared on Twitter a scaling issue with his service opendor.me, which helps any developer share and highlight their open source work. As the service grows, more and more data is stored in the database and needs to be browsed. One particularly slow query that he needed help optimizing is fetching random users, organizations, and repositories that are already part of the

                                            • Modern Web Development on the JAMstack: Modern Techniques for Ultra Fast Sites and Web Applications

                                              Really pause and think about how much time and effort web teams around the world have spent building and managing infrastructure. For many years, launching a site or web application has been as much about deploying complex server environments as it’s been about building actual application code. The cloud made provision- ing all these resources faster but no less complicated. The JAMstack was born

                                              • Functors and Monads For People Who Have Read Too Many "Tutorials" - iRi

                                                Celebrating Over 10 Years Of Being Too Lazy To Pick A Tagline Title is literally true. This may not be the best place to learn about these concepts for the first time, because I'm going to focus on knocking down the misconceptions about them. Then again, it may not be the worst place, for the same reason. I had promised myself I would not add to the pile of functor or monad "tutorials", but I've b

                                                • React re-renders guide: everything, all at once

                                                  02-08-2022Nadia Makarevich React re-renders guide: everything, all at once Comprehensive guide on React re-renders. The guide explains what re-renders are, what a necessary and unnecessary re-render is, what can trigger a React component re-render. Also includes most important patterns that can help prevent re-renders and a few anti-patterns that lead to unnecessary re-renders and poor performance

                                                    React re-renders guide: everything, all at once
                                                  • CSS Viewport Units

                                                    CSS Viewport units have been around for the last few years, and by time, I see them being used more and more by developers. Their benefit lies in providing us with a way to size things in a fluid and dynamic way, without the need to use JavaScript. Also, it’s easy to provide a fallback if they fail. In this article, we will learn about CSS viewport units and how to use them, along with some use-ca

                                                      CSS Viewport Units
                                                    • ViewModel: One-off event antipatterns

                                                      ViewModel events are actions originated from the ViewModel that the UI should perform. For example, displaying an informative message to the user, or navigating to a different screen when the application state changes. Our guidance on ViewModel events is opinionated in two different ways: Whenever a one-off event originates in the ViewModel, the ViewModel should handle that event immediately causi

                                                        ViewModel: One-off event antipatterns
                                                      • Don’t return err in Go — akavel's digital garden

                                                        Instead, add missing details relevant for debugging. Some people like to complain that Go requires writing tons of “if err != nil { return err }” blocks. Those people don’t understand Go errors. The thing is, what they complain about is actually a completely wrong way of handling errors in Go: return err is an antipattern. Let me show what I mean on some sample code: a helper library for configuri

                                                        • Services By Lifecycle - Wide Awake Developers

                                                          This post took a lot longer to pull together than I expected. Not because it was hard to write, but because it was too easy to write too much. Like a pre-bonsai tree, it would grow out of control and get pruned back over and over. In the meantime, I delivered a workshop and spent some lovely holiday time with my family. But it’s a new year now, and January is devoid of holidays so it’s high time I

                                                          • Permutate parsers, don't validate

                                                            “Parse, don’t validate” has been one of my favourite programming articles for some time. The main gist of the article is that, when writing in a type-driven fashion, your snappy slogan should be: Parse, don’t validate. The core difference between parsing and validating can be explained by looking at two very similar functions: parseInt :: String -> Maybe Int parseInt str = Text.Read.readMaybe str

                                                            • Easy Mode Rust — Llogiq on stuff

                                                              This post is based on my RustNationUK ‘24 talk with the same title. The talk video is on youtube, the slides are served from here. Also, here’s the lyrics of the song I introduced the talk with (sung to the tune of Bob Dylan’s “The times, they are a-changin’”): Come gather Rustaceans wherever you roam and admit that our numbers have steadily grown. The community’s awesomeness ain’t set in stone, s

                                                              • Agile And Micromanagement - steps to phantasien

                                                                少し前に JIRA is an antipattern という記事があり、盛り上がっていた。どうも ticket を assign するという形で micromanage されることがあり、それが嫌という話らしい。 これはツールの濫用/誤用であるというのが主要な反論で、そうだろうとは思う。一方でツールやプロセスが暗に促す方向というものもあり、JIRA は micromanagement を遠ざけるような力を持っていない。それはそれできっと事実なのだろう。 自分は勤務先内製の bug tracker に長いこと不満を持っているわけだが、ひとつだけ良いこともあると気づいた。このツールは管理職が下々を micromanage するには出来が悪すぎるのである。一方、むかし Pivotal Tracker を使っているチームの TL/M によるものすごい micromanage を目撃したことがあり

                                                                • Julia 1.6: what has changed since Julia 1.0?

                                                                  Julia 1.0 came out well over 2 years ago. Since then a lot has changed and a lot hasn’t. Julia 1.0 was a commitment to no breaking changes, but that is not to say no new features have been added to the language. Julia 1.6 is a huge release and it is coming out relatively soon. RC-1 was released recently. I suspect we have at least a few more weeks before the final release. The Julia Core team take

                                                                  • Microservices antipatterns and pitfalls

                                                                    Author Mark Richards walks you through the 10 most common microservice anti-patterns and pitfalls, and provides solutions for avoiding them. Preface In late 2006 service-oriented architecture (SOA) was all the craze. Companies were jumping on the bandwagon and embracing SOA before fully understanding the advantages and disadvantages of this very complex architecture style. Those companies that emb

                                                                      Microservices antipatterns and pitfalls
                                                                    • Switching from C# to Go for Backend Development - Aluma

                                                                      By Phil Richards, Lead Architect at Aluma Running a microservices-based architecture here at Aluma means we’re able to trial new technologies when developing new features, without having to rewrite a monolith. We'd already been using Go for our command-line client, but around a year ago we tried out Go for a new microservice, and we liked it so much we decided to use it for all future backend deve

                                                                        Switching from C# to Go for Backend Development - Aluma
                                                                      • ViewModel: Events as State are an Antipattern

                                                                        I feel like I need to discuss this, so I decided to write an article on a hot topic in the Kotlin dev community about one-off events antipatterns. So the story begins with this article by Manuel Vivo ViewModel: One-off event antipatterns I recommend that you read the article and especially the comments to understand the situation fully, but I’ll summarize the article: Manuel Vivo argues that one-o

                                                                          ViewModel: Events as State are an Antipattern
                                                                        • ml-system-design-pattern

                                                                          Skip to the content. Japanese Korean Machine learning system design pattern This repository contains system design patterns for training, serving and operation of machine learning systems in production. Objectives The main objective of this document is to explain system patterns for designing machine learning system in production. This document is not the design patterns for developing machine lea

                                                                          • Focus management and inert | CSS-Tricks

                                                                            Many forms of assistive technology use keyboard navigation to understand and take action on screen content. One way of navigating is via the Tab key. You may already be familiar with this way of navigating if you use it to quickly jump from input to input on a form without having to reach for your mouse or trackpad. Tab will jump to interactive elements in the order they show up in the DOM. This i

                                                                              Focus management and inert | CSS-Tricks
                                                                            • 5分で終わるPrisma 2 Tutorial - valid,invalid

                                                                              「名前をよく聞くが実態がよくわかっていないものリスト」にいたPrismaだが、official tutorialが5分で終わるというのでやってみた。 www.prisma.io "5分"!? と思ったがPrisma SchemaとPrisma Clientの説明が中心で、ORMの書き味を見てみる程度の内容なのでそんなものかもしれない。 補足説明を読んだりしながら進めたので5分以上かかったが、まったく追っていないJS/TS界のORMの進化をキャッチアップできてだいぶ面白かった。 学んだこと Prisma 2はただのORM まず、Hasuraと同列のプロダクトだと誤解していたけど違っていた。Prisma 2はただのORM。 同列に語られがちだったのはどうやら今はメンテナンスモードに入っているPrisma 1の頃の話で、GraphQL DSLでデータモデルを定義したり、GraphQL APIサー

                                                                                5分で終わるPrisma 2 Tutorial - valid,invalid
                                                                              • The Snowflakes as Code antipattern

                                                                                <p>One of the earliest benefits that drew people like me to infrastructure as code was the promise of eliminating <a href="https://martinfowler.com/bliki/SnowflakeServer.html">snowflake servers</a>.</p> <p>In the old times, we built servers by logging into them and running commands. We might build, update, fix, optimize, or otherwise change servers in different environments in different ways at di

                                                                                  The Snowflakes as Code antipattern
                                                                                • Language Pragmatics Engineering

                                                                                  Summary: The code that gets written is the code that’s easier to write. Anything not forbidden by the language semantics will be done as a “temporary fix”. Codebases decay along the gradient of expedient hacks. Programming languages have syntax, semantics, and pragmatics: how the language is used in practice. The latter is harder to design for. Language pragmatics is tooling, best practices, and t

                                                                                    Language Pragmatics Engineering
                                                                                  1