#AntiPatterns

2026-01-05

OUR USERS WILL EAT SHIT, AND THEY'LL LOVE IT
Gnome 🀝 Firefox

phoronix.com/news/GNOME-Firefo

#firefox #gnome #opensource #antipatterns

2025-11-28

Shopping has always been a game. Increasingly, it’s being rigged against you.

Many companies now use algorithms to set prices and adjust them throughout the day. This new technology is called dynamic pricing, and businesses use it to jack up prices.
#antipatterns #DynamicPricing

nytimes.com/2025/11/28/opinion

Frontend Dogmafrontenddogma@mas.to
2025-10-16

When Case Studies Become Anti-UX, by @uxdesigncc:

archive.ph/Fc4w9

#design #ux #antipatterns

2025-10-15

πŸ₯£ How big tech is force-feeding us AI

ο½’ In many cases, it’s worth noting that these tactics, which lots of people find annoying and intrusive, are only successful because they’re being carried out by large or monopolistic companies with locked-in users and entrenched platforms. The study’s authors call this β€˜forced use’ of AI, and it accounts for a large amount of AI use companies attribute to their products ο½£

bloodinthemachine.com/p/how-bi

#ai #bubble #antipatterns

2025-10-07

So that's really how it is supposed to do today?

Run random scripts from random Internet folks as root, installed random software from random Internet folks, identified only magic hashes only?

No wonder, we have to ressort AI. Natural intelligence has gone long ago in this business.

#docker #antipatterns #security #fail

Screenshot of docker installing an image: Lots of magic hashes, a few progress bars, zero information or insight. Basically everything one is supposed not to to.
2025-08-15

20 частых Π°Π½Ρ‚ΠΈΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ΠΎΠ² Π² React ΠΈ ΠΊΠ°ΠΊ ΠΈΡ… ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ: ΠΊΡ€Π°Ρ‚ΠΊΠΎ, понятно, Π±Π΅Π· ΠΌΠΈΡ„ΠΎΠ²

20 частых Π°Π½Ρ‚ΠΈΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ΠΎΠ² Π² React ΠΈ ΠΊΠ°ΠΊ ΠΈΡ… ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ. Π Π°Π·Π±ΠΈΡ€Π°Π΅ΠΌ ошибки с Ρ…ΡƒΠΊΠ°ΠΌΠΈ, состояниСм, ΠΌΠ΅ΠΌΠΎΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ ΠΈ структурой ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²: ΠΊΠΎΠ³Π΄Π° Π½Π΅ Π½ΡƒΠΆΠ΅Π½ useEffect, Π·Π°Ρ‡Π΅ΠΌ useCallback, ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π½Π΅ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Π΅ значСния Π² state. ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹, Ρ‡Ρ‘Ρ‚ΠΊΠΈΠ΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹, ΠΏΡ€Π°ΠΊΡ‚ΠΈΡ‡Π½Ρ‹Π΅ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹.

habr.com/ru/articles/937656/

#react #javascript #frontend #antipatterns #js #jsx #hooks

2025-01-30

Just a friendly reminder that infinite scroll is an anti-pattern, and that building ethical social media is about more than ownership, algorithms, and licensing: Respecting users' time and not replicating patterns deliberately designed to create addiction is equally important. indieweb.org/infinite_scroll

#mastodon #pixelfed #loops #fediverse #UX #UI #FOSS #FLOSS #AntiPattern #AntiPatterns

Justin D Kruger (he/him)jdavidnet@me.dm
2025-01-24

Yeah, #PGE, I use more energy than the average person because I actually charge my #PHEV. (unlike the average owner ).

You shouldn't shame people for reducing their carbon footprint.

Ditch the #AntiPattern and support people #DeCarbonizing

#UtilityReform #PublicPowerSF #ScottWiener #GavinNewsom #DanielLurie
#EnergyPolicy #EnergyCosts #Electricity #SolarPunk #SolarPower #CarbonFootprint #UX #AntiPatterns
#CA #SF #SanFrancisco #SFBay #NorCal

2024-12-02

Salesforce Flow Best Practices

Best practices in flow revolve around principles that enhance low-code quality, maintainability, and collaboration. Key practices include, but are not limited to, building clear and concise automation with meaningful resource names to improve readability and consistently adhering to standards for uniformity.

Overall, following best practices leads to more efficient and effective automation.

Antipatterns in flow refer to common practices or solutions that may seem beneficial but ultimately lead to poor software design, increased complexity, or maintenance challenges. They are the opposite of best practices and often arise from attempts to solve problems without fully understanding the implications. Recognizing and avoiding antipatterns is crucial for creating clean, efficient, and maintainable code.

While reviewing legacy flow automation is very different from reading and reviewing code, the visual builder flow canvas presents opportunities to spot antipatterns easily.

I gathered the antipatterns I have seen throughout the years and created a slide-set for a comprehensive list. This list is not meant to be the definitive list. I hope it will start fruitful discussions around the topic, which may yield better flow automation quality in the ecosystem.

