1773

История с Java...script

Серия История с Java...script

Устраивался как-то на одну из первых работ. Откликнулся на вакансию программиста в компанию местного провайдера. В описании ничего необычного, требуются знания HTML, JavaScript и чего-то еще, уже не вспомню.

Пришел на собеседование, меня без лишних слов отправили за компьютер сделать какую-то простую страничку. По сути это была верстка, даже не программирование. Что ж, задание есть задание. Сделал за 15 минут. Задание давал, как выяснилось исполнительный директор. После того, как я ему показал результат и его он устроил, был отправлен к другому директору, выше которого в компании уже никаких директоров нет.

Уселись с ним на диван, и он начал беседу: "Насколько хорошо ты знаешь Java". И делает паузу. Я напрягся. После двухсекундной паузы он все же произносит: "...script". Я с облегчением выдохнул: "Нет предела совершенству." Далее шел еще какой-то диалог, но не суть важно.

На первый рабочий день пришел другой программист и сразу выяснилось, что я нужен ему на замену, а он увольняется (или скорее его увольняют); поэтому он передает мне все дела, документацию и прочее. Когда он открыл проект, над которым работал в данный момент, то я покрылся холодным потом. Это был самый настоящий 100% натуральный код на Java. Он поинтересовался – с какого пункта надо объяснять. Я признался, что с нуля. Пути отхода я уже не видел. В голове промелькнули мысли про голодные дни, когда я снова ищу работу, и надо проходить собеседования. Поэтому я остался внимать суть по новому для меня направлению, тем более день собеседования уже был позади.

Дальше я неделю приходил на работу, где мне не давали никаких задач, я просто изучал проект и заодно азы Java. Познавал до набухания мозга что такое есть сервлет, зачем нужен TomCat и прочие явошные дела. Что-то у меня даже получалось, но это было копирование имеющегося кода с незначительными изменениями.

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

В итоге когда мозг совсем набух от влитых знаний, я принял самостоятельное волевое решение переписать проект на PHP, о котором никому не сообщил и принялся за переделку. На мой взгляд этот личный кабинет был очень простой и делать его на Java было неправильным решением. Я так понял, что тот, кто этим занимался, просто знал Java и ему было так удобно сделать. А то, что найти специалистов на замену будет сложновато как-то никто не думал. При этом я прибегнул к небольшой хитрости. Дело в том, что с этим проектом можно было работать только с ноутбука в офисе, во внутренней сети. Но я нашел лазейку, и отключил функцию засыпания ноутбука, когда крышка была закрыта. Уходя с работы, я просто закрывал крышку с незалоченным Windows, а из дома подключался к нему через удаленный рабочий стол и работал. Так я не был зависим только от рабочего времени и писал код вечером и ночью. Я только беспокоился на тему того, что кто-то надумает посмотреть что в ноуте в этом время, но вроде ничего такого не было.

За две недели все было готово. Новое веб-приложение на PHP я выкатил ночью в выходные. В понедельник ко мне прибежали менеджеры с разными проблемами. Вполне логично, что не все было сделано хорошо и некоторую бизнес-логику я упустил. Зато теперь я мог все это чинить, потому что код был полностью мой и я понимал все что он делает, поэтому за неделю все горячие проблемы разрешились.

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

Лига программистов

2.3K поста12K подписчика

Правила сообщества

- Будьте взаимовежливы, аргументируйте критику

- Приветствуются любые посты по тематике программирования

- Если ваш пост содержит ссылки на внешние ресурсы - он должен быть самодостаточным. Вариации на тему "далее читайте в моей телеге" будут удаляться из сообщества

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

Вот это ты конечно сильно работодателя обманул.

Подумать только, настроил удаленку и работал ещё и из дома, в свободное время.

Я бы на месте начальника в полицию заявил.

раскрыть ветку (1)
35
Автор поста оценил этот комментарий

Просчитался, но где? )

показать ответы
36
Carpe diem
Автор поста оценил этот комментарий

Так очень часто бывает в конторах, где всё делает один программист.

Да и не только.

У нас есть очень ценная приблуда, писанная поляками на... держитесь... Visual Basic .NET. Когда она перестанет устраивать в существующем виде мы вряд ли станем искать разработчика со знанием этого прекрасного языка, а сделаем с нуля на что_там_будет_модно


