U softverskom inženjerstvu, anti-uzor je uzor koji izgleda očigledno, ali je neefikasan ili daleko od optimalnog u praksi.

Ovaj pojam je prvi upotrebio Andrew Koenig 1995.god, inspirisan knjigom GOF Design patterns, koja je razvila koncept uzora u softverskom polju. Tri godine kasnije se ovaj pojam popularizuje knjigom AntiPattrns, koja ovaj pojam proširuje izvan softverskih okvira. Po autorima ove knjige, za formalno razlikovanje anti-uzora od obične loše navike, loše ideje ili prakse, moraju postojati bar dva ključna elementa:

  1. Neki ponavljani sled akcija, procesa, ili strukture koja se inicijalno pokazuju korisnim, ali na kraju proizvode više loših posledica nego korisnih rezultata i
  2. Refaktorisano rešenje koje je ponovljivo, jasno dokumentovano, dokazano u praksi.

Mnogi anti-uzori su često samo malo više od običnih grešaka, praznih priča, nerešivih problema, ili loše prakse i trebalo bi ih izbegavati ako je to moguće. Često se nazivaju bezdanima, mračnim uzorima, ili "izmišljanjem tople vode", što je metaforičan izraz za ponovnim smišljanjem već smišljenih loših rešenja nekog problema. Često se kandidati za anti-paterne formalno i ne prihvataju, jer već postoje u drukčijoj formi. Ako se formalno opišu greške koje se ponavljaju i shvatenjem sila koje utiču na njihovu pojavu, lakše se shvata kako se izvući iz problema. Preko formalnih anti-paterna, možemo bolje da shvatimo kako se izvući kada problem nastane, kao izvršiti refaktorisanje.