Привет двач, я обычный 300к/нс с галеры на кровавом жыр-тыр-прайзе. На данный момент пилю фронты на проекте. Уже год. В одно рыло. Волею судеб и длинной историей я вынужден жрать говно работать на фронте вместо моего любимого .NET Зачем я все это накатал? Да хуй знает просто накпило, дальше идет долгое и нудное нытье. Для контекста: диплом ДС вуза из топ 10, стаж 3.5 года, я крч джуно-мидл.
Проект взяли у другого исполнителя и отдали делать нам. Первое время мы кстати делали это все параллельно в разных репах, что порождало тонны геморроя на ровном месте, но мы не о том.
1. Это прекрасное решение создавать новый объект ХТТП клиента каждый запрос. пикрил 1 это просто вход на главную страницу проекта и один переход в нем. Уже ощущаете как каждый раз создается новый инстанс axios? Как в нем заново прописываются параметры, заголовки, идет обращение к конфигу приложения, и на все это тратиться время.
2. Можно подумать ну хуйня че сложно переписать? Но ты бы не читал это коли бы так. Я представляю тебе не много не мало, а МАГНУМ ОПУС больной на голову макаки и это АПИ фронта. Вот как это делают нормальные люди. Пишем несколько классов, разбиваем их на AuthorizeClient, FileClient, PupaClient. В них пишем методы, какую-то базовую логику выносим в общий клиент запросов и вроде у нас тут тоже есть базовая обработка запросов, НОООО то как сделаны сами конкретные запросы см. пикрилы. Да двачер, мы пишем код аля await api(GET_PUPA_SALARY); а потом это всё обрабатывает switch case. Да там серьёзно написано 800 строк того о чем ты подумал. 800 строк свитч кейса.
3. Еще мы используем Докер. Я блять ненавижу Докер. Причем я все не могу донести уже нашим светилам кода, что совать туда фронт не нужно, не нужно потому что фронт это просто папка файлов. Но нет у нас в образе весом 240Мб лежит папка файлов на 3.31Мб. Все по взрослому обмазано ямлами, конфигами и прочей залупой, но по факту папку файлов суют в контейнер чтобы НЕ БЫЛО КОНФЛИКТА ЗАВИСИМОСТЕЙ ПРИ РАБОТЕ.
4. Я был на паре собесов ищем второго фронта на проект. Там приглашают чела чтобы он унижал кандидатов на задачах по JS. Был гигачэд с 25 годами опыта, он не смог их решить и я бы не решил и сам этот хуесос если бы не прочитал статью "Я долбоеб или 100 ебаных вопросов на собесе". Теперь инсайд тебе мой вкатун или джун. НЕ ТРЯСИСЬ. С той стороны сидит толпа людейбездарей, у нас 5 человек которые не знают что спросить чтобы перед лицом начальствующим выглядеть на свою зепеху. Поэтому они начинают спрашивать какую-то херь. Знай же, что я пытался вразумить и сказать что единственный нормальный вопрос на собесе это Чем ты гордишься?. Любой человек которому хоть как-то интересно, даже полный нуб, расскажет тебе про модуль, задачу, лабу, диплом, курсач, как он два дня отлаживал и сделал красиво. По итогу я посрался со всеми и больше меня на собесы не зовут.
Дочитал до сюда? Молодец, спасибо. Потратил время жизни, а мог подрочить.
>>276710196 (OP) > 2. Можно подумать ну хуйня че сложно переписать? пиздос конечно, хотя встречается и не такое. я бы на твоем месте попробовал переписывать по одной ручке за раз. типа, взять сначала вот эту FILES и везде в коде переделать по уму, потом следующую и так далее, долго, муторно, но вполне решаемо
>>276710196 (OP) >Да двачер, мы пишем код аля await api(GET_PUPA_SALARY); а потом это всё обрабатывает switch case. Да там серьёзно написано 800 строк того о чем ты подумал. 800 строк свитч кейса. То есть ты - говно без права голоса и просто пришел поныть? Рил не понимаю, в чем проблема команде сказать, что они пишут говно. Нет, ты молча поддержал инициативу, а сейчас говно на двачи вываливаешь
>>276710692 Это написано не нашей командной, жопой читал? Проект до нас писали 3 года долбоебы. Там на беке тоже самое. Я один пишу фронт. И да, работает не трогай. Время на переписать спроси у менеджера.
Моё дело им сказать что все говно и они соснут через год, но я уже уволюсь к тому моменту наверное
>>276710805 Ну так если работает, то в чем проблема? Какая разница как вызывать метод, если по итогу ты работаешь с результатом, который в обоих случаях будет одним и тем же Promise
>>276710710 ты в итоге больше сил и времени потратишь на поддержку этого дерьма а тут у тебя есть возможность решить интересную инженерную задачу - как провернуть такой рефакторинг не разломав к хуям проект. если получится, то в дальнейшем на собесах будешь рассказывать, как ты охуенно сам поставил задачу и сам ее блестяще выполнил трать хотя бы по часу в день в ущерб прочим таскам, никто особо и не заметит твоей просадки производительности
>>276710938 Суть в претензии как это вообще смогли родить и главное нахуя? Понимаешь вот есть норма приличия не срать на улице, даже бомжи срут за кустами. Тут тоже самое.
Я чисто их любви к прекрасному по субботам трачу по часу чтобы переписать в отдельной ветке, но блять там 180 методов
>>276710980 Я уже переписал это на синглтон и добавил интерцепторы для перезаписи токена, конфигурации и в целом для кошерной работы с запросами. Другой вопрос что это было больно и пришлось все равно сделать костыли чтобы вместить в уже написаное говно
>>276711201 Так тут за кустами и насрано. Для заказчика все норма работает. А ты, как раз, тот самый бомж, который потом на минном поле за кустами подрывается, когда ищет, где ты еще нагадить.
Желаю удачи перейти на дот нет. Сам по работе под дот нет разработкой занимаюсь, а конкретнее - десктоп. Балдею от каждой таски, от новой разработки и даже от багфикса.
>>276711312 Потому что это будет красиво и приятно потом поддерживать? И да оно будет работать быстрее. Свитч кейс это куча if оно в них преобразуется. И поэтому чем ниже находится метод апи тем дольше его будет искать делая сотню проверок и так каждый раз все дольше. Опять таки отладка в браузере не как говно
>И да оно будет работать быстрее Там разница в тысячных долях секунды разница будет между текущим вариантом и тем что напишешь ты. Если сравнить с задержками, которые вызывает сеть, это буквально ничто и даже думать об этом не стоит
>Опять таки отладка в браузере не как говно Зачем тебе отлаживать сетевые запросы?
>>276710196 (OP) Вообще нихуя не понял что ты написал, хорошо что я падсибя работаю всю жизнь. На пиках код какой-то ебаный ооп-бред.
>>276711500 >Потому что это будет красиво и приятно потом поддерживать? Ты не свой проект пишешь и не научную работу, оопешка.
Нужно чтобы работало и никого не волнует как это будет работать, если не вызывает ошибки и без обсеров, чтобы работало на донных устройствах меньше времени которое требуется клиенту чтобы съебать с этого дерьмосайта. Это не какой-то важный и нагруженный сервис, это ебаное очередное дерьмино, ссаный магазщин небось какой.
Именно для этих целей (быстрая работа и быстрый выпук в продакшн) было придумано всякое дерьмо вроде дотнета, на которой ты так дрочишь, вместо того чтобы писать на божественном си.
Запоминай, мидл. Для дерьма пиши дерьмовый код. Для нормальных сервисов пиши нормальный код. Всё нах.
>>276710196 (OP) > Да двачер, мы пишем код аля await api(GET_PUPA_SALARY); а потом это всё обрабатывает switch case. Да там серьёзно написано 800 строк того о чем ты подумал. 800 строк свитч кейса. Представляю, как тебя от GOTO в коде порвёт.
>>276710196 (OP) >Пишем несколько классов Проиграл. Пошел вон отсюда. Постоянно такие как ты хотят нахуевертить классов, разложить по контроллерам, создать тысячи файлов и папок.
Въебал функциями, сделал в нескольких файлах - работает? Всё заебись, задачи бизнеса работают. Пока ты там дрочишь свои классы и наследования с полиморфизмом - теряешь время, соответственно нет денег за этапы работ. А я делаю быстро, делаю так, чтобы работало хоть как-то. Получаю деньги. Если нужны оптимизации и есть время и платят деньги - занимаюсь этим.
>>276715530 >Въебал функциями, сделал в нескольких файлах - работает? Всё заебись, задачи бизнеса работают. Вот такой же хуесос делал говно с пиков. А хули че щас работает и похуй.
Че будешь делать когда количество таких функций перевалит за 100 и тебе скажут что нужно изменить базовую логику работы или добавить что-то ко всем запросам
>>276710196 (OP) >4. Тоже побывал на нескольких собесах со стороны работодателя. И реально не понятно, что спрашивать. Теорию смысла не вижу гонять, потому спрашивал про проекты и опыт, с чем сталкивался, что было сложным и т.д.
Алсо, я раньше думал, что лучше брать студента, нежели вкатуна, но посмотрев на тех и других, понял, что с вкатуном будет проще я про более-менее подкованных теоретически и практически тех и других. Они как-то приземленнее, с можно РАБОТАТЬ. У студентов какие-то маняфантазии, далекие от реальности.
>>276715877 Реально? Я должен открыть, посмотреть что делать Helpers, потом js должен импортить ОДИН файл и его функцию, вместо того чтобы просто написать JSON.stringify?
>>276716260 // reobtain token ... Зачем ты пишешь комментарий, если там и так понятно, что токен рефрешится? Лучше напиши в комменте что такое this.expiresIn 0.9 1000 Почему именно это число
>>276716353 Потому что в oauth реобтейн осуществляется через прошлый токен, а не логин/пароль, могут подумать, что речь идет о получении токена заного. expiresIn это просто часть oauth, 0.9, чтобы чуть раньше реобтейн сдеьать, чем токен истечет
>>276716304 >там поймает, где-то спустя три файла и 5 функций А поподробнее сделать как-то, выкинуть ошибку что соединение не работает именно в тот момент нельзя?
>>276716304 Ошибки нужно обработать на месте, а не кидать в глобальный трай кетч.
Вообще нельзя писать глобальный, если ты проибав ошибку на месте она должна вылезать и орать что есть. А так ты по сути её поймал и молча сожрал, а потом не понятно че тыкаем и ничего не происходит
>>276716458 А в чем смысл? Получишь тоже самое, суть в том, что если там серьезная ошибка происходит, там так или иначе ошибка в верхний уровень перекидывается. Там таких запросов миллион, мне каждый проверять?
>>276716584 >тут так или иначе ее ловят Ловят в другом месте попутно с этим выполняя дальше программу. Хотя если коннекта нет - в чем смысл выполнять программу дальше?
>>276710196 (OP) Говнокод в проектах рождается часто причине жадных кабанчиков, и только их.
Поди искали фронта на проект за маленькие деньги, и естественно нашли за эти деньги фронта с нулевым опытом которые припезднул на счет мидловского уровня выучив наизусть парочку ответов на вопросы с собесов
Вот это чудо и писало код. Хотя судя по всему у вас фулстеками работать принято, то тогда вообще ещё может хуже дело обстоять
>>276716584 Смысл в том что цель не в логи записать, а обработать ошибку. В месте где она произошла это сделать можно, а в трае вокруг app.run() вообще не понятно что это было
>>276716973 >если она фатальна Ну вот и заверши программу.
А представь вот какой-то случай, когда какая-то ошибка и пойдет память жрать. Вроде как и ошибка была, случилась, а вроде как и программа продолжает работать.
>>276716877 Судя по истории коммитов на беке и фронте это делали разные люди. И да на фронте минимум 3 разных чела отметились. Местами видно качественный код и какие-то хитрые манипуляции.
А есть раздел загрузки документов на 1200 строк в 4 файлах где происходит собирание имени файла из строки и данных путем замены тегов на нужные даные
>>276710196 (OP) Сам щас на говно проект влетел. Платят хорошо, но хз пройду ли испытательный, потому-что решил для себя что буду работать здесь только если не будут ебать сроками, поэтому довольно вальяжно ковыряю это срань написанную кме-то впопыхах.
>>276710196 (OP) >Там приглашают чела чтобы он унижал кандидатов на задачах по JS Какой уровень надо набить на codewars чтобы пройти через эту хуйню? мимо 4-кю
>>276710196 (OP) >Теперь инсайд тебе мой вкатун или джун. НЕ ТРЯСИСЬ. Вкатился в начале лета, при этом до этого знал и понимал принцип. Благодаря пониманию и хорошей памяти просто выучил абсолютно все вопросы из всех подборок топ50 вопросов собесов по стеку, кодинг интервью по стеку книгу, посмотрел десяток моков, и в итоге прошел просто потому что оттарабанил хорошей речью ответы на все вопросы без заминок на разных уровнях глубины. Знаком с парнем что учит шарп, учит как все вкатуны, т.е. полгода учит именно шарп, т.е, не какие-то задачи на шарпе, ни какие-то фреймворки или сферу применения, он учит ИМЕННО шарп. Я его спрашиваю - "Ты полгода учишь, какой продукт/программу/приложение ты можешь сам написать?", он не понял вообще и спустя пару минут пыток мы поняли что он может написать консольный калькулятор или программку которая срет рандомными номерами в текстовый фаил. Я ему сказал что это 5 часов обучения максимум и что он занимается хуйней. Он все равно решил дальше учить так как считает правильным, хотя он даже не знает где шарп применяется, еще не выбирал и даже не узнавал.
Иногда хуею что с двачеров, что с нормисов. План описывается на всех сайтах, на всех форумах, он простой и описывается в 5 пунктов максимум. Эти же дауны выдумывают себе какой-то свой план из своей башки, какие-то свои загоны, какие-то свои затупы и пытаются получить какие-то неведомые навыки непонятно чего, которые вообще оторваны от рынка, а потом жалуются на кабанчиков/аллаха/кого-угодно
А чо такова, сам пишу фронтэнд периодически, ну я тоже всякого говна наворачиваю, так-как 70% времени бэком занимаюсь, но кто-то должен быть фуллстеком по штатному расписанию. 300К в месяц получаю, похуй ваще, работает и ладно. Никто не жалуется.
>>276717511 >лжен быть фуллстеком по штатному расписанию. 300К в месяц получаю, похуй ваще, работает и ладно. Никто не жалуется. А потом из за таких погромистов дота лагает. Ахуеть просто. У сука за что вам платят
>>276717556 Вообще я даже не закончил, бросил на 3-ем курсе. Вкатывался лет 7 назад, просто приволок туда свой проект, который делал сыну маминой подруги, вполне себе коммерческий, до сих пор работают в нем, в его конторе, а им как раз надо было то что там написано. Просто повезло, плюс я сам далеко не дебил.
>>276710196 (OP) Лол. Про собес классика. Я просто стараюсь понять адекватность претендента и обучаемость. А то под пару проектов брали человека, под давлением руководства, такой токсик оказался неорганизованный. Всё перепроверять, отчётов никаких, всех пугал и вылетел с большим скандалом.
>>276710196 (OP) Так то база. В этом вся квинтесенция программирования: есть какой-то задрот и, чтобы казаться умным, то ли себе, то ли другим таким же задротам, нахуярил кучу каких-то идиотских абстракций, одному ему понятных, и засрал этим весь проект.
>>276717511 Потом компания наконец раскошеливается на полноценного фронта, и фронт хочет разъебать ебососину всем кто прикладывал руку к этому фекальному сталагмиту
>>276710196 (OP) >новый объект ХТТП клиента каждый запрос Ну создает он, дальше что? Там бля в конструкторе пара свойств присваивается, никто тебе не даст доступа из жс к низкоуровневым интерфейсам. >новый инстанс axios Как бы используя аксиос в 2022 году ты уже жидко серанул в штанцы, энтерпрайзер хуев. >Да двачер, мы пишем код аля await api(GET_PUPA_SALARY); а потом это всё обрабатывает switch case. Да там серьёзно написано 800 строк того о чем ты подумал. 800 строк свитч кейса. Ну и в чем трабл переделать все это говнище на енумы из тупоскрипта за 15 минут? Вполне рабочий вариант, хуй знает что тебе не нравится. >но по факту папку файлов суют в контейнер чтобы НЕ БЫЛО КОНФЛИКТА ЗАВИСИМОСТЕЙ ПРИ РАБОТЕ. Так блять нормально флоу разработки настройте, я хуй знает причем тут вообще жс и дотнет. >которые не знают что спросить чтобы перед лицом начальствующим выглядеть на свою зепеху. Поэтому они начинают спрашивать какую-то херь. Двачую. Меня на миддла реактопердоллера спрашвиали чем let отличается от var и как div отцентровать реальнособес вел не фронтендер
После 6 месяцев стажировки на пиздатом проекте, меня продали аутстафом в другую компанию, и там пиздец видел много похожего с оп постом. Они разрабатывают систему управления персоналом, в первый день на работе увидел в месте где для обычных сотрудников нужно одно поведение, а для каждого из менеджеров - другое, они попросили у заказчика имена всех менеджеров и ебанули 50 захардкоженых иф/елс (типо if username == 'Nariman'). Теперь дописываю фронт на ангуляре, хотя не писал до этого ни строчки на жс и брали меня чисто как бэка. И самый адок что я должен отработать тут еще год по контракту, ибо согласился на первый же офер стажера потому что думал что конкуренция ебейшая
>>276710196 (OP) Плюс минус норм код, не вижу на скринах ниче критичного. Да, говнокод, но глобально ни на что не влияет + легко покрыть тестами. Я бы стандартно написал чето типа AuthRepo(dataSource) {...} и дергал бы методы оттуда. Видел хуйню гораздо хуже
Работаю фронтом, зарабатываю хорошо, но почти всегда ненавижу всех в команде. Считаю программистов недолюдьми, общаться ирл с такими не хочу вообще
Команда состоит всегда из похожих типажей: 1. Какой-нибудь мемный задрот с приколами уровня мдк, и которого любит команда за его юмор. 2. Зумер который гонится за лайфстайлом айтишника с рекламных буклетов, т.е. всегда клянчит себе apple технику и с которым всегда проблемно связаться из-за того что этот долбоёб пытается работать с какой-нибудь шриланки, из-за чего почти всегда ебланит 3. Долбоёбы изображающие бурную деятельность и которые себя считают виртуозами в пиздеже о своей сделанной работе на дейликах 4. Бумеры-сеньоры, которые на вопросы касающиеся текущего проекта максимум высрут 2-3 слова, а об остальном ты должен сам догадаться, а если ты их немного помучаешь уточняющими вопросами показывают свою раздражительность 5. Нормисы которые топят за софт скилы только потому-что видимо чувствуют одиночество на удаленке, и поэтому вписываются за любые неформальные встречи и конфы, и делают тебе замечания если ты кладёшь хуй на подобное времяпровождение. Зато с такими даунам хуй созвонишься по работе, чтобы обсудить что-то голосом, тут им удобнее "через таск"
>>276719322 Вот высрется там ошибка, reject нет. Куда ошибка полетит то? Мне там к каждой функции дописывать говнокод, который будет эту ошибку дополнять, вместо того чтобы ебануть await
>>276719322 Бля, чел. Тебе просто надо убрать await. ВСЁ. >А как мне тогда поймать ошибк и в общий трайкетч запихнуть? Да блять никак, все будет работать так же как раньше, шизик ты ебнутый. ПРочитай доку блять, там прямо про это и написано.
>>276719322 >Ты мне обьясни блядь как в общий трайкетч без await и левых catch? Трайкетч нужен один на самом нижнем уровне, где дергаешь апи. в кетче создаешь APIError/HuiGovnoError/etc и пробрасываешь наверх.
>>276719890 Кто тебе такое сказал? В жсе трай кетч всегда был на всех уровнях и его так и использовали. А делать твои ебанные APIError слишком заебно, мне нахуй не всралось их обрабатывать, если одна из этих залуп фейлится, то скорее всего фатально.
>>276720025 Я не говнарь, чтобы TS использовать, а вот типизация ошибок, ну да, я так то растер и шарю, что все эти exceptions это уебищное говно, но вот сделать подругому в жс как то глупо, да и не нужно в данном контексте
>>276720035 > мне нахуй не всралось их обрабатывать, если одна из этих залуп фейлится, то скорее всего фатально ретрай можно сделать же, схуяли фатально
>>276720137 Ну куда ты там ретрай собрался делать в логин или отправку сообщения? Ну в теории отправка сообщений может зафейлится (макс 10 сообщений за 5 сек, согласно докам), но в реале такого не видел. Хуй знает мб потом и сделаю, в реальности когда пишешь код особо не думаешь, что там какая та залупа может зафейлится. Максимум недавно узнал, что у сообщений лимит есть.
>>276710196 (OP) >800 строк свитч кейса Мне 1500 строк такого говна приходилось рефракторить - все лежало в одном методе. Куча переменных, никаких объектов, всё запутано к хуям, на клиенте каша из жс, хтмл и пхп прямо в одной строке нахуй. Потом свалил от них - там весь проект в этом стиле был написан и элементарные вещи приходилось по неделе-две пилить, громко матерясь. На мой взгляд, там всё уже - тупик и факт неподдерживаемого говна за которое никто не возьмётся. Эта компания практикует нанимать пориджей, кстати. Вышеописанные проект вёл угробил какой-то выпустившийся студент без опыта.
>>276710196 (OP) ОПчик, а как по твоему правильная работа с апихой строится, что можешь из своего опыта рассказать? Буду благодарении если сможешь что-то посовать почитать по этой теме.
>>276720217 >Ну в теории отправка сообщений может зафейлится (макс 10 сообщений за 5 сек, согласно докам Все что может отпасть в теории, всегда гарантированно упадет в проде. Нормальную обработку сделать никогда лишним не будет. Сделай пару стратегий ретраев на всякий
>>276720484 >элементарные вещи приходилось по неделе-две пилить Идеальная работа же. Сидишь, попердываешь, хуйню элементарную пилишь и сваливаешь всю вину на того, кто написал код до тебя
>>276720922 >Ну это как посмотреть Думаю, что тебе сперва надо не посмотреть, а поработать с говнокодом недельку-другую. Потом выть начнёшь. Хули с дивана рассуждать?
>>276721209 Разгребал там, где это требовалось. В чем претензия? Я не понимаю. Ты сначала меня диваном называл, сейчас что-то еще не нравится. Причем здесь я вообще? Я просто указал тебе на то, что ты можешь расти как специалист и говнокод тебя не остановит (если есть желание)
>>276710196 (OP) >Причем я все не могу донести уже нашим светилам кода, что совать туда фронт не нужно, не нужно потому что фронт это просто папка файлов Блять, ты тут самый умный чтоле? Еще и в жыр-тыр-прайзе работаешь. Я еще понимаю когда в стартапе может какому-нибудь одебилевшиму от черничного смузи разрабу может такое в его тупую башку придти. Но в любой крупной компании, которая больше года существует - за такую мысль тебе сразу ебало набить ебальник. Иди пили свои кнопочки ебучие и не отсвечивай. Увижу если ьы своими вонючими потными ручонками прикоснешься к проду - разработаю тебе бэкенд так, что ты ходить неделю не сможешь. мимо DevOps
>>276720494 Пишем клиент для работы с запросами, в нем делаем самые базовые вещи которые только можно, отправка собственно запросов и обработка ответов. По сути это будет адаптер для того что лежит внутри, сможешь менять что конкретно у тебя делает запросы либа какая или обычный АПИ жс. Также у тебя мастхэв должен быть реализован глобальный перехват всех запросов и ответов, гули http interceptor. Таким образом сможешь просто напихивать цепочки методов для обработки не трогая вообще клиент. Банально сделать спинер или обработка ошибок, пересоздание токенов или повтритель по таймеру. Сам этот клиент суешь в глобальный компонент при создании и в любой точке приложения просто по this.$httpclient вызываешь.
В целом могу тебе только одно рекомендовать. Просто напиши свой мини проект по работе с каким-то АПИ, хоть с рабочим проектом. Главное просто делай, по гайдам из интернета аля Vue http client. Ты допустишь вагон ошибок и 100 раз получишь по щам от системы, но в этом суть. И вот когда ты написал уже свой 3 такой проект ты поймёшь что вот щас збс
>>276710196 (OP) > 3. Еще мы используем Докер. Я блять ненавижу Докер. Причем я все не могу донести уже нашим светилам кода, что совать туда фронт не нужно, не нужно потому что фронт это просто папка файлов. Но нет у нас в образе весом 240Мб лежит папка файлов на 3.31Мб. Все по взрослому обмазано ямлами, конфигами и прочей залупой, но по факту папку файлов суют в контейнер чтобы НЕ БЫЛО КОНФЛИКТА ЗАВИСИМОСТЕЙ ПРИ РАБОТЕ.
>>276721693 >Увижу если ьы своими вонючими потными ручонками прикоснешься к проду Я туда релизы ставлю, руками. У нас тест и прод это системы в внутренней сетке заказчика. Приложение требует интеграции с их сервисами. Поэтому контейнер заливается по сфтп, а потом руками надо запускать скрипт пересборки.
И да иди нахуй хуесос. В прошлой конторе девопс делал по кайфу и мы жили без докера как-то, почему-то вот нормально делали и нормально работало. Нет реально нахуй запихивать в докер фронт? Это ебанистика просто, что-то уровня белаза для перевозки булки хлеба
>>276722440 Просто .НЕТ имеет нормальный пакетный менеджер и таскает свои зависимости с собой. Сейчас вообще и сам дотНЕТ ещё может в билд положить. У меня никогда никаких проблем не было, просто по сфтп билд заливаешь и работает.
Единственный случай это если тебе там требуется какое-то окружение для работы приложения аля принтер виртуальный или ещё чего. Либо нужно быстро теражировать инстансы под нагрузкой
>>276722681 >Куда ещё его запихивать, довен Никуда блять, просто обнови сука содержимое папки с файлами фронта и все блять. Сервер её по запросу передаёт как есть сука, ну либо по частям файлы если настроено.
Нахуй в цепочке клиент-сервер-папка нужен докер? Так необходимо создавать на ровном месте ебатеки и чтобы выдавать в браузер папку с файлами?
>>276717486 Заебись тебе. Я 10 лет успешно работаю на фрилансе, но не могу себя заставить выучить ни одной задачи для собесов, и никогда не устроюсь даже джуном, хотя кодить умею лучше большинства помидоров.
>>276722862 Куда миграции блять шизоебы контейнерные.
ПАПКА БЛЯТЬ в ней лежат СТАТИЧНЫЕ файлы. Сервер их выдаёт в браузер вообще на похуй, просто загрузка набора файлов. Зачем вы блять это в докер завернули? Миграции нужно? Так просто блять возми и перенеси папку и укажи в настройках нового сервера её адрес.
>>276722562 >Я туда релизы ставлю, руками Блять >Поэтому контейнер заливается по сфтп Бляяяяять >потом руками надо запускать скрипт пересборки БЛЯЯЯЯЯЯЯЯЯЯТЬ
>В прошлой конторе девопс делал по кайфу Потому что там вас, долбаебов, к таким ответственным вещам на пушечный выстрел не подпускали
>Нет реально нахуй запихивать в докер фронт? Для единообразия и автоматизации. Если CI/CD настроен на то, чтобы работать с докер-контейнерами - все микросервисы должны ЕДИНООБРАЗНО собираться в докер-контейнеры мимо DevOps
>>276723217 Ну если тебе не надо, то и зачем париться. В целом там язык основы + язык немного кишочков, основной фреймворк вопросов 10-15, какие-нибудь тулзы и всякое прочее. Собесы 50/50 с задачками или без, я просто вставал и уходил если подсовывали задачу выше easy литкода. Изи я могу решить если никогда не видел. На одном собесе мне дали 20 минут и подсунули хард задачу про генератор паролей, причем усложненную ими(4 условия вместо 3х). Я сообщим им об этом и решил просто уйти, хуле блядь в гугл дают 3 хард задачи 60 минут и эти опущи ООО ЗАЛУПА дают такую же задачу и такое же время, идите нахуй.
>>276710196 (OP) Ей Богу, как вы заебали доблаебы, вы все время будете ныть что вам все не так. А разгадка одна: вы выбрали не ту профессию и сидите в зоне комфорта.
>>276710196 (OP) 1. не ясно что за httpclient, может это какая-то обертка где статически объявлен в жс такого не нашел, в ангуляре все иначе фактически его создяние ни на что не влияет - ты что мамкин оптимизатор дохуя? сравнение с axios не корректное - такое ощущение что ты не понимаешь как работает типичная конструкция const axios = require('axios'); ты правда думал что будет множественный импорт? вот незадача. 2. вообще похуй - вы, вебмакаки сами полюбили flux/redux с подобным объявлением констант адекватные люди бы просто использовали другой, адекватный стейт контейнер, но не будешь же переписывать в одно ебало весь проект за долбоебов? логично 3. значит вы не умеете делать контейнер как надо, часть фронта там хранится отдельным слоем того же объема в 3мега, остальные 200 - скорее всего зависимости, которыми поднимается твой фронт, на чем он там живет. очевидно так проще развернуть инстанс приложения, чем каджый раз подкладывать зависимости и новый фронт (пересборка будет быстрой если меняется только контент фронта)
>>276723474 >Зачем вы пишите по два раза одно и тоже? Вы с первого не понимаете? В некоторых языках нет множеств. Поэтому они ебашут вместо множеств хэши. Для значений в процессе придумывается >>276724264 какое-нибудь полезное применение.
>>276724285 >значит вы не умеете делать контейнер как надо, часть фронта там хранится отдельным слоем того же объема в 3мега, остальные 200 - скорее всего зависимости, которыми поднимается твой фронт, на чем он там живет. очевидно так проще развернуть инстанс приложения, чем каджый раз подкладывать зависимости и новый фронт (пересборка будет быстрой если меняется только контент фронта) Ти не понял. Там контейнер только для фронта, бэк и база это отдельная тема. Все понятно?
>>276724589 Дада чел щас вот ток расскажу менеджерам что надо две недели проект на тс переписывать и ебаться с переделкой запросов на нативные фетчи. Так и вижу как он сказал нахуй эти задачи от заказчика делаем это
>>276724816 >надо две недели проект на тс переписывать js является валидным подмножеством ts. Можно за пару часов впилить ts и начать его использовать в новых задачах
>ебаться с переделкой запросов на нативные фетчи Ну не надо было ненативные библиотеки использовать просто
>>276724816 Вот он пример того, что происходит с кодом, если менеджеру сообщать реальные сроки. А наёбывал бы на час в каждой оценке и переписывал по методу, как бойскаут, - гляди и на фетче бы уже всё работало и архитектура была какая-никакая по солиду без дублирования, и свичей на 800 строк не было.
>>276710196 (OP) >Но нет у нас в образе весом 240Мб лежит папка файлов на 3.31Мб. Так ты еблуша не шаришь, там же скорее всего сборка этой папочки на 3мб, 240метров это все слои в том числе сборочные, они кешируются. Ну и плюс сервер (довольно частая практика фронт хостить отдельно), кто-то же должен передать папку браузеру Если это не так, за мат извени тогда. Но тогда ты не дорасказал
>>276710196 (OP) Докер норм тема, просто в конторе видимо не ебут что можно в мультистейдже сбилдить фронт, хуйнуть под nginx а всё остальное дерьмо выкинуть нахуй
>>276724997 >js является валидным подмножеством ts. Можно за пару часов впилить ts и начать его использовать в новых задачах Окей кто старое перепишет? Дядя Вася. Или чудом жс в тс превратит. Там проект 3 года писали животные.
>Ну не надо было ненативные библиотеки использовать просто Если по делу не знаю в чем претензии в аксиос. На нативных код в помойку превращается. Весит он 13Кб, даже в 90х это не считалось проблемой.
>>276725141 Так уже наебываю и переписываю. Просто я вот начал копать работу с хттп и у проекта отвалилась жопа. И да я думаю много кто заметит как на данном этапе я подозрительно настаиваю на регресс тестах всей системы потому что переписал её базовую суть.
> девопс по кайфу делал А потом тебя на такой проект кидают, чтобы ты сделал автоматизацию на раскатку у заказчика, и никто не ебет как это сделано. Весь сиай - клонирование папки, удаление горы говна, миграция и ребут фпм. Как сервак настроен хз, чо там за пакеты нужны - хз, в докере не можем т. К функционал сломаем, фронт в докер воткнули - запустили вместо билда статики в контейнере npm run Пизда.
Как мне сказал мой лид: "Рефакторинг деньги не приносит". Так что выдохнули и продолжаем струячить говнокод, на то она и работа. Я отдушину нахожу либо в пет проектах, либо в опенсорсе.
>>276725573 Так я программист. Вот вам артефакт проекта, не ебите мне мозги и ставьте куда хотите. Меня на этом пытались заставить ставить чет там заказчику, я пару раз просто морозился и просил других. Теперь у нас один бэкендер за спасибо еще и обязанности девопса взял и занимается пердолингом ямлов
>>276725543 >Окей кто старое перепишет? Дядя Вася. Или чудом жс в тс превратит. Там проект 3 года писали животные. А зачем старое переписывать? Описал типы входных данных и интерфейсы и путь работает как работало. Ты не представляешь сколько сил и времени экономит типизация. Те кто вкатываются в ts потом уже не знают как выкатиться, потому что, оказывается, он снимает с тебя кучу головной боли
>Если по делу не знаю в чем претензии в аксиос Дело в том, что она не нативная и ее однажды перестанут поддерживать. Охуенно пользоваться библиотекой, пока она модная-молодежная, а как улетит в корзину, так забегаете с горящей задницей. Каждая такая библиотека, это точка отказа в приложении, о которой приходится помнить. И наоборот, если все переписать на нативное решение, можно будет с себя будущего снять одну проблему
>>276725583 Слова настоящего дивана, который не видел как компании рушатся из-за неподдерживаемого/нерасширяемого говна. Если приложение по-настоящему большое, то в случае нечитаемого кода даже самая простая правка будет вставать в десятки тысяч рублей
Помню работал в проекте, в котором не могли кнопку с экрана одну убрать, потому что это требовало недели работы. Трустори
>>276725699 Докеробраз тоже считается артефактом проекта. Просто у вас не с этого начинали По идее да, должен подойти девопс, отладить сиай, показать чтобы ты понял и уйти. Локально тестируй как хочешь, на стенды в докере.
>>276725889 >Помню работал в проекте, в котором не могли кнопку с экрана одну убрать, потому что это требовало недели работы Изи. Делаем ей класс delete_button_fix_pupa.
>>276725889 Нашему проекту уже лет 15, там такие интеграции и корни, никто просто не решается дропнуть контракт. А поддержка на крови гребцов и держится, это легаси, хуле
>>276726141 Однажды появится конкурент, который напишет все с нуля и вы полетите на мороз, потому что не сможете конкурировать в скорости разработки новых фич. Классика
>>276726213 Да я зоонаблюдаю. Всегда невольно появляется ухмылка на лице, когда на проде что-то отказывает, а я видел пиздец в пул реквесте, но сверху было сказано "надо срочно" и всё
>>276718210 >Меня на миддла реактопердоллера спрашвиали чем let отличается от var и как div отцентровать Сейм на мидл вьюпердоллера, но я понимаю зачем это делается. Меня подруга с вышкой итмо по проганью попросила помочь ей к собесу подготовиться, так оказалось она не знает про препроцессоры и в 2k22 юзает getElementBy вместо querySelector'ов. Иногда хрюхи на собесы подгоняют таких кадров, что проще сразу задать такие вопросы на кретина, чтобы отсеять. Потому что сразу попросив джуна раскидать тебе за динамические импорты ты не поймешь, заволновлся он или просто пропустил тему, или реально мудак. А если чел не знает как див отцентровать - всё очевидно
>>276726302 Двачую, это самый кайф. Я ещё специально везде говорю что будет плохо. Потом хожу говорю какой я классный крутой. На самом деле хочется аж орать в лицо менеджера "я же тебе говорил блять. Ты думал мне деньги платят просто за красивое лицо? Я специалист блять. Тебе когда врач говорит не делать дела что-то ты тоже ему говоришь что тебе надо?"
>>276725853 Шо не так-то? Нахуй впиздячивать проверку каждого элемента в строку если можно просто вырезать нужный. А если тебе нужно это сделать не сразу при заполнении массива а в другом месте?
>>276726739 > в 2k22 юзает getElementBy вместо querySelector'ов. Так getElementBy в несколько, а то и в десятки и сотни, раза быстрее селекторов, лол. Ебать ты говнокодер.
inb4: ряяя ненужно нам ваше быстрота, 16 гигов покупай, врёти
>>276726972 А что если у тебя динамический селектор? А что если у тебя селектор класса, но он один на странице, а byclassname возвращает ебаный массив?
inb4: ряяя буду оптимизировать каждый бит кода чтобы потом весь метод переписывать когда понадобится внести изменения
>>276727053 Очень спорно. В продуктовой компании манипуляции с кодом - это единственный путь развития продукта (основного источника прибыли компании). Мне сложно расставить по местам причины по которым может загнуться компания, но если учесть мной сказанное, (по крайней мере для меня) становится очевидно, что это очень веская причина
>>276710196 (OP) Ну ты как маленький, не понимаешь такие вещи. > стаж 3.5 года, я крч джуно-мидл Оно и ясно. Смотри как оно делается на самом деле. Сперва ты делаешь хуяк-хуяк и в продакшн, и на перформанс ревью пишешь какой ты молодец как ты делаешь проджект импакт и как ты мув фаст. Потом ты начинаешь переделывать то что ты же сам наговнокодил, и хуяк - тебе есть что рассказать о беттер энжиниринг на перформанс ревю. Если ты такой хуйнёй занмиаешься не один, а с коллегами - то вот ты уже эксид экспектейшенс в коммуникации с коллегами, о чем ты опять же документируешь на перфформанс ревю. И так через год ты получаешь одно повышение, еще через два - второе - и вот ты уже сеньор инженер и перепрыгиваешь на другую галеру за совсем новые уже деньги, а что ты там наделал - это уже не твои проблемы. Учись, короче.
>>276727423 Еще надо выбирать такой размер проектов, чтобы ты мог за период перформанс ревю заговнокодить один и зарефакторить предыдущий, тогда у тебя будет консистент эксид экспектейшнс по всем осям. Ну это уже сам разберёшься.
>>276727310 >А что если у тебя динамический селектор? У меня такого нет. >А что если у тебя селектор класса, но он один на странице, а byclassname возвращает ебаный массив? Говно не делаю. >inb4: ряяя буду оптимизировать каждый бит кода чтобы потом весь метод переписывать когда понадобится внести изменения Да, так и буду делать, если внезапно понадобится такой дерьмокод. Вряд ли конечно, но я же не дебил чтобы производительность убивать в два-четыре раза.
>>276727746 Допустим, ты прав, гетбайайди условный отработает в сто раз быстрее квери селектора, но это всё ещё будет вопрос наносекунд, потому что блять на каком пентиуме вообще пара селекторов затормозит производительность? Вот когда какой-то мудель подключает плагин размером со свою жирную мамашу и импортирует его при маунте компонента, при том что он нахуй не нужен до тех пор пока юзер не захочет открыть модалку с ним, а он может и не захотеть - вот это проблема
>>276727745 Работа с DOM-деревом. Допустим, тебе нужно повесить обработчик события, условный onclick, на кнопку. Ты задаешь ей id = "submitBtn" и потом пишешь document.getElementById('submitBtn').onclick = function({ ... }) Вопрос в том, что айдишник уникальный, а тебе может понадобиться подцепиться к нескольким элементам сразу. Тогда можно заюзать getElementsByClassName, или же по тегу, что вообще ебань но пару раз доводилось. И вот для всех этих функций есть аналог - querySelector и querySelectorAll. Первая - зацепит первый элемент с указанным селектором (ты можешь записать туда и айди и класс и тег, разница будет в '#id', '.class' и 'tag'). Второй - то же самое, но он соберет массив из всех элементов с этим селектором
>>276727860 > но это всё ещё будет вопрос наносекунд, Милисекунд не хочешь? На ста элементах милисекунда-две. И в любом случае так никто не делает уже, реакты существуют, а если делать так - то лучше уж, блядь, чтобы этот кал не лагал. > пара селекторов затормозит производительность? Кроме этого есть куча другого кода, который выполняется. Уверен, что с таким подходом и в других частях дикий говнокод стоит, который потом на двеятом интеле лагает. > вот это проблема Всё это следствие подхода при котором милисекунды не играют роли.
>>276728378 Если можно обойтись одним index-ом, одной ксс-кой и двумя функциями на джиэс, который будет работать просто от того что ты открыл хтмльку, то зачем хуячить SPA?
я смотрю, набежало ЭКСПЕРТОВ в тред. мимо РП 300к. подтверждаю, кровавый ентерпрайс всё через жопу. Нормально знаем и умеем но не делаем - сроки сука и многозадачность, приоритеты зависят от того кто первым прибежал и пожаловался. Нахуй всё это, продолжаю работать и меняю работу на такую же где больше платят!
>>276710196 (OP) >не работай в говне говна Анон, я работаю в говне говна за гораздо более мелкий прайс, в пять раз меньше твоего и каждый раз пытаюсь вкатиться.
>>276722797 > Просто .НЕТ имеет нормальный пакетный менеджер и таскает свои зависимости с собой
Круто чё, очередной пакетный менеджер очередного рантайма - вот сам и ебись с ним. И будь добр артефакт сборочки в контейнер положить со всеми флагами для запуска твоего чуда.
А то у вас у каждого свой самый лучший рантайм с самым лучшим пакетным менеджером и тасканием зависимостей. Ты так допиздишься, что мы будем вместо контейнеров снова Enterprise Java Beans деплоить в Java EE Application Server'а и обмазывать зависимости через WSGI. Охуел блять, им дали возможность пиздострадать со своим зоопарком технологий, а они выебываются и из загонов лезут.
>>276729940 Да нет, я про работу в целом. Мне на еду бабки нужны. Может тебя развлечь как нибудь за 5к? Для меня это пиздатые бабки, а для тебя не очень. Мб ты как то на нищуке оторваться хочешь?
>>276732039 Если хочется как интересно, то да, норма, если денег поднять и на рыночке котироваться, то нужно по рыночку изучать, глобально это. 1) фронт, 2) питон. Для первого работа будет ВСЕГДА. Пруф на хх в колве вакансий. мимо фронт без опыта и знаний за 2,5к$
Привет двач, я обычный 300к/нс с галеры на кровавом жыр-тыр-прайзе. На данный момент пилю фронты на проекте. Уже год. В одно рыло.
Волею судеб и длинной историей я вынужден жрать говно работать на фронте вместо моего любимого .NET Зачем я все это накатал? Да хуй знает просто накпило, дальше идет долгое и нудное нытье. Для контекста: диплом ДС вуза из топ 10, стаж 3.5 года, я крч джуно-мидл.
Проект взяли у другого исполнителя и отдали делать нам. Первое время мы кстати делали это все параллельно в разных репах, что порождало тонны геморроя на ровном месте, но мы не о том.
1. Это прекрасное решение создавать новый объект ХТТП клиента каждый запрос. пикрил 1 это просто вход на главную страницу проекта и один переход в нем. Уже ощущаете как каждый раз создается новый инстанс axios? Как в нем заново прописываются параметры, заголовки, идет обращение к конфигу приложения, и на все это тратиться время.
2. Можно подумать ну хуйня че сложно переписать? Но ты бы не читал это коли бы так. Я представляю тебе не много не мало, а МАГНУМ ОПУС больной на голову макаки и это АПИ фронта.
Вот как это делают нормальные люди. Пишем несколько классов, разбиваем их на AuthorizeClient, FileClient, PupaClient. В них пишем методы, какую-то базовую логику выносим в общий клиент запросов и вроде у нас тут тоже есть базовая обработка запросов, НОООО то как сделаны сами конкретные запросы см. пикрилы.
Да двачер, мы пишем код аля await api(GET_PUPA_SALARY); а потом это всё обрабатывает switch case. Да там серьёзно написано 800 строк того о чем ты подумал. 800 строк свитч кейса.
3. Еще мы используем Докер. Я блять ненавижу Докер. Причем я все не могу донести уже нашим светилам кода, что совать туда фронт не нужно, не нужно потому что фронт это просто папка файлов. Но нет у нас в образе весом 240Мб лежит папка файлов на 3.31Мб. Все по взрослому обмазано ямлами, конфигами и прочей залупой, но по факту папку файлов суют в контейнер чтобы НЕ БЫЛО КОНФЛИКТА ЗАВИСИМОСТЕЙ ПРИ РАБОТЕ.
4. Я был на паре собесов ищем второго фронта на проект. Там приглашают чела чтобы он унижал кандидатов на задачах по JS. Был гигачэд с 25 годами опыта, он не смог их решить и я бы не решил и сам этот хуесос если бы не прочитал статью "Я долбоеб или 100 ебаных вопросов на собесе".
Теперь инсайд тебе мой вкатун или джун. НЕ ТРЯСИСЬ. С той стороны сидит толпа людейбездарей, у нас 5 человек которые не знают что спросить чтобы перед лицом начальствующим выглядеть на свою зепеху. Поэтому они начинают спрашивать какую-то херь. Знай же, что я пытался вразумить и сказать что единственный нормальный вопрос на собесе это Чем ты гордишься?. Любой человек которому хоть как-то интересно, даже полный нуб, расскажет тебе про модуль, задачу, лабу, диплом, курсач, как он два дня отлаживал и сделал красиво. По итогу я посрался со всеми и больше меня на собесы не зовут.
Дочитал до сюда? Молодец, спасибо. Потратил время жизни, а мог подрочить.
P.S. Не будь как я, не работай в говне говна.