Serganbus

На Пикабу
Дата рождения: 14 августа 1990
поставил 53606 плюсов и 138 минусов
Награды:
10 лет на Пикабу
863 рейтинг 5 подписчиков 48 подписок 4 поста 1 в горячем

Ответ на пост «Работа на которой стоит работать»3

Не IT-компания, но банк, который тоже может порадовать сотрудников во время самоизоляции.

Утром нежданно и негаданно курьер доставил следующие кексоподобные явства:

Ответ на пост «Работа на которой стоит работать» Работа, Удаленная работа, Карантин, Сюрприз, Ответ на пост, Банк

Конечно же, чертовски приятно получать такие неожиданные подарки.

С наступающим всех, с наступающим ДелоБанк!

Записки программиста 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 канули в лету, а главное, на подмогу были наняты еще два программиста. Однако, по прошествии почти года некоторые части кода по-прежнему терпеливо ждут своего преображения...

Показать полностью

Записки программиста 1. Рай

Довелось некоторое время работать в международной компании, занимающейся разработкой софта для интернет-казино(кстати, лидер в своей области). Проработал я там около двух лет.

В компании несколько отделов: html5(мобильные разработчики), flash(desktop-разработчики), java-team(backend) и, конечно, тестеры. Я работал в команде html5-разработчиков. Самым организованным отделом был наш. Тимлид html5 разработчиков организовал для нас практически рай.


Так вот, код. Самое главное, с чем имеет дело программист в посведневной работе. В тиме был введен унифицированный стиль написания кода(т.н. codestyle). Это здорово, поскольку так куда проще разбираться в чужом коде. Имелся собственный фреймворк, написанный на чистом js и заточенный для написания игр под мобильные устройства. Фреймворк был кроссплатформенным(поддерживались WinPhone, Android > 4.1, iOS > 5.0). Те, кто писал кроссплатформенные вещи на js, знает, какой зоопарк устройств приходилось поддерживать. Ах да, мы писали на js в ООП стиле. Причем, без ограничений от канонического ООП. На js! И все это до TypeScript'a! Фантастика! Поскольку фреймворк был шикарно структурирован - он позволял писать невероятно гибкие системы. Там было все, что нужно: и собственные структуры данных(дерево, очередь, матрица, конечный автомат и т.д.), и собственная система инициализации событий(как в jQuery, только лучше), и грамотное разделение фреймворка на модули. И все это добро приправлено просто горой различных шаблонов проектирования. Было здорово копаться в нем и смотреть, что да как устроено.


Документация. Она была! В ней было дано описание основных систем фреймворка, как с ним работать и были описаны его ограничения.

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


Используемые технологии: фреймворк использовал последние стабильные достижения в области js-кода(например: canvas, web audio API и т.д.). Конечно же, мы использовали систему контроля версий. Трекером задач служил redmine.


Такое ощущение, что тимлид начитался книги "Совершенный код" и, вдохновленный идеями из этой книги, решил многие из них воплотить в жизнь.Какой гик о таком не мечтает?

Показать полностью

Мерзкие загсы наживаются на молодоженах vol.2

По мотивам http://pikabu.ru/story/merzkiy_zagsyi_nazhivayutsya_na_molod...

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

Когда зашел вопрос о выборе обстановки регистрации мы остановились на торжественной(для фоточек). Нам сказали "ок" и вывели в фойе ЗАГСа для разъяснения распорядителем порядка торжественной регистрации. И тут понеслось: оказывается, это стоит 2500р. Туда входит всякая белиберда: живая музыка во время свадебного танца, встреча гостей, распорядитель мероприятия, официанты в банкетном зале и т.д. и т.п. Нас, повторюсь, на свадьбе планируется 3 человека. На кой нам все это за 2500р? Ан нет, без денешек торжественную регистрацию не проводят, как нас уведомил распорядитель. Кстати, да, в квитанции были реквизиты сторонней организации, то есть деньги идут не государству, а частному лицу. Ну мы люди молодые, свадьба у обоих впервые, думаем, может, действительно везде платно это все предоставляют, поэтому подписали договор и ушли.

За день до сдачи в ЗАГС паспортов выяснилось, что ни с кого из наших знакомых в ЗАГСе не требовали лишних денег(в других городах РФ). И после непродолжительного поиска информации были найдены подобные истории, которые, впрочем, не поясняли, как стоит действовать. Так же, была найдена ссылка на ФЗ "Об актах гражданского состояния", который гласит "5. По желанию лиц, вступающих в брак, государственная регистрация заключения брака может производиться в торжественной обстановке". Решили выбить себе торжественную регистрацию брака без дополнительных сомнительных расходов и выяснить все моменты при сдаче паспортов.

В день сдачи паспортов сотрудник ЗАГСа поинтересовался, оплатили ли мы квитанцию, и на наш отрицательный ответ, отвел нас к другому сотруднику в кабинет(ну не в общем же помещении такие вопросы выяснять, что вы). В кабинете нас обрабатывали, как могли. Единственный разумный агрумент сотрудника ЗАГСа сводился к тому, что в ФЗ "Об актах гражданского состояния" не разъяснено, платно или бесплатно должна проводиться регистрация в торжественной обстановке. Сотруюником попалась болтливая тетка и пыталась нас "заболтать". Рассказала и практику в других городах, и о том, что данная навязанная услуга взялась не с потолка, а по отзывам других молодоженов(!!!когда я попытался узнать, где можно оставить свой отзыв по данному вопросу, она лихо перевела тему). Главная мысль, которой была пронизана ее речь была в том, чтобы донести до нас, что мы "из другого мира", что ничто не делается "за просто так". Мы с женой уж было ждали от нее фразу типа "да что, вам жалко чтоли?!", потому что к этому все и шло. Поставили вопрос ребром: "мы платить дополнительно ничего не будем, как в таком случае будет проходить регистрация?". Так вот, "за так" от них можно ожидать абсолютно такую же торжественную программу, но с маршем Мендельсона из магнитафона и никто из сотрудников не сможет нажать на кнопку, когда настанет момент танца молодоженов(в их обязанности это не входит. в нашем случае это сделал фотограф). Комната молодоженов тоже была в нашем распоряжении.


Итоги:

За торжественную регистрацию дополнительно мы ничего не платили, обойдясь только госпошлиной(350р).

Во время ценемонии не было никаких кислых лиц или заминок со стороны работников ЗАГСа. Магнитофон не ломался:)

Фотограф спокойно делал свое дело, ему никто не мешал

Был танец молодоженов



Действия происходили в Екатеринбурге

Показать полностью
Отличная работа, все прочитано!