Is there any principle about using "edge loop" when building a model? I'm trying to build a laptop this time, and edge loops disturbed me somehow. 


Edge loops will create "useless" verticies and edges at the position where I don't need them. Should I remove them with "dissolve verticies/edges"？
Sometimes when I want to keep the edge sharp with edge loop tools, the curve corner that should be maintained is also affected, turning into a slightly sharp curve that I'm not expecting.
An extra question. How can I build up the keyboard? By generating edge loops according to the key position and the gap between keys? (Some efforts in the 1st pic)





I'm still learning to build something and I'm not sure when I should use edge loops and when not, or how edge loops should be applied. I'm hearing!
There are so many ways to solve this depending on your end need. I think it's important to be pragmatic about how you spend your time modelling. If it looks good then it is good. Simpler topology can make it easier and faster to model and also quicker to render. Model much, do many misstakes and learn from them.