5 ms·
An article about the "attrs" library was posted here a couple weeks ago. Really highlighted the tedium of Python objects while offering a neat solution. https
by aeruder 10y ago
An article about the "attrs" library was posted here a couple weeks ago. Really highlighted the tedium of Python objects while offering a neat solution.
https://glyph.twistedmatrix.com/2016/08/attrs.html https://glyph.twistedmatrix.com/2016/08/attrs.html
Regarding protobuf, I'm a bit disappointed with the direction of version 3. Fields can no longer be marked as required - everything is optional; i.e. almost every protobuf needs to be wrapped with some sort of validator to ensure that necessary fields are present. I understand the arguments, but I did enjoy letting protobuf do the bulk of the work making sure fields were present.
- StavrosK 10y agoThat's a really interesting article, thank you! EDIT: I liked it so much that I posted it here: https://news.ycombinator.com/item?id=12359522 https://news.ycombinator.com/item?id=12359522
- tantalor 10y agoRequired fields are bad; don't use them. You should be very careful about marking fields as required. If at some point you wish to stop writing or sending a required field, it will be problematic to change the field to an optional field – old readers will consider messages without this field to be incomplete and may reject or drop them unintentionally. You should consider writing application-specific custom validation routines for your buffers instead. https://developers.google.com/protocol-buffers/docs/proto#specifying-field-rules https://developers.google.com/protocol-buffers/docs/proto#sp...
- lmm 10y agoThey're a tradeoff. Sometimes you really are confident enough that this attribute will be required forever that the saving of not having to write custom validation is worth it.
- kazagistar 10y agoHow, if at all, does attrs interact with serialization and deserialization?