I recently started working for a small dev agency here, and the first item I was supposed to take over was a data scraping tool. If you don't know what that is, basically it's going through websites and targeting specific elements and grabbing the data off of them. How do you do that? Well, you can use something like Puppeteer to run an automated Chromium browser that can carry out tasks such as "navigate to this page" and "click the element with this CSS selector", etc. In this project we were grabbing XHR responses from the server (if you open your browser dev tools, go to 'network' and click 'XHR' you can see requests and responses, their headers, etc) and then saving the JSON in the responses to our database (a SQL database). Puppeteer has a handy method that places a listener for requests or responses. So any time the browser receives a response it would fire off a callback. It was within this callback that I had an async func
Today we have dev teams that can number in the hundreds, some working from different countries remotely, all working on a single code base; making changes sometimes in the same file. Could you imagine passing around a thumb drive with your changes? Or constantly having to plug in new changes? Or someone deleting a critical file? Or changing some very complex code, forcing the team to go back in and do the same work all over again? What a nightmare. Enter version control. Version control software allows us to have many different people working on the same files very easily. It gives us the ability to put our changes into the code base (pushing or merging/pulling) easily, get updates and changes that others have made (pull or fetch), and allows us to make copies of the entire code base to work on instead of working on the "master" code. As an aside, Git is not the only version control software, but it is the only one I've used, and it is the only one I am