Coding style
29/6/05 12:38Обсуждали тут несостоявшийся местный coding style standard.
Я задумался - а что такое coding style? В чём состоит стиль?
Вот что надумалось:
Программа должна быть максимально читабельной, как хороший текст. Хорошая книга - это та, из которой нечего убавить, а не та, в которую нечего добавить (чьё же это?). Словам должно быть тесно, а мыслям просторно (Державин?). Из этого следует:
Ваши замечания?
Я задумался - а что такое coding style? В чём состоит стиль?
Вот что надумалось:
Программа должна быть максимально читабельной, как хороший текст. Хорошая книга - это та, из которой нечего убавить, а не та, в которую нечего добавить (чьё же это?). Словам должно быть тесно, а мыслям просторно (Державин?). Из этого следует:
- Имя сущности - переменной, функции, класса - должно отражать её цель.
- У одной сущности - одна легко понимаемая цель. Следовательно: one function does exactly one thing, class name clearly states its responsibility, именование пакетов и namespaces.
- Код должен быть максимально краток. В идеале - скажите по-русски то, что делает функция, и запишите то же самое в тех же словах, но используя конструкции языка программирования, без лишних обвязочных элементов (разрешим смартпойнтеры и прочие resource guards). Код, функциональность, данные не дублируются. Scope переменной минимален.
- Код должен быть написан красиво И предсказуемо. Отсюда - единообразие форматирования. Matching bracket должна легко находиться взглядом.
- Краткость и надёжность: Every variable should be initialized at declaration time.
- предсказуемость: Pointers to the unallocated memory must be initialized by NULL. После delete указателю обязательно присваивается NULL.
- API должно быть полным и не давать лишней возможности ошибиться. Поэтому: везде, где можно, пишем const; пользуемся исключениями, а Java в смысле checked exceptions - зе бест;
Ваши замечания?
Tags:
(no subject)
30/6/05 04:26 (UTC)Испортить можно всё, что угодно :) Но если бросать в API классифицированные checked exceptions, то у пользователя API будет меньше возможностей ошибиться.