понедельник, 19 ноября 2007 г.

Team Meeting #5

18 ноября в Сумах прошел очередной (#5) семинар разработчиков Team Meeting.

Первый доклад был посвящен системы мониторинга Cacti. Докладчик, Андрей Бородийчук (Dre), поделился опытом применения данной системы и рассказал, какие возможности предоставляет Cacti для системных администраторов.

Второй доклад был незапланированным. Артём Волк (ArtVolk) в перерыве рассказал о создании wap-сайтов. Слушатели услышали, что такое wap 1.3 и wap 2, в чем разница между ними, какие преимущества и недостатки, как отлаживать созданные сайты и какие особенности украинских мобильных операторов.

Самая интересная часть семинара - диалог при помощи Skype с Александром Соловьем - украинским разработчиком, живущим в США. Он немного рассказал, чем вообще там занимается, а потом большую часть времени отвечал на вопросы. Александр работает в компании, которая разрабатывает высоконагруженные масштабируемые веб-системы. Вот наиболее интересные для меня моменты этого диалога, касаемые его работы:

  • упор делается не на технологии, а на опыт и квалификацию программистов; PostreSql и perl используются только из тех соображений, что был опыт работы с ними;
  • чем проще код, тем надежнее работает;
  • нет тестировщиков, юнит тестов и регрессионных тестов, но есть code review;
  • аутсорсинг и работа из дому не есть гуд;
  • политика компании не предумматривает работу в компании программистов из Индии :)
  • и еще много интересного...

2 комментария:

Yuriy Volkov комментирует...

про индийских кодеров - зачет ;-)

sash_ko комментирует...

По словам Александра Соловьева, работать с индусами можно, НО, нужно писать очень подробное техзадание и постоянно контролировать, в противном случае они сделают, но не то, что от них требуется :)

Самому постоянно приходиться сталкиваться с индийским legacy кодом. Очень удивляет, что они принципиально не хотят освобождать выделенную память, не имеют понятия о константных методах, смело добавляют функции в базовые классы что бы исправить ошибку в пятом поколении наследования (поэтому 50-100 вируальных функций в одном классе, половина из которых решает проблемы конкретных реализаций в n-ном поколении, для них это как "с куста"), смело создают функции типа:
void updateDbRecord(const RWCString tableName, const RWCString& dbFunc, RWCString valueName); и это токо вершина айсберга...