2007-05-24
прикладная vs системная разработка
Большинство технологических решений базового уровня давно созданы и доступны, но желание постоянно изобретать велосипед неискоренимо в коллегах.
Понятно, что представление о том, как работает тот или иной алгоритм важно для работы, но желание все свести к математической оптимизации или решению вселенских проблем в стандартных gnu'сных утилитах удивляет.
Для того чтобы создать систему большой сложности и реальной проблематики уже более чем достаточно готовых решений. Но на собеседованиях продолжают спрашивать про физическое устройство тех кубиков, декомпозировать которые не приходится за время работы ни разу (и это никак не влияет на эффективность).
2007-02-16
долгожданный костыль к Postgresql
Надо будет пощупать и возможно это снимет все наши вопросы.
2007-02-06
Code review check-list
- Ясность
- Ясен ли код и просто ли его понимать?
- Усложнил ли программист неоправданно часть кода?
- Может ли код быть подвергнут рефакторингу для его ясности.
- Управляемость
- Будут ли другие программисты способны поддерживать этот код?
- Хорошо ли код откомментирован/документирован?
- Точность
- Решает ли код поставленную задачу?
- Если реализован алгоритм, реализован ли он корректно?
- Надежность и Устойчивость
- Устойчив ли код к проблемам? Устойчив ли он к ошибкам?
- Способен ли он обрабатывать предельные условия и плохой ввод?
- Способен ли он корректно аварийно завершаться при возникновении неожиданных условий?
- Безопасность
- Подвержен ли этот код рискам неавторизованного доступа, неправильного использования и модификации?
- Масштабируемость
- Может ли этот код быть «иголочным ушком» препятствующим устойчивости системы при росте нагрузки, данных, пользователей и ввода данных?
- Повторное использование
- Может ли код быть повторно использован в других модулях и системах?
- Можно ли его сделать более общим?
- Эффективность
- Может ли этот код более эффективно использовать системные ресурсы?
- Может ли он быть оптимизирован?
Завтра думаю пройтись по коду ничего не подозревающих программистов. Боюсь, правда, что будет 2 из 16 :)
к вопросу о менеджменте
Не побежит капитан тушить пожар в машинном отделении. Не пойдет он затыкать пробоину в днище. Но знать обо всем этом, увязать, соотнести, выделить главное, оценить, принять решение и дать главную, решающую команду исполнителю, который лучше умеет и должен справиться, — вот роль капитана.
И в любом случае капитан воздушного судна обязан быть личностью, умеющей оценить обстановку — и не только в воздухе, — взять на себя ответственность и известный риск, принять решение, дать команду, проконтролировать ее, исправить руками, если подчиненный ошибся, — и решить задачу так, чтобы люди, сидящие за его спиной, ничего не почувствовали, кроме восхищения.
Командир экипажа должен организовать его работу. По возможности так, чтобы эта работа вызывала у экипажа, скажем, чувство удовлетворения.
© Василий Васильевич Ершов. Раздумья ездового пса
Очень близко к требованиям выдвигаемым к IT-менеджеру. Правда вот беда, не всегда господа it-менеджеры это понимают.