Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.
Sign upIncrementalize tutorial doc #11
Comments
|
Do you want some more examples inserted into the current tutorial or using the announcement blog as the new base? If you want to keep the current documentation, more examples could be inserted between I like the flow of the announcement blog, but would need to be tweaked to fit with the API example. Thoughts? |
|
Hey @dfezzie! Thanks for your interest! I'm definitely interested in continuing with the Contacts example, as it kinda simulates the ORM nicely. If we could merge the approach of the announcement post with content of the Contacts example that would be ideal. I think maybe there ought to be a tutorial pt 2 or something to get into T and Inspect and other fun stuff, but maybe I'll save that for another issue :) Thanks again! |
|
hey @mahmoud -- I discovered glom last night after seeing your lightning talk at PyCon. I love it! Is this issue still relevant? I'd like to contribute in some way and this seems like a good starting point. |
|
Thank you for the kind words, @eightlimbed! I definitely think the tutorial could use more work! Last thing I did was put some interactive repl.it terminals in there, but they don't necessarily make it a smoother ride, understanding-wise. I'm very interested in the perspectives of new users like yourself. We can use this thread to discuss where you feel friction and how we can improve the tutorial to make it better. :) |
|
Ok, I'll give you my unfiltered thoughts when following the current tutorial.
instead of
To me, it's easier to tell what's going on when the nested data structures are more vertical. I know it takes up more lines of code, but I think it's more visually appealing and easier for beginners to understand what glom is doing
This feedback comes from a place of respect... Please take it with a grain of salt. I don't mean to knock what exists, but just want to say what is going on in my mind as a first-time user :) |
|
Great points!
So, were there any bumps along the learning path? Don't worry about being overly critical, fresh eyes is what this tutorial needs :) I was mulling it over about a month ago, and I came up with some slightly new angles for a talk I was giving at a meetup in San Mateo. Slides here. Slide 19-23 highlight a key missing link in the tutorial, I think: "Why does glom accept non-string objects as specs? Why is it more than just a deep-get?" I think there's an extra section or at least an aside that should be added, what do you think? |
|
Thanks for sharing the slides @mahmoud -- I still have some thinking to do about the questions you asked regarding slides 19-23, but I wanted to get the changes you suggested in just to keep the ball rolling, so I submitted a PR for those. I think the biggest bump for me now is in the "Point of Contact" section. When I read,
My eyes start to glaze and I feel information overload. I think "We're implementing a Contacts web service" is enough. This code block is a lot to take in...
I know that it is broken down line by line in the next section, but yeah, it's a lot. Perhaps a simpler example would be easier for the reader. In the following section where this spec is broken down it consists of 5 blocks of text, which I also find kind of painful to look at. I would prefer to see something like...
I want to be reminded of where I used Does that make sense? Hope you are having a nice weekend. I dig the trailer park boys references :P |
|
Hey! I'm glad someone appreciates the TPB :) I agree on "We're implementing a Contacts web service" being more approachable, and everything else for that matter, too. As far as slides 19-23, all I mean is, I think most people find the string-based "deep-get" use case natural. How do I more naturally transition into passing more complex, non-string specs to |
|
hey @mahmoud -- just a friendly reminder about this. hope you are doing well. |
Right now the tutorial is coherently designed, tested, and even documented. However, it doesn't build up in a way that's very beginner friendly. It establishes glom's value and then immediately uses it at an intermediate level.
I'd like it if it was a bit more drawn out to use basic features first and then add a multi-line
Coalesceas the finisher. The announcement blog post does a better job of this, but doesn't go far enough before jumping ahead toT.