1 added
1 removed
Original
2026-01-01
Modified
2026-02-26
1
<p><em>Это перевод заметки Ника Харли<a>There’s never been a better (or a worse) time, to be a software engineer</a>.</em></p>
1
<p><em>Это перевод заметки Ника Харли<a>There’s never been a better (or a worse) time, to be a software engineer</a>.</em></p>
2
<p>Иногда престижность работы программиста ломается коллегой, который разбивает голову о клавиатуру. Инновации позволяют программистам быть более производительными, писать код быстрее и качественней.<strong>Но это не мешает существовать тем продуктам, которые усложняют нашу работу...</strong></p>
2
<p>Иногда престижность работы программиста ломается коллегой, который разбивает голову о клавиатуру. Инновации позволяют программистам быть более производительными, писать код быстрее и качественней.<strong>Но это не мешает существовать тем продуктам, которые усложняют нашу работу...</strong></p>
3
<h4>Начнем с плохого...</h4>
3
<h4>Начнем с плохого...</h4>
4
<h5>1. Работа никогда не заканчивается</h5>
4
<h5>1. Работа никогда не заканчивается</h5>
5
<p>Как разработчик, вы ежедневно возвращаетесь к набору тех проблем, которыми пропитан ваш софт. Он абсолютно всё делает неправильно.<strong>А того, что люди от него хотят, этот софт как раз не делает.</strong></p>
5
<p>Как разработчик, вы ежедневно возвращаетесь к набору тех проблем, которыми пропитан ваш софт. Он абсолютно всё делает неправильно.<strong>А того, что люди от него хотят, этот софт как раз не делает.</strong></p>
6
<p>Все ваши взаимодействия с пользователями сводятся к тому, что они хотят чего-то, чего вы им не дали. Они не понимают, почему всё не так просто, как им кажется.</p>
6
<p>Все ваши взаимодействия с пользователями сводятся к тому, что они хотят чего-то, чего вы им не дали. Они не понимают, почему всё не так просто, как им кажется.</p>
7
<p>Мы мечтаем о том дне, когда кто-то поблагодарит нас за безупречную работу в проекте и не потребует каких-нибудь "добавок".</p>
7
<p>Мы мечтаем о том дне, когда кто-то поблагодарит нас за безупречную работу в проекте и не потребует каких-нибудь "добавок".</p>
8
<p>Спецификации и требования - заранее, пожалуйста!</p>
8
<p>Спецификации и требования - заранее, пожалуйста!</p>
9
<h5>2. Люди (до сих пор) не понимают, чем вы занимаетесь</h5>
9
<h5>2. Люди (до сих пор) не понимают, чем вы занимаетесь</h5>
10
<p>Возможно, подруге вашей мамы нужна помощь с принтером - ей сказали, что вы работаете в ИТ. Или у вашего продакт-менеджера отсутствуют какие-либо технические знания, и он совершенно не разбирается в современных методах программирования.</p>
10
<p>Возможно, подруге вашей мамы нужна помощь с принтером - ей сказали, что вы работаете в ИТ. Или у вашего продакт-менеджера отсутствуют какие-либо технические знания, и он совершенно не разбирается в современных методах программирования.</p>
11
<p><strong>Кажется, никто не понимает, в чём заключается ваша работа</strong>, и вам нужно отчитываться перед людьми, которые не в курсе требований или ограничений. Объяснять понятно всем, что вы делаете, бывает настолько сложно, что иногда пытаться не имеет смысла. Поэтому на встречах вы просто ограничиваетесь фразой "я работаю с компьютерами".</p>
11
<p><strong>Кажется, никто не понимает, в чём заключается ваша работа</strong>, и вам нужно отчитываться перед людьми, которые не в курсе требований или ограничений. Объяснять понятно всем, что вы делаете, бывает настолько сложно, что иногда пытаться не имеет смысла. Поэтому на встречах вы просто ограничиваетесь фразой "я работаю с компьютерами".</p>
12
<h5>3. Как же много новых языков и фреймворков для изучения</h5>
12
<h5>3. Как же много новых языков и фреймворков для изучения</h5>
13
<p>На момент, когда вы будете читать эту статью, вероятно, будет существовать<a>ещё один новый JavaScript-фреймворк</a>, который<em>стыдно</em>не использовать. Кажется, никто больше не работает с HTML напрямую.</p>
13
<p>На момент, когда вы будете читать эту статью, вероятно, будет существовать<a>ещё один новый JavaScript-фреймворк</a>, который<em>стыдно</em>не использовать. Кажется, никто больше не работает с HTML напрямую.</p>
14
<p><strong>Похоже, вам нужно переучиваться на свою профессию каждые пять лет или рисковать отсталостью.</strong></p>
14
<p><strong>Похоже, вам нужно переучиваться на свою профессию каждые пять лет или рисковать отсталостью.</strong></p>
15
<p>В мире языков и фреймворков случился настоящий взрыв. Все они требует поддержки. А разработчики не всегда успевают оставаться в курсе всего. Изучение любых дополнений к 400+ языкам программирования и уже существующим фреймворкам - это работа на полную ставку. Почему вы не проводите каждые выходные, играя с новейшими технологиями? Возможно, у вас есть жизнь за пределами рабочего пространства, вы не грезите, не едите и не дышите кодом.</p>
15
<p>В мире языков и фреймворков случился настоящий взрыв. Все они требует поддержки. А разработчики не всегда успевают оставаться в курсе всего. Изучение любых дополнений к 400+ языкам программирования и уже существующим фреймворкам - это работа на полную ставку. Почему вы не проводите каждые выходные, играя с новейшими технологиями? Возможно, у вас есть жизнь за пределами рабочего пространства, вы не грезите, не едите и не дышите кодом.</p>
16
<p>Позор.</p>
16
<p>Позор.</p>
17
<h5>4. Работа с кодом других людей</h5>
17
<h5>4. Работа с кодом других людей</h5>
18
<blockquote><p>"КТО НАПИСАЛ ЭТОТ КОД!?"</p>
18
<blockquote><p>"КТО НАПИСАЛ ЭТОТ КОД!?"</p>
19
<p>"Это полная каша! Тут нет никакого смысла!"</p>
19
<p>"Это полная каша! Тут нет никакого смысла!"</p>
20
<p>"Я проверяю историю коммитов... Хочу узнать, кто написал этот мусор..."</p>
20
<p>"Я проверяю историю коммитов... Хочу узнать, кто написал этот мусор..."</p>
21
<p>"Так, подожди..."</p>
21
<p>"Так, подожди..."</p>
22
<p>"Это был я, в прошлом году"</p>
22
<p>"Это был я, в прошлом году"</p>
23
</blockquote><p>Если не считать изменения собственного устаревшего кода, попытки понять, как работает часть унаследованного кода - боль. Но от вас ожидается, что вы погрузитесь в него и просто продолжите писать, как ни в чём не бывало.</p>
23
</blockquote><p>Если не считать изменения собственного устаревшего кода, попытки понять, как работает часть унаследованного кода - боль. Но от вас ожидается, что вы погрузитесь в него и просто продолжите писать, как ни в чём не бывало.</p>
24
-
<p>Пытаться разобрать намерения предыдущего разработчика еще сложнее, когда этого разработчика больше нет поблизости, а код плохо написан, плохо прокомментирован или плохо задокументирован.</p>
24
+
<p>Пытаться разобрать намерения предыдущего разработчика еще сложнее, когда этого разработчика больше ��ет поблизости, а код плохо написан, плохо прокомментирован или плохо задокументирован.</p>
25
<p>Если бы только люди понимали...</p>
25
<p>Если бы только люди понимали...</p>
26
<h4>Но, есть и множество положительных моментов...</h4>
26
<h4>Но, есть и множество положительных моментов...</h4>
27
<p>Современная разработка софта на самом деле никогда не была проще.</p>
27
<p>Современная разработка софта на самом деле никогда не была проще.</p>
28
<p>И вот почему…</p>
28
<p>И вот почему…</p>
29
<h5>Приложения теперь сообщают вам, когда они нездоровы</h5>
29
<h5>Приложения теперь сообщают вам, когда они нездоровы</h5>
30
<p>Раньше разработчики полагались на своих пользователей. Именно они выявляли проблемы, сталкиваясь с ними когда приложение уже в production. Но времена меняются.</p>
30
<p>Раньше разработчики полагались на своих пользователей. Именно они выявляли проблемы, сталкиваясь с ними когда приложение уже в production. Но времена меняются.</p>
31
<p><strong><a>Инструменты мониторинга ошибок</a>, которые могут сообщить вам, что не так с вашим приложением и почему</strong>, без необходимости просить пользователей сообщать об ошибках. Такие инструменты уже в арсенале самых продвинутых компаний в мире, и они становятся всё умнее. Они указывают, когда следует обратить внимание и где корень ошибки.</p>
31
<p><strong><a>Инструменты мониторинга ошибок</a>, которые могут сообщить вам, что не так с вашим приложением и почему</strong>, без необходимости просить пользователей сообщать об ошибках. Такие инструменты уже в арсенале самых продвинутых компаний в мире, и они становятся всё умнее. Они указывают, когда следует обратить внимание и где корень ошибки.</p>
32
<p><em>(Команда Хекслета предпочитает<a>Rollbar</a>, - прим. ред.)</em></p>
32
<p><em>(Команда Хекслета предпочитает<a>Rollbar</a>, - прим. ред.)</em></p>
33
<p>Теперь, когда ошибки загружаются в баг-трекеры автоматически и ручной процесс становится историей, больше инженеров можно направить на создание новых возможностей, функциональности и целых продуктов, а не на поддержку этих продуктов.</p>
33
<p>Теперь, когда ошибки загружаются в баг-трекеры автоматически и ручной процесс становится историей, больше инженеров можно направить на создание новых возможностей, функциональности и целых продуктов, а не на поддержку этих продуктов.</p>
34
<p>Инструменты, вероятно, знают больше о вашем софте и клиентах, чем вы.<strong>Поэтому скоро не будет<a>никакого оправдания дерьмовому софту</a>.</strong></p>
34
<p>Инструменты, вероятно, знают больше о вашем софте и клиентах, чем вы.<strong>Поэтому скоро не будет<a>никакого оправдания дерьмовому софту</a>.</strong></p>
35
<h4>Инструменты могут выполнять за вас тяжёлую работу</h4>
35
<h4>Инструменты могут выполнять за вас тяжёлую работу</h4>
36
<p>Раньше нам нужно было заморачиваться только о нескольких устройствах и размерах экранов. Теперь, когда появляется новый продукт от Apple, Samsung или Google, ситуация может измениться существенно.</p>
36
<p>Раньше нам нужно было заморачиваться только о нескольких устройствах и размерах экранов. Теперь, когда появляется новый продукт от Apple, Samsung или Google, ситуация может измениться существенно.</p>
37
<p>Но современные кроссплатформенные фреймворки и инструменты позволяют разработчикам сокращать объем дублирования и усилий, необходимых для поддержки пользователей любых устройств, браузеров или операционных систем.</p>
37
<p>Но современные кроссплатформенные фреймворки и инструменты позволяют разработчикам сокращать объем дублирования и усилий, необходимых для поддержки пользователей любых устройств, браузеров или операционных систем.</p>
38
<p><a>Прогрессивные веб-приложения</a>набирают популярность, поскольку они подходят каждому пользователю, независимо от браузера - они построены по принципу прогрессивной оптимизации.</p>
38
<p><a>Прогрессивные веб-приложения</a>набирают популярность, поскольку они подходят каждому пользователю, независимо от браузера - они построены по принципу прогрессивной оптимизации.</p>
39
<p><a>Xamarin</a>, приобретенный Microsoft в 2016 году, позволил тысячам команд выпускать собственные приложения для Android, iOS и Windows, используя существующие навыки, команды и код, вместо того, чтобы создавать отдельные приложения для каждой платформы. А такие инструменты, как<a>Foundation</a>,<a>Bootstrap</a>и<a>Semantic UI</a>созданы, чтобы разработчикам интерфейсов больше не нужно было начинать с пустого файла CSS для получения безупречных пикселей.</p>
39
<p><a>Xamarin</a>, приобретенный Microsoft в 2016 году, позволил тысячам команд выпускать собственные приложения для Android, iOS и Windows, используя существующие навыки, команды и код, вместо того, чтобы создавать отдельные приложения для каждой платформы. А такие инструменты, как<a>Foundation</a>,<a>Bootstrap</a>и<a>Semantic UI</a>созданы, чтобы разработчикам интерфейсов больше не нужно было начинать с пустого файла CSS для получения безупречных пикселей.</p>
40
<p>Жизнь была бы намного сложнее без этих инструментов. Не делать все с нуля - роскошь.</p>
40
<p>Жизнь была бы намного сложнее без этих инструментов. Не делать все с нуля - роскошь.</p>
41
<h4>Времена выхода финальных версий ушли в прошлое - ура!</h4>
41
<h4>Времена выхода финальных версий ушли в прошлое - ура!</h4>
42
<p>Выход финальной версии когда-то приносил поток нервов и стресса, особенно когда приближалось время выхода релиза в production.</p>
42
<p>Выход финальной версии когда-то приносил поток нервов и стресса, особенно когда приближалось время выхода релиза в production.</p>
43
<p><strong>Непрерывная интеграция и доставка берут верх - команды постепенно отказываются от крупных, пугающих цикличных релизов</strong>, используя итеративные мелкие деплои. У них чаще добавляются новые опции, чаще происходит обновление конечной версии и исправление багов может происходить несколько раз в день. Оттого, что возможностей привнести новую ценность больше, вероятность в удовлетворении своих клиентов выше. А продукты таких команд часто более высокого качества.</p>
43
<p><strong>Непрерывная интеграция и доставка берут верх - команды постепенно отказываются от крупных, пугающих цикличных релизов</strong>, используя итеративные мелкие деплои. У них чаще добавляются новые опции, чаще происходит обновление конечной версии и исправление багов может происходить несколько раз в день. Оттого, что возможностей привнести новую ценность больше, вероятность в удовлетворении своих клиентов выше. А продукты таких команд часто более высокого качества.</p>
44
<p>Результат - ускоренный выход на рынок, выше степень удовлетворённости качеством обслуживания и быстрая реакция на изменения потребительского рынка.</p>
44
<p>Результат - ускоренный выход на рынок, выше степень удовлетворённости качеством обслуживания и быстрая реакция на изменения потребительского рынка.</p>
45
<p>Дни выхода сломанного релиза в production и тотального фейла у конечных пользователей (или страха попасть в такую ситуацию) ушли в прошлое, по крайней мере, для большинства команд.</p>
45
<p>Дни выхода сломанного релиза в production и тотального фейла у конечных пользователей (или страха попасть в такую ситуацию) ушли в прошлое, по крайней мере, для большинства команд.</p>
46
<h4>А что думаете вы?</h4>
46
<h4>А что думаете вы?</h4>
47
<p>Разве у нас когда-нибудь было всё так хорошо?</p>
47
<p>Разве у нас когда-нибудь было всё так хорошо?</p>
48
<p>И какие самые лучшие и худшие моменты в программировании для вас?</p>
48
<p>И какие самые лучшие и худшие моменты в программировании для вас?</p>
49
<p><em>От редактора:</em>Мы на Хекслете часто публикуем переводы статей. Важно помнить:</p>
49
<p><em>От редактора:</em>Мы на Хекслете часто публикуем переводы статей. Важно помнить:</p>
50
<ol><li>Мнение автора статьи может отличаться от мнения администрации и сотрудников Хекслета.</li>
50
<ol><li>Мнение автора статьи может отличаться от мнения администрации и сотрудников Хекслета.</li>
51
<li>Цель перевода - показать мнение. Поэтому одна статья может визуально противоречить другой: это просто разные мнения. Мы оставляем на вашу ответственность возможность анализировать и делать выводы для себя.</li>
51
<li>Цель перевода - показать мнение. Поэтому одна статья может визуально противоречить другой: это просто разные мнения. Мы оставляем на вашу ответственность возможность анализировать и делать выводы для себя.</li>
52
</ol>
52
</ol>