3 ms·
AS a former software developer here is what worked for me: * Measure things. You really have no idea how slow you are unless you have data to compare against.
by austin-cheney 2y ago
AS a former software developer here is what worked for me:
* Measure things. You really have no idea how slow you are unless you have data to compare against.
* Test automation. If you have good test automation in place you are free to take wild chances on improvements because the risks to regression are very low. If you have no idea what you are breaking when working on a new feature you are wrong on many levels.
* Total Cost of Ownership. Combine the prior two bullet points and realize that slow software steals moments of your life in little pieces. You should be completely OCD about software performance. When software takes less time to execute it takes less time to test, which means you can test more frequently. If you can run all your E2E tests in under two minutes your approach to architecture and risk evaluation wildly changes in ways you cannot imagine.
* Be Critical. In my time writing software I have seen many people do stupid costly things frequently out of social conformance, perceptions of easiness, and cowardice. Don't be a coward. Ask tough questions both to yourself and others. Frequently ask yourself why the fuck am I doing this? If you cannot receive an absolutely amazing (primitive, but with evidence) answer to that question alarms should be screaming in your head. If you work in an office full of stupid I would raise some concerns or look for work elsewhere.
That last bullet point is why I no longer program for money. There are too many cowards writing JavaScript. If you cannot even vocalize devastating concerns without becoming a pariah its time to do something else in life.
- gaws 2y ago> Measure things. You really have no idea how slow you are unless you have data to compare against. Can you share some examples?
- austin-cheney 2y agoTest automation helps with this. When I wrote a test automation application I had each step output the time difference since the application started and I could look at the difference between steps to see something was taking too long. Now, keep in mind your test automation application cannot limited in performance to the thing it is testing. Nonetheless I was still able to get to about 300 tests in 8 seconds. I would also recommend a perf tool that measures performance of a given operation as number of operations per second. Also measure transmission speed. In HTTP that is easily measured as HTTP round trip, but I am bigger fan of WebSocket which requires some amount of tooling to really master. Here is something I wrote about performance measuring just before I stopped doing JS work: https://github.com/prettydiff/wisdom/blob/master/performance_frontend.md https://github.com/prettydiff/wisdom/blob/master/performance...