Hi
To know best practices for AEM components :-
Link:- https://helpx.adobe.com/experience-manager/using/best-practices-cq-component-design.html
Link:- http://antonyh.co.uk/2012/01/cq5-best-practices-for-component-development-html/
Apart from the above mentioned reference links, please find a article which might help you better understand the concepts :-
Link:- http://www.aemcq5tutorials.com/tutorials/sightly-new-features-vs-jsp-aem/
Advantages of using Sightly
Below advantages of using Sightly make you to code sightly easier and faster :
Lightweight – No dependencies, fast and lean.
Secure – Automatic contextual XSS protection and URL externalization.
Code-less – Enforce separation of concerns between logic and markup.
Powerful – Straight-forward API for logic, allowing to do virtually anything.
Intuitive – Clear, simple & restricted feature set
Difference between Sightly vs JSP
Sightly Offers below advantages over JSP for better development in AEM :
Protection against cross-side scripting injection.
Easily development of AEM Projects by front-end developers.
Flexible and powerful templating and logic binding features.
Strong connection to Sling use case. Slightly only Supports HTML5.
Using sightly components development becomes a part of Web Developer instead of a java developer.
Need to write less code in Sightly thus productivity increases.
Wider range of implicit objects as compared to JSP.
I hope this would help you.
Thanks and Regards
Kautuk Sahni