Как писать код, который будет актуален и через 10 лет?

"Войти в айти" стало трендом в СНГ за последние 2 года. Рынок оброс специалистами, однако далеко не все понимают, что такое инженерная культура в IT-компаниях и чем программный инжиниринг отличается от программирования.

Мы, в Kolesa Group, активно развиваем IT-рынок, запускаем бесплатные образовательные проекты, набираем молодые таланты, поэтому хотим поговорить на тему IT-культуры.

Гостем второго эпизода подкаста "Код и кофе" стал Антон Сергеев, тимлид в Kolesa Group. Антон в разработке уже больше 10 лет и успел попробовать себя в разных областях помимо веба — от десктопного софта до устройств IoT, занимался синхронизацией времени в беспроводных сетях, писал на самых разных языках — от Java, C, ActionScript до Go и PHP.

Антон Сергеев
Антон Сергеев

В статье ниже мы собрали самые важные отрывки из подкаста.

Есть ли код, который жив спустя 10-15 лет?

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

Программный инжиниринг vs программирование

В книге Software Engineering at Google ребята из Google описали, в чем, по их мнению, отличие между этими двумя понятиями.

Программный инжиниринг — программирование, интегрированное во времени. То есть многократно повторенное во времени.

Одноразовый код, который написали для решения сиюминутной задачи — это программирование.

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

Инженерная культура: что это и как ее развивать

Это то, как в компании принято разрабатывать программы. Не обязательно даже специально проговаривать правила и объявлять, что "теперь у нас есть инженерная культура". Многие о ней даже не задумываются, но отношение/подходы к программированию и то, как устроена разработка — это и есть та самая культура.

Хорошая инженерная культура — это когда люди пишут код качественно, постоянно его улучшают, выносят уроки из ошибок и внедряют автотесты.

Также мы поговорили о:

  • культуре экспериментов;
  • выборе технологий и их внедрении;
  • синьорах и джунах;
  • разработческих мифах: нелюбовь к планеркам и ведению документации.

Посмотреть видео-версию можно по ссылке.
А аудио-версия доступна по этой ссылке.

66
5 комментариев

..прочитав заголовок, на ум пришёл только один код:

System.out.println("Hello world");

.. классика, актуальная десятилетиями)

9
Ответить

Комментарий недоступен

3
Ответить

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

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

3
Ответить