Вот несколько статей о константе по сравнению с макросами по сравнению с перечислениями:
Символьные константы
Константы Перечисления по сравнению с Постоянными Объектами
я думаю, что необходимо избежать макросов тем более, что Вы написали большую часть своего нового кода, находится в современном C++.
I have started with Getting Started with Erlang. Nice round-up about basic language characteristics and concurrency model. Also quite good paper is A History of Erlang, because I like to explore what roots language has.
I'm currently interested in CouchDB, so I started with going through its source. It might not be good for start, but I'm curious how it works.
eTap на самом деле является хорошим обзором некоторых основных концепций, но не слишком сложным для понимания. У него есть служба, которая отправляет сообщения, выводит отформатированные данные и делает интересные вещи.
Если вы хотите научиться делать одноразовые пароли, то лучшим вариантом, вероятно, будет MochiWeb . Он немного более продвинутый, но он имеет полную настройку OTP с supervisors / gen_servers и может быть хорошим обзором того, как настраивается общая система OTP.
Я думаю, что следующий учебник имеет вполне реалистичное применение после практики OTP.
Быстрый веб-сервер, демонстрирующий некоторые недокументированные функции Erlang
Но я могу быть предвзятым, поскольку продолжаю работу над это для удовлетворения моих реальных потребностей, проект называется «iserve». Но другие люди использовали его в качестве учебного материала, см. pokingarounderlang on iserve .
Вы видели страницу http://beebole.com/erlang ?
Она содержит:
как настроить среду Erlang (с Mochiweb) на Ubuntu
как установить веб-сервер Nginx
видеоурок по созданию небольшого веб-приложения с использованием Erlang
У меня есть совет относительно пункта 3 (общий дизайн API):
Начало создания вашего API на конкретных сценариях использования ; Сделайте свой дизайн конкретным, а не общим. Затем сделайте обобщение позже , если вы обнаружите, что API можно использовать повторно.
В прошлом я видел, как API-интерфейсы были отредактированы до такой степени, что они стали настолько универсальными, что одним из параметров метода является объект «Параметры» или, что еще хуже, дерево DOM, соответствующее произвольной части XML; например,
void processData(Parameters reportParams);
С этим универсальным подходом: