Рубрика «качество» - 2

Главные характеристики качественного кода - 1

Как часто вы поражаетесь, читая чужой код, и думаете «господи, ну и каша...». Скорее всего, достаточно часто. И можете ли вы быть уверенным, что никто не думал также когда читал ваш код? Другими словами, насколько вы уверены в чистоте своего кода? Можно быть уверенным только если полностью понимаешь, что значит чистый код.

Сложно дать точное определение чистому коду, и, скорее всего, сколько программистов — столько определений. Однако, некоторые принципы достаточно универсальны. Я собрал девять самых релевантных и описал ниже.

1.Плохой код делает слишком много, чистый код сфокусирован

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

Но я бы не ограничивал определение классами. В свой последней статье Ральф Вестфал (Ralf Westphal) представил более широкое определение принципа единственной обязанности:

Функциональная единица на определенном уровне абстракции должна отвечать за один аспект требований системы. Аспект требований это признак или свойство требования, которое может изменяться независимо от других аспектов.
Читать полностью »

image
Как избежать позора на ровном месте – наглядное пособие

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

Что такое технический долг? Можно ли понимать его, как плохое исполнение разработчиками своих обязанностей? Возможно ли избежать появления технического долга, и следует ли его избегать? Как связан технический долг с архитектурой приложения и с доверием между заказчиком и исполнителем? Какие стратегии применяются для контроля технического долга?

Предлагаю вашему вниманию перевод интервью, вышедшего в подкасте «Software Enginering Radio» в апреле 2015 года. Свен Йохан и Эберхард Вольф обсуждают внутреннее и внешнее качество ПО, вспоминают общепринятые модели качества и стратегии, направленные на поддержание внутреннего качества ПО. Технический долг, в основном, рассматривается в контексте управления программными проектами.

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

Данный пост является ненаучными комментариями к статическому анализу неких графиков (которые всё равно нельзя публиковать, потому что они ДСП). Все факты вымышлены, все имена изменены.

Представьте, идёт строительство дома…
Читать полностью »

Мы постоянно обсуждаем бесплатные IT-курсы типа coursera, радуемся когда выходит новый интересный материал, стараемся направлять в эту струю коллег, студентов. Ведь знания — вот они, лежат просто у ног, возьми да и пользуйся. Мои друзья решили сделать вклад в это направление и организовать тренинг QA-автоматизаторов по серьезному, с отбором и курсом на качество. Что вышло в итоге можно прочитать под катом от первого лица.

Как мы на энтузиазме автоматизаторов обучали
Читать полностью »

Мне приходится очень много читать код. Это и open source, и всяческие фреймворки, и код enterprise приложений. Именно о последних я хотел бы сегодня поговорить.

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

Но удивляют люди, написавшие отстойный код. Эти люди, с немалым опытом, знают несколько языков, прочитали много книг, знают ООП, SOLID, рефакторинг, паттерны и другие малопонятные слова. То есть примерно такие, как многие из вас, читающих этот пост.
Читать полностью »

Nextivity Cel-Fi RS2 black (single band)

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

Покрытие в России все еще оставляет желать лучшего. Особенно это касается 3G-сетей. Даже на улицах города телефон цепляет 3G далеко не всегда, не говоря уже об офисах в многоэтажных бизнес-центрах, всевозможных подвальных и гаражных помещениях и других железобетонных конструкциях. Центральная часть России в основном равнинная, и за городом сигнал оператора распространяется без существенных помех, вопрос лишь в расстоянии до базовой станции. Однако, в местах с холмистым или горным рельефом либо при плотной городской застройке даже близость БС не дает гарантии уверенного приема.

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

В этой статье я хочу познакомить вас с абонентским терминалом Nextivity Cel-Fi RS2 black. Это сравнительно новое решение, используемое крупными международными операторами: Vodafone, AT&T, T-Mobile, Orange group и др., а так же одобренное и сертифицированное в России. Оно служит для увеличения зоны уверенного приёма-передачи голоса и данных по технологии 3G.

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

Чеклист вопросов к проекту: старт, реализация, финал — и 10 советов «в полёт»
Проверьте свой проект: вы летите или думаете, что летите?