Select Case CInt(dv(i).Item("IdUnitOp"))

Case 1, 2, 3, 4, 5, 6, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 30

jm = " " + dv(i).Item("EngUnit1")

GetMyStrSngMs(dv(i).Item("PresVal"), suZa, jm, 0)

GetMyStrSngMs(dv(i).Item("ActVal"), suRe, jm, 0)

GetMyStrSngMs(dv(i).Item("Accuracy"), ac, jm, 0)

tx = "<TD align=right style='border: 1px Solid gainsboro; font-size: 9pt' bgcolor='" & bCol & "'>" & dv(i).Item("PresValTx") & "</TD>"

PrintLine(1, tx)

tx = "<TD align=right style='border: 1px Solid gainsboro; font-size: 9pt' bgcolor='" & bCol & "'>" & dv(i).Item("ActValTx") & "</TD>"

PrintLine(1, tx)

tx = "<TD align=right style='border: 1px Solid gainsboro; font-size: 9pt' bgcolor='" & bCol & "'>" & dv(i).Item("AccuracyTx") & "</TD>"

PrintLine(1, tx)

Case 7, 21, 8, 40

tx = "<TD align=left style='border: 1px Solid gainsboro; font-size: 9pt' bgcolor='" & bCol & "'>" & dv(i).Item("PresValTx") & "</TD>"

PrintLine(1, tx)

tx = "<TD align=left style='border: 1px Solid gainsboro; font-size: 9pt' bgcolor='" & bCol & "'>" & dv(i).Item("ActValTx") & "</TD>"

PrintLine(1, tx)

tx = "<TD align=right style='border: 1px Solid gainsboro; font-size: 9pt' bgcolor='" & bCol & "'>&nbsp</TD>"

PrintLine(1, tx)

Case Else

tx = "<TD align=right style='border: 1px Solid gainsboro; font-size: 9pt' bgcolor='" & bCol & "'>&nbsp</TD>"

PrintLine(1, tx)

tx = "<TD align=right style='border: 1px Solid gainsboro; font-size: 9pt' bgcolor='" & bCol & "'>&nbsp</TD>"

PrintLine(1, tx)

tx = "<TD align=right style='border: 1px Solid gainsboro; font-size: 9pt' bgcolor='" & bCol & "'>&nbsp</TD>"

PrintLine(1, tx)

End Select

раскрыть ветку (1)
7
Автор поста оценил этот комментарий

Dim tdLeft As String

Dim tdRight As String

Dim tdEndEmpty As String

Dim tdEnd As String

tdLeft = "<TD align=left style='border: 1px Solid gainsboro; font-size: 9pt' bgcolor='"

tdRight = "<TD align=right style='border: 1px Solid gainsboro; font-size: 9pt' bgcolor='"

tdEndEmpty = "'>&nbsp</TD>"

tdEnd = "</TD>"

Select Case CInt(dv(i).Item("IdUnitOp"))

Case 1, 2, 3, 4, 5, 6, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 30

jm = " " + dv(i).Item("EngUnit1")

GetMyStrSngMs(dv(i).Item("PresVal"), suZa, jm, 0)

GetMyStrSngMs(dv(i).Item("ActVal"), suRe, jm, 0)

GetMyStrSngMs(dv(i).Item("Accuracy"), ac, jm, 0)

tx = tdRight & dv(i).Item("PresValTx") & tdEnd

tx = tx & tdRight & bCol & "'>" & dv(i).Item("ActValTx") & tdEnd

tx = tx & tdRight & bCol & "'>" & dv(i).Item("AccuracyTx") & tdEnd

PrintLine(1, tx)

Case 7, 21, 8, 40

tx = tdLeft & bCol & "'>" & dv(i).Item("PresValTx") & tdEnd

tx = tx & tdLeft & bCol & "'>" & dv(i).Item("ActValTx") & tdEnd

tx = tx & tdRight & bCol & tdEndEmpty

PrintLine(1, tx)

Case Else

tx = tdRight & bCol & tdEndEmpty

tx = tx & tdRight & bCol & tdEndEmpty

