3 ms·
The point is that when ignoring unknown fields leads to users defeating your business model, even though the protocol requires it, the business logic of your so
by dcow 2y ago
The point is that when ignoring unknown fields leads to users defeating your business model, even though the protocol requires it, the business logic of your software almost certainly should not. Protobuf working as intended, youtube client not so much. Agree that cert pinning is not the solution.
- echelon 2y agoProtobuf and the app are behaving the right way. 99.999% of users aren't going to MitM your protocol. How exactly should you deploy client code to the edge, which may not be updated, to handle "unknown" tag number fields? You don't, because that's crazy. Nobody should write software like that because it creates a maintenance hell where you can't upgrade or downgrade because "smart" applications are doing stupid, undeterministic things with the protocol. It's impossible to reason and engineer backward / forward compatibility when you don't treat the wire format and API with respect. Most of the major migration headaches I've had in my career have been the result of engineers trying to be clever in the time and place they wrote the code.
- lokar 2y agoThe next best option is to version the api and support all old versions going back 10+ years I agree, what they are doing with proto is much better
- dcow 2y agoUh… how about display an error message if the user isn’t subscribed to premium and the server doesn't send any ads?
- deleted 2y ago[deleted]