[HN Gopher] The Architecture of Open Source Applications ___________________________________________________________________ The Architecture of Open Source Applications Author : letientai299 Score : 260 points Date : 2020-08-31 15:34 UTC (7 hours ago) (HTM) web link (aosabook.org) (TXT) w3m dump (aosabook.org) | chubot wrote: | FWIW the Oil project was partly (negatively) inspired by the very | helpful description of bash's architecture: | | https://aosabook.org/en/bash.html | | The maintainer expresses some regret about the parser | architecture. I referenced this in several 2016-2017 blog posts: | | _OSH Parses Shell Scripts Up Front in a Single Pass. Other | Shells Don 't_ - http://www.oilshell.org/blog/2016/10/13.html | | _OSH Can Be Parsed With Two Tokens of Lookahead_ - | http://www.oilshell.org/blog/2016/11/17.html | | _The Thinner Waist of the Interpreter_ - | http://www.oilshell.org/blog/2017/01/26.html | | _Word Evaluation_ - http://www.oilshell.org/blog/2017/03/09.html | | ---- | | This principled architecture ended up paying off in a couple | unexpected ways, which I wrote about earlier this year: | | _Oil Uses Its Parser For History And Completion_ - | http://www.oilshell.org/blog/2020/01/history-and-completion.... | | _Oil 's Parser Doesn't Worry About Aliases and Prompts_ - | http://www.oilshell.org/blog/2020/01/alias-and-prompt.html | | Summary: in addition to the regrets expressed by the maintainer | in the article, bash actually has multiple ad hoc, incorrect | parsers for its own language! They are incorrect to the point | that a separate project (bash-completion) has code to paper over | the errors. | | Oil uses the same parser for all use cases. Moreover, its parser | isn't littered with orthogonal concerns like the interactive | prompt and expanding aliases. | | ---- | | However I still need help finishing the project -- see what I've | cut here: http://www.oilshell.org/blog/2020/08/risks.html | | And feel free to contact me (address on home page and in profile) | dllthomas wrote: | I've been working through the first volume in a reading group | with a few friends. Some chapters are definitely better than | others, and it often requires awareness that it captures a | snapshot of thinking from ~10 years ago, but it's been a good | experience. | astatine wrote: | I was inspired by the AOSA many years ago and I had studied (and | held out) as an example the Apache architecture (about 18-20 | years ago). It is indeed a pity that so many younger software | engineers really have no idea of how heavily used real-world | systems get built. Nor do they understand all the various | tradeoffs and corner cases that need to get handled to make | products work well in real life. | | Building Apache from source (including a few key addon modules) | and configuring it to work for a small set of tests was step 1 at | my organization then. Those successful at this would then get | into the source itself. Fun times! | fizwhiz wrote: | > It is indeed a pity that so many younger software engineers | really have no idea of how heavily used real-world systems get | built. Nor do they understand all the various tradeoffs and | corner cases that need to get handled to make products work | well in real life. | | Isn't that a hallmark of a junior engineer :) ? If you're | trying to achieve deeper technical depth (which takes time), it | helps to be a part of an organization that _rewards_ said | technical depth. | mesaframe wrote: | > it helps to be a part of an organization that rewards said | technical depth. | | I agree. My previous job wanted to employees to finish work | ASAP. There were no incentives for quality. Performance was | judged on the basis of how fast one can push things out | irrespective of quality. As a result there was lack of | engineering. | pault wrote: | Not only that, but those types of organizations are also | the ones that are likely to tell experienced engineers that | they are "overqualified" for the job because they want more | juniors that won't push back against harmful practices. | krisgenre wrote: | Unfortunately deep technical depth is unwarranted and | unwelcomed in many organizations. In fact you repeatedly get | told that "the customer doesn't care about your code". At the | end of the day adding yet another 'if' condition to patch up | things is what is usually appreciated. | non-entity wrote: | > I once worked at a place where we had an endpoint on an | application taking a long time because of a weird DB query, | like 12+ seconds to query a few hundred rows. Was pretty much | told if we didn't figure it out today it doesn't matter, | we'll ship it like that. | eatonphil wrote: | I've had the idea for a while to start a club to read through | open source projects, compile them, extend them, note | architectures and design decisions, look at documentation and | CI/testing organization, etc. | | Do something like one project per month with one topic among the | above per week. Haven't found the right group of folks to | experiment on with this yet. | | Edit: Send me an email if you'd like and I'll think about hosting | this virtually. | nandhinianand wrote: | Me too.. I've not found the trigger to keep doing it on my | own.. So a group might work.. | mathieubordere wrote: | email sent! | Jarwain wrote: | Sounds like fun! If you end up putting this together, I'd | definitely be interested | tobylane wrote: | Are you looking for a book club like group to hop around with | or some projects eager to have you? | serial_dev wrote: | That would be really cool. Maybe live streaming the content? | [deleted] | MoroCode wrote: | This sounds really interesting ! | jooz wrote: | To understand large codebases is my biggest weakness. I would | be definitively interested. | di1eep wrote: | Very much interested. Email sent. | phkahler wrote: | Do it yourself on youtube. Have a patreon page. Go over the | code yourself to get your impressions and then interview the | main contributors about the project. | | Done right I think that may go somewhere. | danbmil99 wrote: | I would definitely subscribe | Cognitron wrote: | Same | dwoot wrote: | samesies | dzink wrote: | I'd love to join as well. Email sent. | iandinwoodie wrote: | I'm interested; email sent! | jcranmer wrote: | On a similar note, I've thought about putting together a | presentation on debugging and understanding large codebases by | fixing a bug on a large project whose source code I've | literally never seen before. I figure that by picking a | codebase I have 0 experience with, there's less risk of | skipping over steps. | | The biggest hurdle for me has been actually finding a project | I'm interested in where I haven't yet gone poking around the | source code for some reason or another. | eatonphil wrote: | Yeah, I've also been interested in writing more about | orienting yourself in novel codebases. I don't think it's | explored very much. | | It's a pain to write about because you have to find some | contrived error (real or not) in a contrived app. I've got a | draft of a post but without the examples filled in. | | Would like to read (and share) what you've got. | monksy wrote: | It's not explored very much because most new developers try | to push for greenfield development and they're trying to | split everything up even when it doesn't need it. | | Now we're having multiples of codebases to comb through. | spirobel wrote: | me too. I actually did this with the discourse.org codebase. I | can make a youtube video about it if someone is interested. I | spent over a year digging into it. | EGreg wrote: | Ooh can you do ours? It's a fair bit more complex mand | general-purpose than Discourse, though. | | Would be great to see your impressions as you dig into it and | maybe record yourself on youtube. Any way I can be of | assistance, let me know. | | https://github.com/Qbix/Platform | farias0 wrote: | I'm definitely interested! | badrchoubai wrote: | I'm interested in this | faustocarva wrote: | Sure i'm also interested | sali0 wrote: | Very interested, would love to be a part of this. | dang wrote: | If curious see also | | 2019 https://news.ycombinator.com/item?id=20731206 | | 2015 https://news.ycombinator.com/item?id=9418788 | | 2013 https://news.ycombinator.com/item?id=6404929 | | 2013 https://news.ycombinator.com/item?id=6613748 | | 2011 https://news.ycombinator.com/item?id=2904425 | | 2011 https://news.ycombinator.com/item?id=2598643 | | 2011 (a bit) https://news.ycombinator.com/item?id=2578071 | | There have been many other submissions | (https://news.ycombinator.com/from?site=aosabook.org), but those | seem to be the nontrivial threads about the book itself. | amelius wrote: | I'd like to see Kicad, Freecad and Inkscape covered. ___________________________________________________________________ (page generated 2020-08-31 23:00 UTC)