tx = tx & tdRight & bCol & tdEndEmpty

PrintLine(1, tx)

End Select


немного упростил. так заработает?

показать ответы
8
Автор поста оценил этот комментарий

Магия с потоками была успешно похерена?

раскрыть ветку (1)
12
Автор поста оценил этот комментарий

Естественно. Когда TomCat заменил на Apache

показать ответы
36
Poshanka!
Автор поста оценил этот комментарий
Отличная история, жалко, что пиздёж. Незнакомое приложение с незнакомого языка переписал за две недели, да ещё сам выложил, и никто ничего не заметил.
раскрыть ветку (1)
21
Автор поста оценил этот комментарий

Чего это оно незнакомое? Там тот же веб, функционал понятен по нажатию на кнопки, а скопировать уже известный html-код с браузера не составляет труда. Скрипты и ручки для запросов остается добавить. Структура БД известна, запросы в нее в коде Java были без ORM, как есть. Перенести их тоже не проблема. Там еще все пути оканчивались на `.xhtml`. Такой шаблон путей тоже встроил в новом коде. Так что недоверие – исключительно ваша проблема.

показать ответы
9
Автор поста оценил этот комментарий

точно не блогер 🤣

4 года назад влил 8 постов и успокоился. наигрался 🤣🤣🤣

раскрыть ветку (1)
5
Автор поста оценил этот комментарий

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

если не блог – то что это?

показать ответы
3
Автор поста оценил этот комментарий

Не, тут спору нет, я на них зла не держал, и 11-й год, еще удаленка вообще не популярна, и не столица, и люди далекие от IT). (хотя справедливости ради прошаренные, мы вместе с ними в онлайн игру играли где я с женой познакомился, по сути я уже через игру знал и тещу и тестя 😀 около года)

раскрыть ветку (1)
2
Автор поста оценил этот комментарий

как игра называлась?

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

Ну так ты и сочиняешь...

У провайдера не закрыт удалённый доступ во внутреннюю сеть для ПО удаленного доступа? У провайдера? В какой-нибудь конторе, где работает полтора землекопа - можно запросто поверить. У провайдера - вероятность ничтожна. Сейчас скажешь, что за давностью лет не помнишь, был ли это провайдер? 😆


Ну как... ты же сам пишешь, что ничего не понимал и охренел, когда увидел. Сидел, разбирался, изучал... Там же мало знания самого синтаксиса - там у тебя сервлеты с томкатом были. Если не знаешь, что это такое и как оно под капотом работает, - это за две недели не разобраться никак, тем более - еще и написать полную замену этому... Тут месяц будешь только эту технологию изучать, даже если чисто ядро знаешь, если нормально так изучать, а не верхушки хватать.

раскрыть ветку (1)
4
Автор поста оценил этот комментарий

У провайдера не закрыт удалённый доступ во внутреннюю сеть

это веб-приложение, которое доступно было только во внутренней сети. это значит идешь по адресу типа http://192.168.100.30 и видишь страницу этого ЛК. Соответственно снаружи ты ее не увидишь, потому что это локальный адрес. А сам рабочий ноут имел выход наружу. Что тут невероятного?


еще и написать полную замену этому

а в чем проблема написать сайт, если доступен пример. HTML имеется, данные запросов тоже можно увидеть в браузере. сопоставить их со схемой БД тоже можно

показать ответы
3
Автор поста оценил этот комментарий

Чувак, рабочий ноут имеет доступ наружу != рабочий ноут имеет доступ ко всему наружу.

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


У тебя контора, основная задача которой - последняя миля сети. То есть, контора, где пересекаются региональная сеть и сети клиентов. Тот, кто админит в этой конторе, не может не знать, что будет, если произойдёт несанкционированное проникновение за защищённый периметр сети. Там стандартный набор политик безопасности, как правило. И по-любому закрыты все подключения извне, в том числе, через удалённый доступ. Максимум через vpn будет, и то не всем.


При чем здесь твое приложение, которое светится во внутреннюю сеть? Это и так понятно.


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


