8

Записки программиста 2. И попал я в ад...

В поисках

Уволившись из рая для программиста по причине переезда в другой город, пришлось искать тут работу. Долго заморачиваться не хотел, поскольку было много других неотложных дел; нужен был стабильный источник дохода. Так как на предыдущей работе я программировал исключительно на js, естественно, искал вакансию, где мои знания пригодились бы. Как водится, нашей несколько вакансий на хедхантере, отправим резюме и стал ждать. На следующий день уже было назначено два собеседования.

Первое: вакансия php-программиста с активным использованием js. Работа в стартапе, который занимается оцифровкой одного бизнеса. Собеседование продлилось 15 минут, в течении которого, после стандартного опросника меня гоняли по основами ООП и php, нюансах ООП в php. Собеседующий даже не попытался сбить тот оклад, на который я претендую.

Второе: собеседование в крупную телеком компанию на вакансию js-программиста со знанием языка python. Тут меня даже не пытались поймать на каком-нибудь каверзном вопросе, а собеседование, скорее, походило на разговоры давних приятелей. Мы обсуждали современные технологии, их возможности и способы применения. Без особой конкретики. Проболтали около часа, после чего выяснили, что, поскольку о python'е я только слышал, то на зп могу рассчитывать сильно ниже ожидаемой, на 30 процентов. Сошлись на том, что я подумаю.

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


Первый день

Подписав договор, мне сразу же была поставлена первая задача: есть несколько модулей, доступ к которым происходит через разные url-адреса. Мне предстояло объединить их под одним приложением и организовать загрузку каждого из модулей через ajax-запросы в определенную область. Как водится, каждый модуль в веб-интерфейсе использовал библиотеку jQuery кучей навешанных плагинов. А поскольку каждый модуль писался в разное время, значит и библиотеки jQuery были разных версий. Но это еще не все. Предыдущие программисты совершенно не заморачивались в названиях css-селекторов, а посему ситуация, когда один класс использовался в разных модулях, да еще и с разными стилями, стала для меня типичной. Если вы еще не поняли всю печальность данной ситуации, поясню: в каждом модуле своя библиотека jQuery, свои плагины, свои css-стили. Поскольку это все необходимо объединить под одним приложением, то все css-стили и весь js-код грузится в самом начале, а следовательн наложение css-стилей и взаимное исключение работоспособности одних jQuery-плагинов с jQuery-библиотекой другого модуля были повсеместны. Времени переделывать нет, весь функционал неизвестен, а клиенты уже ждут результат. Как сказали, главное, чтобы все это при портировании работало и сносно выглядело. Поскольку раньше таким непотребством заниматься не приходилось, уходя домой, у меня были грустные мысли.


Далее

Конечно же, перелопатив кучу кода, я выполнил задание ~за неделю, но каким способом...

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

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

В третьих, глубже погрузившись в код, обнаружил множество невероятных решений, которые заслуживали публикации на сайте govnokod.ru. Например, разграничение ролей реализовывалось путем обычной конструкции if-else. А об инкапсуляции они и вовсе не задумывались: в конструкторе классов всюду использовались глобальные переменные О_о.

Ладно, если бы код был написан с использованием классов, так обычным делом пыли портянки кода в 3000 строк с мешаниной из php, HTML, и js.

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

Конечно, со временем многое изменилось. Некоторые вещи стали неактуальны, например, одновременно 3 подключенных библиотеки jQuery канули в лету, а главное, на подмогу были наняты еще два программиста. Однако, по прошествии почти года некоторые части кода по-прежнему терпеливо ждут своего преображения...

2
Автор поста оценил этот комментарий

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

раскрыть ветку

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества