29/6/05

singalen: (Default)
7-zip хорош. Особенно после того, как прочёл, как рекомендуется встроить его в Far. Потому что подключение через custom.ini не работало... Правда, встраивается он не через MultiArc, а сам по себе, плагином первого уровня. Интересно, почему. Может, ради производительности, или, скорее, чтобы перехватить на себя функции MultiArc.
У плагина настроек почти нет, а жалко. Хотелось бы видеть привычный комманд-лайновый вывод архиватора, чтобы знать, что он не помер, а чего-то делает.
Закончилась evaluation на WinOrganizer 2.8. Бета 3.0: а) сначала рухнула, б) не начинает evaluation заново в) не синхронизируется с мобилкой, а только с PDA. А жалко. Что бы с ним сделать...
Свалю-ка я сюда список всего моего любимого софта. )
singalen: (Default)
Этот человек - [livejournal.com profile] ms_destiny - это что-то.
singalen: (Default)
Обсуждали тут несостоявшийся местный coding style standard.
Я задумался - а что такое 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 - зе бест;

Ваши замечания?
singalen: (Default)
Чуть не поспорил на сто баксов, что напишу компилятор C++, полностью соответствующий стандарту - насколько это позволяют противоречия самого стандарта. А так весело было бы... :)