Ты что, реально считаешь, что фронт шлет запросы напрямую в базу, и там нет слоя логики, которую снаружи не видно? Как ты собираешься реализовывать то, что ты не знаешь? У тебя вся логика должна быть скрыта в приложении, не видно ее снаружи никак. Пытаться сопоставить геты и посты с фронта со схемой базы данных - это форменный трэш.

раскрыть ветку (1)
3
Автор поста оценил этот комментарий

ты просто мимикрируешь под программиста

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


Тот, кто админит в этой конторе, не может не знать, что будет

я забыл что у тебя третий глаз и ты видишь кто как админит в конторах


фронт шлет запросы напрямую в базу

естественно не напрямую, а через собственно приложение, в коде которого прописаны строки запросов в БД

показать ответы
0
Автор поста оценил этот комментарий

Во-первых: вы учтите сколько лет этой истории. Ваш vue вообще тогда существовал?


Во-вторых: я не оцениваю профессионализм *только* по знанию пхп. Но сам факт знания пхп (как и любого другого языка бэка) говорит о том, что человек скорее всего профессиональнее того, кто его не знает.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Ваш vue вообще тогда существовал?

спешу развеять сомнения. в 2011 году Vue еще не существовал

Иллюстрация к комментарию
0
Carpe diem
Автор поста оценил этот комментарий

Напомню, что этой историей вы пытались продемонстрировать, что выучить C++ за неделю - реально. Не в 95, а сейчас.

Ну так реально же.

Остальное зависит от критериев "выучить".

Я по-прежнему настаиваю, что "устроиться на работу в Яндекс" и "выучить" это разные понятия.


Что касается "сейчас" - я же период не скрывал. А в контексте обсуждения истории ТС эпоха тоже непонятна.


Этот джун фронтом-джаваскриптизером был

В посте этого нет. Написано что в вакансии были требования знания js и html. Если взять, допустим, IT-ландшафт 20-летней давности, то HTML, PHP и JS это был один (и весьма распространённый) стек и особого разделения на бэк и фронт не было.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

в контексте обсуждения истории ТС эпоха тоже непонятна

знал бы, что такие детали будут обсуждать, то обозначил бы. 2011 год это. джаваскриптером я не был, а как раз писал на PHP, а JavaScript и jQuery иже с ним всегда идут впридачу.

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

Слишком много невероятностей в посте. Автор, как минимум, приукрасил действительность(это совсем мягко говоря).


Мне представляется невозможной ситуация, где руководство не в курсе, кого же оно ищет: фронта? бэка? Ну, если написано в качестве основы js и html - это же точно фронт. На java фронт не пишут, вать машу. Что, руководство не способно отличить java от js? Автор тестового задания точно сможет. Зачем искать фронта, если нужен бэк? Короче, уже в этой точке история теряет всякий намек на истину, и, похоже, написана чисто вокруг "java <-> javascript"


Удалённый рабочий стол. Он же rdp, это винда.

Rdp скрывает рабочий стол пользователя, невозможно с экрана ноута увидеть, что там кто-то подключен явно, и что он там делает - тем более. Там будет виден экран блокировки. Оставлять незалоченным ноут можно только если использовать какой-то TeamViewer или Ammyy Admin. Но и то, и это умеет быть службой, и прекрасно себе работает, не привязываясь к сеансу пользователя. Но автор-то использовал удалённый рабочий стол.


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


Человек, не имеющий понятия, что такое ЯП со строгой типизацией, разобрался в проекте за две недели, и переписал его на свой лад?

Разобрался - точно не разобрался, а только так думает. Переписал на свой лад, изучив, что оно умеет, с фронта? Это куда реалистичнее звучит, особенно, если проект по масштабу сопоставим с каким-то учебным. Что на проде у провайдера представляется какой-то лютой дичью, даже в конце двухтысячных.


Почему именно это время? Да потому что позднее вряд ли кто-то мог копаться в сервлетах на проде, когда можно было использовать спринг.


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


А теперь все в кучку:

Провайдер, доступ, технологии, время.


В общем, в текущей реализации хорошая сказка получилась.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Слишком много невероятностей в посте

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


Человек, не имеющий понятия, что такое ЯП со строгой типизацией

вы по тексту из нескольких абзацев сформировали мнение о том, какое я имел понятие или не имел. третий глаз имеется?


использовал удалённый рабочий стол

