Pull to refresh
  • by relevance
  • by date
  • by rating

Почему using namespace std; это плохо

Programming *Perfect code *C++ *Compilers *
Translation

То, что написано ниже, для многих квалифицированных C++ разработчиков будет прекрасно известной и очевидной вещью, но тем не менее, я периодически встречаю using namespace std; в коде различных проектов, а недавно в нашумевшей статье про впечатления от высшего образования было упомянуто, что студентов так учат писать код в вузах, поэтому давайте повторим очевидное еще раз.

Итак... многие слышали, что using namespace std; в C++ считается плохой практикой. Касательно недопустимости использования using namespace в header-файлах вопросов обычно не возникает, если мы хоть немного понимаем, как работает препроцессор компилятора: .hpp-файлы при использовании директивы #include вставляются в код "как есть", и соответственно using автоматически распространится на все затронутые .hpp- и .cpp-файлы, если файл с ним был заинклюден хоть в одном звене цепочки (на одном из сайтов это метко обозвали как "заболевание, передающеемя половым путем"). Но вот про .cpp-файлы все не так очевидно, так что давайте еще раз разберем, что же именно здесь не так.

Читать далее
Total votes 24: ↑20 and ↓4 +16
Views 5K
Comments 12

Повышение качества javascript кода. JSLint

JavaScript *

Случилось так, что в последнее время мне пришлось читать и рефакторить очень много ужасного javascript-кода. Работа с таким кодом стоит очень многих нервов при сопровождении, да и писать/отлаживать такой код не приятно. Мысли о том, что заставляет людей писать плохой код и как с этим можно бороться заставили меня писать эту статью. Не претендую на сколь-нибудь полное раскрытие темы борьбы за качество кода, хочу рассмотреть лишь некоторые аспекты, доставляющие наибольшее количество проблем. В качестве основного инструмента оптимизации качества кода предлагаю использовать JSLint, который несмотря на все плюсы, не является панацеей и может служить лишь отправной точкой для дальнейшего улучшения кода.

Всех у кого хоть раз болела голова при написании/чтении javascript кода прошу под кат.
Читать дальше →
Total votes 94: ↑90 and ↓4 +86
Views 29K
Comments 107

TDD для начинающих. Ответы на популярные вопросы

TDD *
Исходники проекта написанного с помощью TDD. Visual Studio 2008/C#
Для написания тестов использована библиотека xUnit, для создания mock-объектов – Moq.




На очередном собеседовании, спрашивая о TDD, я пришел к выводу, что даже основные идеи разработки через тесты не поняты большинством разработчиков. Я считаю, что незнание этой темы – большое упущение для любого программиста.

Мне задают много вопросов про TDD. Из этих вопрсов я выбрал ключевые и написал на них ответы. Сами вопросы вы можете найти в тексте, они выделены курсивом.
Читать дальше →
Total votes 48: ↑38 and ↓10 +28
Views 46K
Comments 65

Практический опыт создания Dojo виджетов. Оптимизация производительности Javascript кода

JavaScript *
Доброго времени суток, хабрасообщество.

Хочу поделиться с вами некоторой полезной, на мой взгляд, информацией, которой будет интересна тем, кто разрабатывает или планирует начать разрабатывать свои Dojo виджеты. Хочу сразу предупредить, что в данной статье я не буду рассказывать как поэтапно создать свой виджет Dojo (однако, если сообществу будет интересна и эта тема, я надеюсь изложить ее в отдельной статье). Вместо этого я хочу остановиться на основных моментах и принципах, которые следует знать и учитывать каждому, кто занимается разработкой Dojo виджетов или имеет какое-либо отношение к этой теме.

image

image

Читать дальше →
Total votes 13: ↑9 and ↓4 +5
Views 3.1K
Comments 5

Войти в IT, или как мы решили построить дата-центр и построили его. Часть первая

Оверсан-Меркурий corporate blog
image

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

