Рубрика «Программирование» - 949

Предисловие переводчика

Десять лет назад появилась первая редакция High Integrity C++ Coding Standard. К тому времени С++ был уже пять лет как стандартизирован ISO и почти двадцать лет использовался в индустрии. Это был соверешенно взрослый язык с широким сообществом профессиональных и не только разработчиков. Сообщество это накопило достаточно анекдотов про расстрелянные ноги, чтобы в нем созрела идея о создании стандарта ограничений — перечня того, чего в языке делать не следует.

К тому времени уже существовали подобные стандарты, но они как правило были закрыты и малоизвестны. HICPP, изданный компанией Programming Research Ltd, стал первым открытым стандартом высококачественного программирования на языке С++. Чуть позже к нему присоединились JSF AV C++, открытый компанией Локхид-Мартин и MISRA-C++:2008 Американской ассоциации надежности автомобильной индустрии. Из этой тройки HICPP остается наиболее популярным среди широкой публики.

Конструктивно HICPP — это примерно две сотни правил и рекомендаций, каждое из которых позволяет избежать глупых ошибок при использовании того или иного аспекта языка. К каждому правилу прилагается пояснение, иногда сопровождаемое примером кода, список исключений и ссылка на тот или иной источник. Все вместе — 84 страницы мозгодробительного текста, с которым крайне желательно ознакомиться всякому, кто не хочет переизобрести все эти правила одно за одним на основе личного печального опыта.

Данный перевод предназначается исключительно для поверхностного ознакомления и содержит только текст самих правил без пояснений и примеров. Полный текст стандарта на языке оригинала доступен по адресу: http://www.codingstandard.com/HICPPCM/
Читать полностью »

Я всё сдерживался, но очередной ворох бесполезных бумаг заставил меня написать эту статью-призыв.
Мы много читаем про удобство интерфейса, про верстку сайтов, про типографику, но почему я не вижу статей про качество и особенно количество того, что все эти программы, сервисы и сайты печатают?
Конечно, можно выкинуть ненужную бумажку, но ведь можно же попытаться сделать мир лучше.

Пример 1: на заправке Газпромнефть мне выдают 6 (шесть!) чеков.

Там стоит компьютер, терминал для карточек с принтером, второй отдельный принтер и другая техника.
Процесс выглядит незамысловато: в платежный терминал вставляют бонусную карточку, второй принтер что-то печатает, потом достают бонусную, вставляют кредитную, платежный терминал печатает чек, вставляют опять бонусную карточку, платежный терминал и принтер что-то печатают дуэтом, кассир собирает урожай, один из чеков оставляет себе, остальные 6 (шесть) отдаёт мне.
Вот скан чеков.
Прекратите печатать!
Да, тут даже можно проследить логику. Но зачем мне такая логика? По вечерам на заправке очередь, а все эти махинации занимают лишнее время.
Особенно поражает размах бумажной щедрости после поездки в Норвегию, где самые богатые и бережливые жители мира обязательно спросят: нужно ли мне печатать чек об оплате. Бумага, чай, не бесплатная.
Я знаю, наш мир тесен — вы передайте обязательно разработчикам, что так делать не надо.

Пример 2: прорывной сервис онлайн покупки билетов РЖД.

Читать полностью »

Целевая аудитория, мотивация

Надеюсь, что пост окажется полезным для тех, кто на среднем уровне знаком с Git и на начальном — с Python. Кроме того, предполагается наличие базовых знаний об устройстве Unix-систем и регулярных выражениях.

В моей команде разработчиков назрела необходимость организационно повлиять на формат сообщений к коммитам. Практика показала, что для должного соблюдения новых правил странички в корпоративной базе знаний недостаточно, хотелось принудительно запрещать проталкивание (push) на сервер плохо оформленных коммитов. Недавно начав изучать Python, я знал, что этот язык хорошо подходит для написания системных сценариев благодаря своей развитой стандартной библиотеке. Вместе с тем опыт подсказывал, что наличие конкретной цели здорово помогает при изучении чего бы то ни было нового. Поэтому, отбросив страх перед неизвестностью, взялся решать задачу на малознакомом языке. Заранее оговорюсь, что в конце поста приведены ссылки, по которым можно найти подробную информацию по всем затронутым в тексте темам.
Читать полностью »

