6 ms·
Nginx and Git. Nginx has a lot of respect on the market for handling high concurrency as well as exhibiting high performance and efficiency. I don't even have
by elorm 9y ago
Nginx and Git.
Nginx has a lot of respect on the market for handling high concurrency as well as exhibiting high performance and efficiency.
I don't even have to speak about the Git architecture. It speaks plainly for itself.
There's a series of books called The Architecture of Open Source Applications that does justice to this topic
http://aosabook.org/en/index.html http://aosabook.org/en/index.html
- tinco 9y agoNginx was the first C code base I've read that was well written besides being well architected. Now I would never recommend anyone to write C, but if you really want to know what it's supposed to look like take a look at Nginx.
- _pmf_ 9y ago> Nginx was the first C code base I've read that was well written besides being well architected. PostgreSQL is also extremely nice.
- iheartmemcache 9y agoAdmittedly, SQLite has to do a lot less than Postgres, but I'll throw their hat in the ring if only for the rigor with which they test their code-base[1]. My visceral, completely irrational original gut reaction to that page was "meh, they're likely just generating the set of all permutations where on likely-injectable strings-- no formal verification, no care". Thankfully, I went for a coffee, came back and the tab was still open for a more complete read. I've worked on tons of projects in my career -- from healthcare to finance, large insurance companies and defense. I really think SQLite is definitive case study on how to test your code-base in a "meaningful" (where "meaningless" would be generating the aforementioned permutations) manner. As new methods of testing emerge, they expand the scope of their coverage as well (i.e., AFL and other fuzzing techniques which emerged circa 2014). Hats off to their team for the discipline. If I ever need someone to manage taking a pacemaker to production, I'd hire whoever was in charge of their testing, give them access to Fidelity Payroll, hand them the p-card, and tell them "whatever you need, it's yours, buddy". [1] https://sqlite.org/testing.html https://sqlite.org/testing.html
- sagebird 9y agoAre you aware that you comment contains of bit a bragging that might distract people being able to focus on the content?
- MoOmer 9y agoTo me, being generous with the interpretation, it read as the author providing some context into their experience with what many think should be well tested systems, not bragging.
- deleted 9y ago[deleted]
- mlvljr 9y agoThe fact that (at least Portable Windows version of) Git fails to clone a repo while another clone is in process, giving a cryptic message about lack of server password (or smth like that) also speaks some about the quality of Git architecture :)
- darkmagnus 9y agoThat is a great link! Thanks!
- scarface74 9y agoI love git, but the learning curve seems very high for the unititiated. Git seems to work best as the assembly language of source control for a lot of people. It's okay as long as you put a nice GUI on top of it. Even though I'm pretty comfortable with git thanks to attending a two day workshop conducted by a guy from Github, I still like using tortoise git.
- Mouse47 9y agoYeah -- I use sourcetree almost exclusively. Why would I want to type 'git status' and then 'git diff long/path/to/my/file.txt' when I could just click on the file in the changes list?
- debaserab2 9y agoBecause it's possible to be much faster on the command line than you'll ever be clicking around on a GUI.
- Mouse47 9y agoMaybe in the general case, but not in the scenario I outlined above. What if there are 20 files I touched? I'll need to type each of the 20 paths to view each individual diff. And that's if I view each diff only once, which I don't typically do. I understand the value of being familiar with your tools, but sometimes the CLI just isn't the right one. EDIT: btw, I use the vim plugins in all of my work (VS, VSCode), so I'm not shy when it comes to learning curves.
- whorleater 9y ago>git diff Gets all the differences between your current unstaged changes vs your head, no need for typing 20 individual paths
- Mouse47 9y agoGood to know, although I'm still not impressed with its presentation when doing larger diffs.
- rajatkhanduja 9y agoGit is one of my favorite tools of all times. Not only has it been a time and life saver in my coding projects, it has also helped me out in other aspects - keeping versions of documents. Once, at work, I created a script that would take regular git 'snapshots' of all the procedures defined on a SQL Server. O'course, there could have been better code management and deployment practices in the first place, but this script let me introduce some sanity without affecting the DBAs workflows. Off-late, I have been working on a pure python implementation of Git (Calling it Pigit [1]). While, I am attempting to clone git's behavior in Python, I believe there are important lessons to be learned about the different components involved. I am also attempting to see if I can make it modular enough to have changeable 'reference' or 'object' store (instead of the file system). One use-case I can think of, off the top-of-my-head, is having an entirely in-memory repository for testing scripts or purely for pedagogical reasons. Strangely, I never thought of looking into the AOSA Book for Git! Thanks for the reference :) [1] https://github.com/rajatkhanduja/pigit https://github.com/rajatkhanduja/pigit