Tom>Главное запомнить и заучить наизусть, что плохо документированный код никому не нужен. Хороший стиль программирования и именования позволяет программе быть самодокументированной. Так же стиль комментариев желательно делать таким, что бы их могли поднимать программы автоматической генерации документации типа doxygen.
заучить наизусть — будем знать. Парнишка алгоритм свой выложил, а вы нотации изволите читать. А меня Сям никто не учил, а я по чужим распечаткам учился. Рулон берешь, нарезаешь страницы и изучаешь. Почему у меня не возникали претензии к стилю. А?
На оригинальность не претендую, так что простите за банальность .
Появилась идея написать портабильный сабж, с применением полета програмистской мысли, а именно разделения "данные-представление" и реализации при помощи стратегий. Хотелось бы услышать доводы за и против, со следующих точек зрения : проектирования, реализации, понятности, простоты
Используется все это хозяйство следующим образом:
//test.cpp#include"conf.h"#include <iostream>
int main(){
Conf conf("test.cfg");
//загрузка данных
conf.load();
//вывод в std::cout
conf.show();
//читалка
std::string val = conf.get_string("Test section", "testName");
std::cout << val << endl;
//писАлка
conf.put_string("test1", "12", "12");
//сохранялка
conf.save();
//возвращалка :) return 0;
}
А вот собственно и мои потуги:
ConfCfgView — стратегия представления
ConfImpl<typename View> — шаблон, отвечающий за данные, представляемые в View
Здравствуйте, Tom, Вы писали:
Tom>допустим посмотрим на это
<skip> Tom>я бы оформил так Tom>
Tom>/*
Tom> * Описание функции
Tom> */
Tom>static void write(std::ofstream &os, //описание параметра
Tom> bool write_sect, //..
Tom> const std::string §, //..
Tom> const std::string &name, //..
Tom> const std::string &val) //описание параметра
Tom>{
Tom> if (write_sect)
Tom> os << '[' << sect << ']' << std::endl;
Tom> //рекомендуется вставлять пустую строку после и до if
Tom> os << name << "=" << val << std::endl;
Tom>}
Tom>
Мои 2 цента.
1. чем вставлять пустую строку после if, проще и правильнее всегда обрамлять if в {}
2. чем стараться подогнать начало второго параметра так, чтобы он начинался после названия функции на предыдущей строке, проще и более обще будет всегда отступать фиксированное количество tab'ов от начала, т.е.
не
Здравствуйте, Tom, Вы писали:
Tom>Поставил нолик за стилистику кода
Спасибо за отклик, но хотелось бы более потробно узнать, что ты подразумеваешь под стилистикой кода(отступы, и т.д. ?). Если можно, хотелось бы увидеть несколько примеров "хорошой" и "плохой" стилистики кода. Хотелось бы услышать предложения(рекомендации) по улучшению кода на примере моего предыдущего постинга. Заранее — спасибо
Re[3]: [Pure С++] портабильная читалка-писАлка INI
static void write(std::ofstream &os, bool write_sect, const std::string §,
const std::string &name, const std::string &val){
if (write_sect)
os << '[' << sect << ']' << std::endl;
os << name << "=" << val << std::endl;
}
я бы оформил так
/*
* Описание функции
*/static void write(std::ofstream &os, //описание параметраbool write_sect, //..const std::string §, //..const std::string &name, //..const std::string &val) //описание параметра
{
if (write_sect)
os << '[' << sect << ']' << std::endl;
//рекомендуется вставлять пустую строку после и до if
os << name << "=" << val << std::endl;
}
Главное запомнить и заучить наизусть, что плохо документированный код никому не нужен. Хороший стиль программирования и именования позволяет программе быть самодокументированной. Так же стиль комментариев желательно делать таким, что бы их могли поднимать программы автоматической генерации документации типа doxygen.
... << RSDN@Home 1.0 beta 6a >>
Народная мудрось
всем все никому ничего(с).
Re[4]: [Pure С++] портабильная читалка-писАлка INI
Здравствуйте, Tom, Вы писали:
Tom>Главное запомнить и заучить наизусть, что плохо документированный код никому не нужен. Хороший стиль программирования и именования позволяет программе быть самодокументированной. Так же стиль комментариев желательно делать таким, что бы их могли поднимать программы автоматической генерации документации типа doxygen.
Спасибо, приму на вооружение
Re[5]: [Pure С++] портабильная читалка-писАлка INI
Здравствуйте, peterbes, Вы писали:
P>заучить наизусть — будем знать. Парнишка алгоритм свой выложил, а вы нотации изволите читать.
Ну 0 это лишка. А вот обьяснения почему его стиль плохой справедливы. P>А меня Сям никто не учил, а я по чужим распечаткам учился. Рулон берешь, нарезаешь страницы и изучаешь.
Меня тоже. Тем не мение мне оформление не понравилось. P>Почему у меня не возникали претензии к стилю. А?
Могу только догадываться.
... << RSDN@Home 1.0 beta 5 >>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[6]: [Pure С++] портабильная читалка-писАлка INI
Здравствуйте, WolfHound, Вы писали:
P>А меня Сям никто не учил, а я по чужим распечаткам учился. Рулон берешь, нарезаешь страницы и изучаешь. WH>Меня тоже. Тем не мение мне оформление не понравилось.
Честно говоря меня больше инетересовало:
-"правильность" выделения стратегии
-"правильность" выбора std::set(вместо того же std::map, или скажем сортированного вектора или списка)
-"правильность" самого дизайна в целом и мысли участников форума на эту тему
Хотя может моя "стилистика кода" отбила все желание вникать в код
Re[7]: [Pure С++] портабильная читалка-писАлка INI