Контрольные вопросы на старте проекта:

  1. Что конкретно нужно сделать на текущем этапе? В целом? Есть ли чётко определённые цели каждого этапа? Как вы определите, что цели достигнуты? Соответствует ли текущий статус заявленным планам и целям или их необходимо корректировать?
  2. Реалистичны ли эти цели?
  3. Что случится, если цели не будут достигнуты в срок? Каков план действий?
  4. Насколько этот проект значим? Например, зависит ли от него место вашей компании на рынке?
  5. Какую выгоду вам, обществу и инвесторам принесёт проект?
  6. Достаточно ли хорошо спланирован проект? Все ли в вашей команде понимают пункты плана одинаково?
  7. Нужны ли внешние эксперты, например, юристы?
  8. Есть ли у команды опыт работы вместе? Кто будет координировать команду? Важно ли для проекта работать именно вместе — или возможен труд одиночек? Отвечает ли каждый член команды за работу всех остальных?
  9. Можно ли сократить размер команды? Если нет, то почему? Если да, то почему это не сделано?
  10. Как вы будете компенсировать форс-мажоры с персоналом, например, что случится, если ваш ведущий разработчик сломает руку?Читать полностью »

Думайте при разработкеНедавно наткнулся на ошибку в Android приложении Яндекс.Метро. Если бы был чемпионкой мира по синхронному плаванию, то обязательно спросил бы: «Кто создавал программу „для галочки“? Кто работал „на отшибись“? Кто слабое звено?». Недоумение вызывала не сама ошибка, а то, что она попала в приложение и всё ещё не исправлена.

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

Начать хотелось бы с главы «Изучение знаменитых (и не очень знаменитых) ошибок» из книги «Наука отладки». Если ещё не читали, то рекомендую прочитать. В этой главе описаны «глупые» ошибки и стечения обстоятельств, которые стоили жизней и миллионы долларов. Все эти ошибки объединяло то, что выявляющий их тестовый сценарий было чрезвычайно сложно воспроизвести, в результате многие проверки были просто пропущены.

В статье же мы будем рассматривать распространённые приложения, которые протестировать может любой участник команды. Давайте проведём небольшой эксперимент. Если у вас нет Android устройства, то попросите минут на десять у коллег или друзей. Скачайте приложение Яндекс.Метро и попробуйте его протестировать. Интересует актуальная на текущий момент версия 1.63 от 02.11.2012 сборка 159 (на Google Play стоит дата 21.01.2013). Для корректности проверки предлагаю снять галочку «Автообновление» в настройках Google Play.

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

Эта же ошибка может проявить себя не так явно:

небольшая подсказка

Программа отображает маршруты между двумя станциям, но наиболее очевидный (и короткий) не находит.

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

Случай в океане

Личный многолетний опыт чтения различных блогов и форумов показывает, что, как правило, наибольшую популярность имеют статьи негативного плана — критика неудачных решений какой-нибудь известной компании, шокирующие истории обмана клиентов, просто обнародование чьих-то ошибок в работе… В принципе, оно и понятно: только в состоянии благородного гнева абсолютное большинство авторов и комментаторов могут блеснуть красноречием, метко заклеймить виновника события острым словцом или, на худой конец, запостить в комментариях миллиардный по счёту facepalm (за который я, если честно, уже давал бы пожизненный бан). Это проще, это привычнее, это вошло в норму. Как только человек видит некий положительный материал, всё красноречие и искромётный юмор улетучиваются мгновенно — нет стимула, хвалить не интересно.

В принципе, этот феномен можно попробовать объяснить тем, что блог или форум — это что-то типа поликлиники, куда идут только в случае возникновения проблем. Но в результате общая картинка вырисовывается весьма грустная: всё вокруг плохо, жизнь состоит только из негатива. Но на самом деле это не так, и Хабрахабр является одним из уникальных ресурсов, где положительный заряд читатель получает гораздо чаще, чем отрицательный. И вот таким вот образом, издалека, я подошёл к собственно теме своего поста, который просто не могу не опубликовать справедливости ради.
Читать полностью »


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