784 karma · joined August 24, 2009
Heres an example. In the very first scene you have to flee a crime scene. You could leave the murder weapon where it is, or try to hide it. If you hide it, the game doesn't show you where you hid it. Later on, you play as the cops investigating the crime scene. If you didn't hid the weapon, it's in the same spot, but if you hid it, you'll have to look for it now. Most changes to the movie follow this structure. Demonstrating a higher level of play results in a movie with more and longer scenes, and all those extra scenes make it very clear that your actions caused them to exist in the movie.
That is one viable workflow: Make a change to the common code and publish it as a new package version while allowing all existing code to continue to use the old package. Then, migrate other projects to the newer version of the dependency one by one.
Allowing multiple versions of the same code to exist in production at once adds complexity. It's a trade-off.
Also, if you're doing this with code that is ultimately webpacked to run in a web browser and you don't pay attention to the full tree of dependencies you're working with, there's a chance you end up loading two versions of the same library into a single web page, increasing the page weight and possibly causing incompatibilities in event handling.
Google prefers to simply have one master version of the entire company at a time.
I've spent a lot of time wondering which solution is the best and I'm still not sure.
Ultimately I found Django to be more trouble than it's worth. I only use it if my work forces me to. I find its design to be obtuse and unpleasant in many places.
> POST to views loses POST data
The middlewares shouldn't be redirecting POSTs then! They could have returned a client error instead.
> Blank object names
They could have provided a fallback of __class__.__name__.
> Integer & NULLS
If the admin interface knows the field is required, why does it even attempt to insert a null value? It could return a validation error.
> Appending to a list in session doesn't work
Django's behavior with ORM relationships has always disappointed me. There's no way to work with them in memory like in SQLAlchemy because they always attempt to sync out changes to the database immediately. As a result you often have to write some very strange code. They could change this.
> Errors about undefined attributes with one-char names
They could have done a type check to see if you passed a string instead of an iterable of strings.
...etc.
To me, the Django project exudes the stubbornness of the developers who maintain it because rather than fixing these problems they've decided to write this page about how it's you, the user, who is wrong.
That's so wasteful. Why not give it to a friend? Or to GoodWill?
What he really should have done was get it delivered or picked up at his workplace so he wouldn't have to stay home waiting for the courier.
So it's actually going to have multiplayer? Actually what does this even mean?
This is less complicated than GraphQL's solution of using the Relay Node interface.