Архив за 07 сентября 2017 - 6

Практики управления техническим долгом в отдельно взятой команде

Примерно год назад наша команда перешла из фазы ускоренного наращивания функциональности к более плавной разработке с упором на повышение качества. К этому моменту в наших продуктах накопилось заметное количество неоптимальных решений, некрасивого кода, устаревших библиотек. Со всем этим надо было что-то делать.

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

Что удалось получить в результате:

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

Давайте расскажу, как мы этого добились.

Ланнистеры всегда платят свои долги! (и технические тоже) - 1

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

Риэк Сергев вышел из лифта на этаже главы НБС. Главный комплекс крупной корпорации более чем на девяносто пять процентов скрывался под землёй. Глава корпорации занимала самый нижний, подземный, этаж и небольшую часть самого верхнего, надземного, этажа. Риэк имел доступ практически во все апартаменты Диады, поэтому беспрепятственно вышел из лифта. Мужчина прошёл по коридору и оказался в широкой и светлой гостевой комнате, за окнами которой открывался красивый вид на парковую зону. Не успел он пройти и половину гостиной как появилась хозяйка, которая ловко подхватила его под руку.

Неожиданная встреча. Глава 13 - 1
Читать полностью »

image

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

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

В монастыре Святой Екатерины нашли тексты на языках, считавшихся потерянными - 1
Монастырь Святой Екатерины

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

Как оказалось, некоторые листы, на которых нанесены надписи, еще древнее, чем считалось. Группа ученых под руководством Джеффа Фаррела смогла обнаружить тексты, которые были затерты монахами, использовавшими дорогой в то время материал (в основном, пергамент) для собственных записей. Стертые тексты были, в основном, написаны на латыни, греческом и арабском языках. Но, кроме них, были и тексты на других языках, которые до настоящего времени считались потерянными.
Читать полностью »

С появлением Java 8 Stream API позволило программистам писать существенно короче то, что раньше занимало много строк кода. Однако оказалось, что многие даже с использованием Stream API пишут длиннее, чем надо. Причём это не только делает код длиннее и усложняет его понимание, но иногда приводит к существенному провалу производительности. Не всегда понятно, почему люди так пишут. Возможно, они прочитали только небольшой кусок документации, а про другие возможности не слышали. Или вообще документацию не читали, просто видели где-то пример и решили сделать похоже. Иногда это напоминает анекдот про «задача сведена к предыдущей».

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

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

Дефицит витаминов у беременной вызывает психические расстройства у ребенка

Ученые из Токие опубликовали научный труд, в котором речь идет о связи питания беременной с психическими расстройствами, проявляемыми в новорожденном ребенке. Оказывается недостаток витаминов в рационе мамы может сделать ее ребенка шизофреником. По словам специалистов, такое их убеждение подкреплено практическими исследовательскими результатами.

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

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

Но писать код на ассемблере, всё же, сложно, анализировать его ещё сложнее, а криптография ошибок не прощает. Разве не было бы замечательно иметь возможность писать эти функции на каком-нибудь более высокоуровневом языке?

Этот пост о слегка неадекватном эксперименте по вызову Rust кода из Go в попытке сделать это настолько быстро, чтобы могло сравнится с вызовом ассемблера. Вам не нужно знать Rust или про внутренности компилятора, достаточно понимать, что такое линкер.

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


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