Google suggests you to put the initially needed (above-the-fold) CSS inline and load the rest of the CSS when the page load is ready. See here.
Same goes for the javascript. Include the "must have code" inline and load the "nice to have code" on page load as suggested here
Idea is to load what the user sees first as fast as possible.
Personally I find it hard to follow as it would split the code and makes maintaining it harder. Makes sense for large projects though…
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…