Список требований к дата-центру у средних и крупных клиентов часто занимает несколько страниц. Но в силу разных факторов удовлетворить их полностью практически никогда не получается. Чаще всего приходится идти на компромиссы, ужиматься и ухищряться.

Наша компания занимается предоставлением услуг дата-центра и различных IT-сервисов, от проектирования кабельных систем до организации крупных закупок оборудования. Неотъемлемой частью бизнес-модели является наличие надежного дата-центра, собственного или арендованного. Основным театром наших действий выступает Москва, и здесь, казалось бы, недостатка в хороших ЦОДах быть не должно. Однако в реальности дела обстоят несколько иначе.

Читать дальше →
Total votes 80: ↑67 and ↓13 +54
Views 30K
Comments 34

Динамические формы в ASP.NET MVC

ASP *
Tutorial
Часто у пользователя требуется узнать информацию о нескольких дополнительных объектах, число которых заранее не известно. Для это используют динамические формы, поля которых создаются javascript кодом на клиентской машине. В asp.net mvc работая в связке Controller-View мы работаем с типизированными объектами. Преобразованием значений из requestа пришедшего с клиента в типизированный объект занимается класс ModelBinder. Для простых объектов это достаточно тривиальная задача. Но как правильно обработать динамические данные, имена параметров которые заранее неизвестны. Решением этой задачи и посвящен этот пост.

Читать дальше →
Total votes 34: ↑23 and ↓11 +12
Views 17K
Comments 12

JavaScript Performance Best Practices

JavaScript *

Наткнулся на интересный документ в Твиттере.

JavaScript Performance Best Practices


В заголовке указана категория WRT (Nokia Web Runtime or Widget for S60), то есть конкретная Нокиевская платформа, но, думаю, многим интересно будет почитать, возможно найдёте для себя что-то новое. Есть действительно полезные советы, но есть и вредные, особенно в свете современной разработки _под все браузеры_.
Сначала думал оформить как топик-ссылку, но под катом я обращу внимание на некоторые проблемы этой статьи. Статью прочитать стоит но ни в коем случае не относитесь к ней, как к истине в последней инстанции.

Читать дальше →
Total votes 36: ↑34 and ↓2 +32
Views 11K
Comments 32

Обзор книги Configuration Management Best Practices

Project management *
Добрейшего.

Не так давно я озадачился поиском книжек по управлению конфигурацией ПО. В результате получился обзор литературы по SCM, преимущественно англоязычной. Финалистами стали 3 книжки, которые было решено приобрести и изучить. И первой из них — как по «интересности», так и по авторитетности лично для меня — стала книга Configuration Management Best Practices: Practical Methods that Work in the Real World, написанная Бобом Айелло (Robert Aiello) в соавторстве с Лесли Сакс (Leslie Sachs). На русский название можно перевести как "Лучшие практики управления конфигурацией: практические методы, работающие в реальном мире".

Пока заказывал и дожидался — успел прочитать в электронном виде (пиратство — страшное зло!), однако потраченных денег не жалею — труд автора должен быть оплачен. Да и книжка весьма приятна внешне и внутренне. О чём же она?
Читать дальше →
Total votes 15: ↑14 and ↓1 +13
Views 2.4K
Comments 4

Масштабируемые JavaScript приложения

JavaScript *
Более месяца назад в статье FAQ по JavaScript: задавайте вопросы был задан вопрос «Подскажите примеры хорошего подхода организации JS кода к сайту на достаточно высоком уровне. Как можно узнать подробнее практики реализации например gmail?».

Пришло время ответить на данный вопрос. Я немного затянул т.к. хотел рассказать доклад на одноименную тему на Я.Субботнике. Доклад был очень коротким многие важные моменты пришлось выкинуть. Статья — более-менее полная версия.

Эта статья о том, как сделать крупное веб-приложение расширяемым и поддерживаемым: архитектура, подходы, правила.
Читать дальше →
Total votes 206: ↑202 and ↓4 +198
Views 38K
Comments 108

Best practices & иностранные заказчики

