Trish and I are moving soon. She's been sending me links to rugs for our new living room floor. She found an interesting one today:
(click for larger view)
Why should you care? Ignore the rug, notice the breadcrumb to the rug:
Target thinks that this Rug is in its XBox 360 Console section? Or does it? When I looked at the rug on Trish's computer, it was in the right place (under household items). So what happened?
Seems that a few days ago I was browsing Target to find an XBox 360 Elite to replace my dead console. Putting two and two together, I think that cookie's ruined the breadcrumbs. I think that target stores data as I browse their in a cookie to re-create where on the site I am. When Trish sent me a link, Target incorrectly assumed I was still using the same browsing from earlier (several days earlier) and ruined their cookies.
I saw this very problem several years ago when I was working in Boston on an Internet site. It taught us to think carefully about what data to store where. It forces you to think about user data carefully. In this case the breadcrumb data is stored as a cookie on my machine but I am still an anonymous user. In this case I don't see why they wouldn't just re-create the breadcrumb by either storing data server-side or more interestingly from their database data. Sure depending on their schema, perhaps this rug exists in a number of places in their catalog, but that would certainly been better than this.
The fact is that when you design a website, remember that people are going to save and send URL's and side affects are going to happen. Think about how users use your site, test edge cases and plan for them. So imagine if it was more embarassing:
Ok, stop imagining now...
|Building a Web App with ASP.NET Core, MVC6, EF Core and AngularJS (New)|
|Building a Web App with ASP.NET5, MVC6, EF7, and AngularJS (Retired)|
|Best Practices in ASP.NET: Entities, Validation, and View Models|
|Front-End Web Development Quick Start|
|Lessons from Real World .NET Code Reviews|
|Node.js for .NET Developers|
|Implementing ASP.NET Web API|
|Application Name||WilderBlog||Environment Name||Production|
|Application Ver||18.104.22.168||Runtime Framework||.NETCoreApp,Version=v1.1|
|App Path||D:\home\site\wwwroot||Runtime Version||.NET Core 4.6.24628.01|
|Operating System||Microsoft Windows 6.2.9200||Runtime Arch||X86|