53 karma · joined May 19, 2016
Kind of a rant and off topic, but I think it's the bees knees and it's ace for clojure / common lisp / javascript / flow / anything else.
Reading this gives me immediate anxiety. I have times during the day where just seeing things and being alive is almost unreal, like I can't deal with, and the thought of doing this for N number of years more is overwhelming. As I'm getting older life is just even more surreal, I sometimes wonder if I have the mental fortitude to make it to old age. This isn't a cry for help, you just touched a nerve with that sentence.
The company that I joined was using Ember, but their app was more of an analytic dashboard and it didn't really have more than a handful of routes. the amount of views and logic and state that lived on each route / controller was insane. Also, between the few routes you really needed to share state and things got very messy. I'm still with the company today, and the app's routing is still controlled by ember, but we have switched entirely to react + redux and are a lot closer to being off ember completely.
The real boon for us has been the single source of truth and the connect function from react-redux. Basically any component can just declare the data it relies on via store query functions e.g. getLabelsForUser(state, userId), which breaks you free from the uber painful process of passing properties down the entire view tree to child nodes.
I also got a lot better at developing when I started developing for react, because I was no longer writing framework code, I was writing and utilizing my own functions and abstractions.
I'm not saying ember is inferior, but of course there are trade offs to both. I absolutely love yehuda and tom, they are so prolific, but I would be interested in seeing how ember apps fair when there are only a couple of routes but a ton of view logic and state; where does the state live and how is it coordinated. How do you coordinate data across the app hierarchy? Asking because I really failed at that 2 years ago and ended up with a mess, it definitely felt like uncharted territory. Would totally accept developer error.
Add cellular support and I'll gladly toss my smartphone, which I don't use anyway. I've always just needed a laptop, I'm terrible with touch screens, very painful to use. I would carry this around and have a smart watch for basic text / calling, gps
- Only use cascading for global theme styles, like type faces
- Don't nest rules with sass or w/e, it's too hard to know what's affecting what in a template
- Naming conventions: Prefix every component class with the titlecased version of the name, have one css file per component that's of the same name. This makes it easy to know where to look for styles when you're working in a template. e.g. styles/header.css would contain:
- .Header-container .Header-link .Header-title--hover .Header-image