Инфопульс Украина corporate blog
Естественно, все слышали о так называемых «best practices». Сейчас это модно. Только вот почему-то упоминается это выражение не иначе как в связке с каким-то громким иностранным брендом. Такое впечатление, что «best practices» есть только у них. Несмотря на это, уже сейчас можно с уверенностью говорить, что наши компании также формируют лучшие практики в соответствующих областях.

Понятное дело, что давать рецепт мгновенного успеха мы вам не будем. При этом, считаем важным процесс обмена опытом. Многие согласятся с тем, что в работе любой организации всегда можно найти те моменты, которыми можно было бы поделиться или позаимствовать. Не исключаем то, что «открыть Америку» нам вряд ли получиться. Однако выход на диалог с читателями и обмен мнениями по теме считаем необходимым.
Читать дальше →
Total votes 5: ↑2 and ↓3 -1
Views 4.6K
Comments 1

Логирование в Java / quick start

Java *
В ходе моей работы в компании DataArt я, в числе прочего, занимаюсь менторской деятельностью. В частности это включает в себя проверку учебных заданий сделанных практикантами. В последнее время в заданиях наметилась тенденция «странного» использования логеров. Мы с коллегами решили включить в текст задания ссылку на статью с описанием java logging best practices, но оказалось, что такой статьи в которой бы просто и без лишних деталей на практике объяснялось бы как надо писать в лог на Java, вот так вот с ходу не находится.

Данная статья не содержит каких-то откровений, в ней не рассматриваются тонкости какого либо из многочисленных java logging frameworks. Здесь рассказываю как записать в лог так, чтобы это не вызвало удивления у Ваших коллег, основная цель написания включить ее в список обязательного чтения для практикантов. Если все еще интересно, читайте дальше
Читать дальше →
Total votes 42: ↑36 and ↓6 +30
Views 201K
Comments 26

Коллекции лучших писем в email-маркетинге

UniSender corporate blog
Хотите, чтобы ваши письма были на уровне лучших образцов от крупнейших брендов? Не вопрос — опыт сотен и тысяч рекламных email-кампаний доступен в интернете, и всё, что вам нужно — это внимательно его изучить и подумать над тем, как его можно применить в вашем бизнесе. В этом посте мы собрали несколько российских и зарубежных сайтов, которые предлагают подборки примеров самых интересных писем, отсортированных по различным темам. А в качестве бонуса — несколько сервисов, позволяющих создавать письма на основе готовых шаблонов.

Email-образцы


BEN — Beautiful Email Newsletters: большая коллекция коммерческих писем с красивым дизайном.



Читать дальше →
Total votes 33: ↑22 and ↓11 +11
Views 39K
Comments 5

Плохие привычки программистов

Website development *Programming *
Translation


* На днях наткнулся на интересную заметку о плохих привычках программистов. Может для кого-то это очевидные вещи, но зачастую на них не обращаешь внимания.

Наши привычки постоянно развиваются и меняются. Изменяется стиль кодирования, подход к написанию кода в целом. Обычно это хорошо, но иногда этот процесс минует некоторые плохие привычки и они надолго остаются с нами. Я хотел бы поделиться размышлениями о некоторых «не очень хороших» привычках, которые я наблюдал в себе и в других людях на протяжении многих лет. Некоторые даже могут быть не похожи на плохие…
Читать дальше →
Total votes 135: ↑113 and ↓22 +91
Views 13K
Comments 124

Используем PHP правильно

PHP *
Чуть ли не самая главная проблема в мире PHP — это огромное количество устаревшей и/или не самой лучшей информации, приводящей начинающих разработчиков в заблуждение.
Да что там, даже опытным программистам бывает тяжело выудить крупицу адекватной информации в море интернета.

Именно эту проблему пытается решить автор PHP: The Right Way.
PHP: The Right Way — это набор best practices, принятых стандартов оформления, ссылок на современные библиотеки и источники информации по PHP.