если вместо rdp это был teamviewer, насколько это меняет ситуацию? возможно, он и был. я за давностью лет таких подробностей не помню и поэтому условно обозначил в посте. а, забыл еще что тут будут цепляться за каждую ниточку, чтобы обвинить меня в сочинительстве

показать ответы
1
Автор поста оценил этот комментарий
Абсолютно ничего не понял, но интересно!
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

если поищешь в википедии слово JavaScript, то в самом предисловии будет указана суть поста

Иллюстрация к комментарию
0
Автор поста оценил этот комментарий

СУККООО, требую продолжения!!!

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

продолжение в наличии, 1 шт.

показать ответы
0
Рыцарь сарказма
Автор поста оценил этот комментарий

Да не переживай ты так. Все равно этот говносайт сотрудникам не нужен, он нужен только директору для его ЧСВ и "развития бизнеса". А старики перестроятся за пару недель. Просто ищи работу, когда он обнаружит эту херню - возбудится, обещаю.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

1. это было в 2011 году
2. у поста есть продолжение

показать ответы
3
Автор поста оценил этот комментарий

Так мы можем спорить бесконечно.


Ты выдергиваешь мои слова из контекста, отвечаешь только на удобные тебе вопросы, игнорируешь ключевые и неудобные.


Для начала давай основной тезис разберём.


Можешь себе представить, зачем рекрутеру искать JS-программиста в Java-проект? Вот и я не могу. А у тебя в посте именно так написано.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Можешь себе представить, зачем рекрутеру искать JS-программиста в Java-проект?

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

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

Серьезно?

И сколько таких "ошибившихся" в цепочке?

Автор тестового задания, некий директор, выше которого нет - что, все они "ошиблись"?

И эту "ошибку" никто не заметил в процессе общения прям вообще никак?


Да это бы вскрылось на первом же кандидате, хрюше дали бы по щщам, и выложили бы нормальную вакансию.


Да и не принимаются программисты на работу через тестовое задание без технического интервью.


Есть ли смысл продолжать спор?

раскрыть ветку (1)
Автор поста оценил этот комментарий

Есть ли смысл продолжать спор?

нет, конечно. вся суть ваших доводов, что вы не верите)

показать ответы
10
Автор поста оценил этот комментарий

Имхо пиздежь. К залоченому ноуту можно подключиться по рдп, но нужно попасть в сеть компании, ну и сервис пишется не через его же ВЭБ морду всё таки.

И каким хреном возможно переписать проект, если ты не можешь читать код этого проекта? Каким хреном ты смог бесшовно переехать? Ты бд копировал?

раскрыть ветку (1)
Автор поста оценил этот комментарий

Ты бд копировал?

если имеется доступ к серверу, БД несложно скопировать, чтобы в случае чего переключить обратно на прежнее приложение


Каким хреном ты смог бесшовно переехать?

а вот это как раз описано в посте - я выкатил ночью в выходные. в выходные с приложением не работали и поэтому можно было даже выключить его на это время

2
Автор поста оценил этот комментарий
А чо делаешь на самом деле?
раскрыть ветку (1)
Автор поста оценил этот комментарий

пользуясь случаем даю ссылку на бложик https://crazyzubr.ru

показать ответы

Темы

Политика

Теги

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

Сообщества

18+

Теги

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

Сообщества

Игры

Теги

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

Сообщества

Юмор

Теги

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

Сообщества

Отношения

Теги

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

Сообщества

Здоровье

Теги

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

Сообщества

Путешествия

Теги

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

Сообщества

Спорт

Теги

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

Сообщества

Хобби

Теги

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

Сообщества

Сервис

Теги

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

Сообщества

Природа

Теги

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

Сообщества

Бизнес

Теги

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

Сообщества

Транспорт

Теги

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

Сообщества

Общение

Теги

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

Сообщества

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

Теги

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

Сообщества

Наука

Теги

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

Сообщества

IT

Теги

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

Сообщества

Животные

Теги

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

Сообщества

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

Теги

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

Сообщества

Экономика

Теги

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

Сообщества

Кулинария

Теги

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

Сообщества

История

Теги

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

Сообщества

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

Теги

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

Сообщества