This post will start a best-practice blog post series. Each item on the list will receive a comprehensive post, and I will link it to this master post upon completion.

Without further ado, let’s dive into the list:

  1. Can You After-Save When You Can Before-Save? Consider performing the same record updates in before-save flows.
  2. Can You Use DML or SOQL Inside the Loop? While there are situations where you may need to break the rule, DMLs and SOQLs (Create, Update, Delete, and Get) should be placed outside the loop.
  3. Is Your Salesforce Flow Too Big? Consider a modular approach and leverage subflows for an easily maintainable structure when your flow becomes too big.
  4. Can You Start With a Loop Inside Your Schedule-Triggered Flow? When you loop immediately after a start element with an object associated, you will loop for every record the flow launches on. This design is not often intended and will potentially generate faults.
  5. Can You Loop Inside a Loop? While this may be necessary in certain situations, it is often a sign of a weak design. Loops inside loops will cause a high number of iterations, hurting performance and usually yielding faults.
  6. Can You Start With a Decision Inside Your Record-Triggered Flow? Starting your record-triggered flow with a decision creates two or more distinct paths inside your automation, which you can split into multiple flows with tighter start element conditions. The latter often is the better-performing design.
  7. Formula Resources in Criteria Conditionsβ€”Yes or No? Instead of inserting formula resources in criteria for decisions and updates, you should consider building multi-line conditions combined with AND and OR operators.
  8. When Your DMLs Have Criteria Conditions Other Than Id. Updates that include conditions beyond specifying the Id of the record consume one SOQL and one DML against your execution governor limits; make sure you check and control your governor limit usage.
  9. Should You Leave Unused Input and Output Variables? Mark your variables as available for input and output only when necessary for security reasons.
  10. Is Your System Context Usage Necessary? Heavy-handed use of system context without sharing can cause unwanted changes in your database. This increases the harm caused by a potential attacker running the flow.
  11. Should You Use Fault Paths? Your DMLs, SOQLs, and Actions need a fault path to ensure the whole transaction does not fail. Fault paths can offer custom messages and alternative routes, preventing complex system fault messages from being displayed to the user.
  12. Should You Use Roll Back Records In Screen Flows? Roll Back Record element provides a way for you to roll back the recent DMLs,  and ensures that half-baked record updates don’t persist in the database.
  13. Is Hardcoding Ids a Good Idea? Hardcoded Ids are potential points of failure especially when deploying flows between unconnected environments like scratch orgs.
  14. What Is The Best Way Of Checking Record Types in Record-Triggered Flows? You can check for record type developer name or name in your record-triggered flow start element without needing a get element inside your flow.
  15. Should You Hardcode Business Logic In Your Flow? If there is frequently changing business logic in your flow, the preferable approach is to build this on a table outside your flow and have SMEs update the reference table.
  16. Are Your HTTP Callouts and Outbound Messages on an Async Path? Salesforce requires integration messaging to execute on an async path. In schedule-triggered flows, the wait element provides a similar function.
  17. Is Your Flow Comparing and Processing Collections? When you go down into the related records, find junction objects, and perform enhanced operations with collections, you may be better off leveraging Apex.
  18. Are Your Email Actions on an Async Path? Perform email actions and create trivial object records for internal follow-up on an async path. This ensures that the main part of the execution does not slow down or stop due to performance or error reasons.
  19. Other Miscellaneous Items: Testing, naming, comments, documentation, null check etc.

Let’s start with the obvious: Build in the sandbox, debug, and test your flows very well. Create good documentation for your flows, add comments and descriptions, and follow naming conventions.

Here are the slides I created for this topic:

View and download Salesforce Flow Antipatterns and Best Practices here.

I presented these items at London’s Calling, Apex Hours, and Trailblazer User Group Meetings.

Everyone is welcome to comment on the blog posts, and I will read them and respond to them.

Explore related content:

6 Things You Can Do With The Transform Element

Top 9 Salesforce Winter 25 Flow Features

#AfterSave #Antipatterns #BeforeSave #Element #HowTo #Loop #Record #RecordTriggered #Update

This is the Flow Best Practices blog image
2024-11-05

I know two things for certain, I’m not a Java dev and Agile values β€œworking software over comprehensive documentation”.

I also know the number of undocumented Deprecated annotations I see is making me angry.

#programming #development #java #antipatterns #Agile

2024-10-17

Every time a stakeholder asks for more information rather than decide. They're increasing waste and still spending money. The time and effort taken to gather the information is waste. In the absence of a decision, the team will still build something. Too bad it wasn't the highest value.

#PortfolioManagement #AntiPatterns

2024-10-04

As a web developer, it’s always mind-boggling just how often Mac-native apps include these unscrollable screens that fail to adapt to viewport dimensions, with an unreachable button at the base. Is there something about the SDKs that leads devs astray consistently? I’m sure I’ve also seen from Apple such #UserInterface #Antipatterns

Client Info

Server: https://mastodon.social
Version: 2025.07
Repository: https://github.com/cyevgeniy/lmst