P.S. Если вы опытный программист, то примите участие, помогите начинающим!
Total votes 77: ↑64 and ↓13 +51
Views 12K
Comments 74

Ваш сайт тоже позволяет заливать всё подряд?

Information Security *PHP *
Один французский «исследователь безопасности» этим летом опубликовал невиданно много найденных им уязвимостей типа arbitrary file upload в разных «написанных на коленке», но популярных CMS и плагинах к ним. Удивительно, как беспечны бывают создатели и администраторы небольших форумов, блогов и интернет-магазинчиков. Как правило, в каталоге, куда загружаются аватары, резюме, смайлики и прочие ресурсы, которые пользователь может загружать на сайт — разрешено выполнение кода PHP; а значит, загрузка PHP-скрипта под видом картинки позволит злоумышленнику выполнять на сервере произвольный код.

Выполнение кода с правами apache — это, конечно, не полный контроль над сервером, но не стоит недооценивать открывающиеся злоумышленнику возможности: он получает полный доступ ко всем скриптам и конфигурационным файлам сайта и через них — к используемым БД; он может рассылать от вашего имени спам, захостить у вас какой-нибудь незаконный контент, тем подставив вас под абузы; может, найдя параметры привязки к платёжной системе, отрефандить все заказы и оставить вас без дохода за весь последний месяц. Обидно, правда?

Как ему это удастся?
Total votes 121: ↑102 and ↓19 +83
Views 49K
Comments 120

Модульный подход к разработке web-приложений с использованием JavaScript: AMD и RequireJS

Website development *JavaScript *
RequireJSПри разработке приложений с модульной структурой на JavaScript возникает две проблемы:
  • описание и удовлетворение зависимостей различных частей приложения, необходимость организации подключения зависимостей на серверной стороне;
  • экспорт переменных в глобальную область видимости и их коллизия.

Обе эти задачи решаются при использовании подхода Asynchronous Module Definition. Он сводится к описанию модулей функцией define и подключению их с помощью require. На данный момент есть несколько инструментов, реализующих AMD. Я начал своё знакомство с ними с RequireJS и был удивлён, насколько удобно и просто можно описывать зависимости модулей. Расскажу, как это работает, на простом примере.
Читать дальше →
Total votes 56: ↑50 and ↓6 +44
Views 154K
Comments 97

KnockoutJS: фильтрация списка с сохранением состояния

JavaScript *
Tutorial


Если вы хорошо смыслите в KnockoutJS и JavaScript не проходите мимо!, нам нужны ваши знания.

Новичок, не пропусти. В комментариях к этому посту будут советы о том, как правильно писать на KnockoutJS.

Есть: фильтрация списка с сохранением состояния фильтров в Cookie.
Ищем: Лучшие практики KnockoutJS, чтобы не плодить плохой код.

Предостережение: редко пишу статьи, из-за чего оформление страдает. Не пугайтесь. Присылайте ошибки и рекомендации по оформлению в личку. Спасибо.

Скриншот




Читать дальше →
Total votes 32: ↑23 and ↓9 +14
Views 12K
Comments 31

О портировании мобильных приложений на платформы Windows Phone и Windows 8

DevRain Solutions corporate blog Development for iOS *Development for Windows Phone *
Многие компании задумываются о разработке мобильных клиентов для своих сервисов для Windows Phone и Windows 8. В большинстве случаев мобильные клиенты для iOS/Android уже написаны и задача компании — портировать их на мобильные платформы Windows. О том, с какими вопросами / проблемами / особенностями могут столкнуться компании и разработчики мне бы хотелось поговорить в этой статье.
Сделайте также!

Самая частая постановка задачи, с которой нам приходилось сталкиваться, звучит таким образом: вот клиент для Android/iOS, сделайте так же.

Это самая распространенная ошибка, которая в долгострочной перспективе может может стоить разработчикам большой головной боли, а заказчику — непредвиденных затрат.

Читать дальше →
Total votes 31: ↑25 and ↓6 +19
Views 11K
Comments 14