Уверен, каждый из нас не один раз задумывался над тем, что нас ждет в будущем. Я не собираюсь тратить ваше время на бесполезные, большей частью, размышления. Скорее наоборот, хотел бы поднять вам настроение (пост ведь пятничный) и обратить ваше внимание на важность стратегического планирования своей жизни используя хороший пример.

Одним словом — не судите строго.

Адаптируемость

Здесь и далее будут использоваться чудесные комиксы Geek and Poke и самая большая коллекция их переводов.

Читать полностью »

Не дождавшись очередного перевода, полюбившейся мне книги Чеда Фоулера «Страсть к программированию» — решил продолжить. Не уверен, что никому не помешаю, но намерен решить возникшие вопросы мирно.

Глава 4. Будь худшим

3. Кодинг ещё не всё
Читать полностью »

Популярный сервис мониторинга приложений NewRelic дарит всем новым пользователям месяц полного доступа к материалам CodeSchool. Регистрироваться здесь. Для получения купона нужно задеплоить абсолютно любое приложение — даже Hello World вполне годится.

Коротко о CodeSchool

Code School — это образовательный проект от Envy Labs, в рамках которого реализовано около 30 интерактивных онлайн-курсов в сфере IT. Основные направления (paths) на данный момент — Ruby/Rails, Javascript/jQuery, HTML/CSS/Design, iOS. Кроме того, есть дополнительные курсы, не входящие в основные направления и обозначенные как Electives, например — по Chrome DevTools и Git. Помимо интерактивных курсов ресурс предлагает десятки скринкастов той же тематики. В обычное время полный доступ ко всей этой красоте доступен за 25$ в месяц, хотя часть курсов предоставляется бесплатно.

Подробная инструкция по деплою hello_world.wsgi с использованием python/gunicorn под катом
Читать полностью »

Russian Code Cup 2013: настраиваемся на хардворкинг!

23 сентября этого года лучшие программисты страны сразятся друг с другом в финальном раунде российского чемпионата по спортивному программированию, Russian Code Cup 2013 (RCC). Это будет уже третий финал организованной Mail.Ru Group олимпиады, призванной не только поддержать престиж российских программистов в мире, но и популяризировать программирование как таковое.

В преддверии третьего финала мы решили взять интервью у спикеров RCC 2013 — Дмитрия Склярова, Эдварда Йордона и Кена Голдберга. Но сначала давайте вспомним об основателях языков программирования, благодаря которым сегодняшнее программное обеспечение является именно таким, каким мы его знаем.

Читать полностью »

Когда Ваш проект начинает пользуется популярностью и каждая миллисекунда обработки запроса от пользователя становится критической, приходится искать узкие места в системе. Часто больше всего времени занимает выполнение SQL запроса из приложения к базе данных. Попробуем разобраться, что можно оптимизировать в программе при работе с БД.
Читать полностью »

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

Кто-то оставляет проблему на «авось», кто-то вешает баннер на «пятисотку» и пытается зарабатывать на сбоях деньги. Кто-то пользуется стандартными решениями от поставщиков баз данных или сетевых устройств. А кто-то уходит в модные нынче «облака».

Fault tolerance: как предоставлять надежный сервис в случае сбоя оборудования

Ясно одно — по мере роста бизнеса обеспечение устойчивости к сбоям (даже не процедур восстановления после сбоев) становится всё более острой проблемой. От количества аварий в год начинает зависеть репутация компании, при больших временах простоя становится неудобно пользоваться сервисом, и т.д. Причин много.

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

Читать полностью »

Stack Overflow был официально запущен 15 сентября 2008 года. За пять коротких лет вы ответили более чем на 5 миллионов вопросов на более чем 100 сайтах и это помогло сотням миллионам людей найти необходимые ответы.

Мы хотим услышать ваши истории о том, как кто-то помог вам на Stack Exchange.

«И тут происходит чудо»

Перед тем, как мы запустили бету, на главной странице stackoverflow.com была картинка, которая символизировала то, что мы собирались сделать.
image
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js