Recently, I have found a CV template class here in GitHub
In the file awesome-cv.cls, there are some definitions confuse me, like:
% Define writer's name
% Usage: \name{<firstname>}{<lastname>}
% Usage: \firstname{<firstname>}
% Usage: \lastname{<lastname>}
% Usage: \familyname{<familyname>}
\newcommand*{\name}[2]{\def\@firstname{#1}\def\@lastname{#2}}
\newcommand*{\firstname}[1]{\def\@firstname{#1}}
\newcommand*{\lastname}[1]{\def\@lastname{#1}}
\newcommand*{\familyname}[1]{\def\@lastname{#1}}
\def\@familyname{\@lastname}
Can anyone explain to me why @ symbol is used here?
updates
I found something in Minutes in Less Than Hours, which might help.

Xinstead of@(which would work) would you have asked whyXwas being used?@may look different to other letters to a human but (in a class file) they look the same to latex. – David Carlisle Jul 17 '19 at 08:27