Мои открытия в программировании после устройства на работу

Пост вряд ли будет интересен людям, далеким от хоть какого-нибудь программирования – много специальных терминов и сленга.

Я программист-самоучка. Никто меня целенаправленно не учил. Программирование мне просто нравилось, поэтому я писал как умел. Какие-то отрывочные сведения о паттернах, стилях, best practices я узнавал, когда искал решение той или иной проблемы на просторах интернета. С содроганием вспоминаю, что первые мои программы обязательно содержали Самый Главный Класс, в котором была вся логика (это один из вреднейших антипаттернов). Ну, зато я сам прошел кусок пути от “ааа, мои глаза, как развидеть это!” через “неужели я так плохо писал?!” к самостоятельному интуитивному формулированию идеи MVC. А вчера тестировщик из одной довольно крупной международной IT-компании назвал мой код “хорошим”. Не знаю, насколько это мнение было искренним, но если это правда, то мне приятно.

Вообще, по понятным причинам я видел начинку только open-source программ, и всегда считал, что open-source почти всегда начинается как проект “для души”, где можно писать код как тебе нравится. Но вот что интересно: в 95% случаев “как тебе нравится” выглядит похожим на “как правильно”. Наверное, это связано с тем, что хоть сколько-нибудь успешные проекты пишутся людьми, знающими что они делают, а не “хеллоуворлдщиками”. В общем, читая код открытых программ – а тем более создавая патчи для него – многому учишься. Рекомендую.

Подхожу к сути поста. В данный момент я прохожу стажировку в компании, где программисты нужны для обеспечения услуги доработки сайта клиента в рамках услуги маркетинга. Т.е. программирование – не основной бизнес компании, они вообще могут все это php/js/sql отдать на аутсорс (и, подозреваю, так и было некоторое время назад). Тимлид “обрадовал”, сообщив, что не любит ООП. “Нууу, окееееей…”, – подумал я, хотя сразу понял, что шаблон мой очень скоро начнет рваться с мерзким звуком. И вот на днях я мельком взглянул на “оптимизированный код”, в котором ковырялся возможный коллега. Фраза “без комментариев” тут подходит как нельзя лучше, хотя, возможно, и не в том смысле, о котором вы подумали. Код действительно без комментариев, и представляет из себя огромные, на несколько страниц простыни текста без каких-либо попыток разделить его на меньшие функции или хотя бы на блоки. В мозгу эхом отозвались слова тимлида: “если функция объявлена, то она должна быть вызвана минимум два раза; если нет, то функция не нужна!”. Ага… ну да… согласен… стоп, что за черт?!

Нет, я осознаю, что я ничего не смыслю в коммерческой разработке. Да, наверное, при таком подходе можно сэкономить несколько тактов процессора веб-сервера. Но дьявол! Как этот код поддерживать? Разработчик, что сейчас пишет это все, через месяц вполне может вообще не узнать свое творение, и разбирать, что оно делает, ему придется буквально по строчке. А ведь поддерживать придется, услуги компании это подразумевают. Я еще удивился, что, когда мне дали простенькое задание над одним сайтом, сидящий рядом разработчик сказал: “О, сайт на Laravel! Повезло тебе, он хорошо документирован”. Эээ… Простите, что? С каких пор “хорошо документирован” – это “о, повезло”? Если то, что я увидел – это норма© , то, скорее, это вам – хорошим парням – не повезло. Вам прямо после выпуска из университета вливают в голову не слишком правильные вещи. ООП – не идеал, и не панацея от проблем разработки, но писать такие простыни – это так себе альтернатива.

Резюмируя: мне кажется, что веб-разработка – это не для меня. После той строгости, к которой приучает C++/C#, вся эта HTML/CSS декларативщина воспринимается как вялые попытки упорядочить хаос. Биться несколько часов в бесчисленных css-файлах, пытаясь изменить кнопку, которая с чего-то на 5 пикселей больше, чем нужно – это такое себе развлечение, когда в своих программах ты просто делал ультимативное, написанное тобой же SetHeight/SetWidth. На этом все, спасибо за внимание.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *