Pull to refresh
0
0
Aleksey Dalekin @nikel

Software Engineer

Send message
Web Scalability for Startup Engineers
Приложение выглядит очень круто. Если появится поддержка конференций jabber, тут же перейду на «Рамблер-Контакты».
Небольшое дополнение к симптому №3.

В свое время Фредерик Брукс писал об эффекте второй системы. Суть эффекта в том, что проектировщик в силу отсутствия опыта или времени накапливает идеи и решения в одном проекте, а потом выплескивает все это безобразие в другом/новом проекте.

Подобную тенденцию можно наблюдать не только у архитекторов, но и у рядовых разработчиков, который бросаются на проект с мыслью «В прошлый раз у меня не было такой свободы. А вот сейчас я все сделаю правильно!».

Лечить эту болезнь можно мягко, в бесконечных дискуссиях воспитывая в человеке внутреннюю дисциплину, или жестко, продавливая стратегические решения.
От требования неинвазивности избавиться нельзя в принципе. Если модульный тест не способен обеспечить неизменяемые условия проверки, то зачем он нужен?

Что касается mock'ов, то я вовсе не призываю использовать их везде и повсюду. Можно конечно и без них, если требуется покрыть тестами только успешные сценарии.

Если требуется достичь максимального покрытия и моделировать стрессовые ситуации для различных участков кода, то здесь без mock'ов не обойтись.

Сам я уже не помню, когда использовал googletest отдельно от googlemock.
Вам спасибо за краткую и содержательную статью.
hoxnox, очень жаль, что обошли вниманием такую не очевидную вещь, как флаги.
Сам по себе Google C++ Testing Framework мало полезен. Если принять во внимание тот факт, что модульные тесты должны быть неинвазивными (т.е. никаких необратимых изменений среды); то его сфера применения окажется очень узкой.

Я бы посмотрел сразу в сторону Google C++ Mocking Framework, который уже включает в себя googletest.
Прежде чем рассматривать аналоги, нужно определиться с требованиями к библиотекам логирования. Для одного из своих высоконагруженных проектов я выбирал между:

* Pantheios
* ACE
* google-glog
* Boost.Log by Andrey Semashev
* Boost.Logging by John Torjo
* log4cplus
* log4cpp
* log4cxx

Вдаваться в специфику проекта не буду. Скажу лишь, что выбор пал на lo4cplus в силу его размеров, отсутствия внешних зависимостей и использования критический секций для Windows.

Pantheios не стали использовать из-за отсутствия поддержки rolling files (на тот момент ее еще не было) и зависимости от STLSoft STL.

И, если автор возьмется за сравнительный анализ логгеров, отдельно хотелось бы выделить google-glog. Его CHECK-макросы — это нечто.
Расширение невозможно деинсталлировать (кнопка Uninstall отсутствует), но удаление этих файлов срабатывает нормально.

Вероятно расширение устанавливается через реестр. Чтобы его (расширение) деинсталлировать, достаточно удалить соответствующий ключ HKCU или HKLM \Software\Mozilla\Firefox\Extensions\<Microsoft Extension ID>. Идентификатор можно определить по значению ключа, которое указывает на расположение расширения.

alizar, добавьте, пожалуйста, этот метод в качестве альтернативы удалению файлов.
Очень актуальная (во всяком случае для меня) статья. Огромное спасибо.
P. S. Поправьте пожалуйста опечатку в заголовоке — дефис «из-за».
>… я задумался насколько распространены эти ошибки, и можем ли мы их категоризировать. Я попадался в каждую из этих ловушек хотя бы раз — в некоторые по нескольку, видел те же ошибки у других.

Начинали писать о «ментальных ловушках»…

> Вот она, моя карьера программиста как она есть.

… закончили этапами карьерного роста.

Даже не знаю, как оценить статью: забавная с точки зрения «ментальных ловушек» или совершенно плоская с точки зрения анализа эволюции разработчика?
Интересно, если речь пойдет о защите авторских прав, большинство зараженных пользователей окажутся вне закона? :)
Да, конечно. В результате имеем код, который работает на Java VM или .NET, как я понял. Кому что нравится)
Прошу прощения.. был невнимателен :) Однако принцип тот же..
Своим комментарием я хотел сказать "Хочу не только платформу, но и среду разработки" :) Еще раз прощу прощения :)
Но позвольте, уважаемый.. Ведь для Microsoft Windows приведенные являются ничем иным, как встраиваемыми объектами (ActiveX). Т.е. по сути desktop решением. И тот факт, что они встраиваются в браузер, еще не делает эти решения революционными.

Первое, что пришло на ум, - Microsoft .NET с их Silverlight, ASP.NET, XAML и собственно desktopным решением для ОС Windows. Да не забросают меня камнями ненавистники Microsoft, но на мой взгляд это действительно решение, если не стирающее, то размывающее границы между Web и Desktop.

В решениях Google я не силен, но у них тоже что-то такое есть... Просветите пожалуйста. :)

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity