This is part of the Semicolon&Sons Code Diary - consisting of lessons learned on the job. You're in the caching category.
Last Updated: 2024-11-21
Some caching systems allow you to cache complex objects - e.g. an array of Wistia::Video instances.
This is not advised.
You will get a bug later later if the Wistia::Video class definition has not been loaded (and possibly if the class definition has changed).
Therefore it is wiser to cache simple data types (hashes, arrays, times, strings) rather than data types given by APIs or gems. Then write code to populate the complex classes based on the simple contents.
e.g. In React Native, you cannot use rich objects as navigation params in React Native navigation
I could not do this:
naviagation.navigate("TruckPhoto", {truck}) // where truck contain dates and nested arrays
React complained that I cannot use non-serializable params
It should be:
naviagation.navigate("TruckPhoto", {truckId}) // just an int