Реклама может сделать из говна конфетку, только если идеально работает критически важный пользователям функционал.
Хороший пример, чат gpt. Когда он только стал всем доступен, у него постоянно падали сервера, криво работала гугл авторизация с вечным разлогином, до сих пор лагает web ui, когда страница с чатом тормозит при большом количестве вопросов-ответов, т.к. open ai не умеет в нормальную ленивую загрузку и контроль ресурсов. Однако, это всё пользователи готовы терпеть ради главного функционала, что работает отлично, а именно ради самой llm. С точки зрения веба чат gpt посредственен, но мы знаем множество копирок с крутым веб ui ux, но кривой реализацией llm из-за чего они нафиг никому не нужны.
Понимаю, что mvp это термин, который сам по себе подразумевает минимально жизнеспособныйипродукт, но даже в рамках минимума, есть критически важный функционал, который должен работать идеально и второстепенный, который может работать криво.
Поэтому если критически важный функционал не завершён - то проект никакя реклама не спасет, это верно)
Уже многое написали про тех. готовность. Незавершённость проекта оправдана, только в одном случае: если ваш продукт уникальный и даже в таком качестве лучше конкурентов.
По опыту, могу сказать, чтобы занять нишу, нужно хорошо знать конкретную сферу и её рынок.
Например, я практически всё время работал в мед. организацих. Из-за чего хорошо знаю эту кухню. Если когда-то захочу создать стартап, у меня есть представление, что будет удобно и интересно врачам. Какаое тех качество допустимо для mvp и что критически важно в продукте. Так же, знаю главное, как набирать клиентскую базу и специфику сферы. За свою жизнь повидал много мед. стартапов и прекрасно знаю их ошибки. Поэтому у меня бы всё скорее-всего получилось.
Однако, если бы я захотел залезть в финтех, логистику и т.д., то скорее-всего провалился. Да, проводил бы ресерч рынка, пытался бы получить фидбэк, но без понимания того, что нужно и важно конечному пользователю и как вообще ему о продукте рассказать, это путь в никуда.
Лично стартапы не открывал, но пет проекты делаю часто. Какие-то забрасываю, какие-то в долгострое, а какие-то использую в обиходе или отдаю коллегам. Так же, участвовал в чужих стартарах.
Честно, как бы не пытался делать пет проекты, держа всё в голове, всё всегда сводилось, к списку задач с ротацией: бэклог - в работе - выполнено, а потом и к доскам с карточками.
За всё время понял одно. Если хочешь сделать, что-то годное, среднее+ по масштабам, то к проекту нужно относиться словно он оплачиваемый энтерпрайз. Даже если ты вайбкодишь. Точнее особенно если ты вайбкодишь, всегда используй таск менеджеры, гит с моно репо, юнит тесты (очень желательно даже если кажется, что они лишние, не повторяйте моих ошибок), ci cd на свой сервер если это бэкенд. Если приложение или игра, то грамотная настройка билда с публикацией, а не просто debug-build. Только дисциплиной можно добиться результатов. По сути вы должны быть сами себе аналитиком, продуктом, дизайнером, программистом, тестировщиком, ceo и даже конечным пользователем.
П.С. Перечитал, написанное, вроде очевидные вещи, однако многие про них знают, но на практике не осознают.
не вдаваясь в то, как именно ООП реализовано в JavaScript.
Если честно для ООП он тоже мало подходит. Тот же ts по сути обёртка, которая не спасает от проблем в рантайме, ведь код компилируется в обычный js. Поэтому хоть сколько-то адекватный код приходится писать с оглядкой на это.
критика — конкретная и повторяющаяся: «иммутабельность дорогая по памяти», «рекурсия небезопасна из-за стека».
Вроде же автор, сам в статье расскрыл эти проблемы, не совсем понимаю в чём претензия к кандидатам на собесах?) То что они не прочитали лекцию, чем именно js плох для чистого фп?)
Но функциональным языком он не является. Не потому что в нём нельзя писать функционально, а потому что он не был спроектирован для этого.
Он не был скорректирован и для ООП, но очень многие разработчики пишут на нем код именно в ООП стиле. Тоже самое и с ФП. Зачасую для js разработчиков на практике даже рекурсия не нужна. Всё фп заканчивается написанием функций под event loop и промисы. Большинство js разработчиков не приведет пример монады, функтора или апликатива. Даже не так, большинство разработчиков на популярных яп, это вряд-ли сделают, чтобы js разработчики, не думали, что я их как-то принижаю. И это нормально, в js часто используют фп и ооп в связке, при этом ни фп, ни ооп не используют "на полную".
Ну как и среди программистов, много подобных специалистов, за которыми часто приходиться переделывать, но это не отменяет того факта, что среди программистов много хороших специалистов. Так же с любой сферой) Мой посыл заключается в том, что программирование не должно быть уделом избранных, оно должно быть повсеместным, но как и с другими специальностями, должны быть специалисты и обычные люди/любители. При этом это никак не исключает отсутствие на рынке плохих специалистов и умелых самоучек любителей.)
Однако, хороший специалист сантехник может работать далеко не только с локальными системами в квартирах или домах, но и с более сложными и глобольными системами. Как например специалист электрик, может работать с высоковольтными сетями, а обычный любитель нет, даже если он идеально умеет делать проводку в доме. Т.е. разница в этом. Тоже самое и с программистами. Обычный человек без профильных знаний не сможет создать даже при помощи самых крутых нейронок средней/большой проект с долгосрочной поддержкой и развитием. Максимум, что он создаст - прототип. В этом разница и она никак не отменяет наличие в сфере людей, которые имеют мало опыта например, но считают себя более компетентными, чем они есть на самом деле. Это обыденность везде)
Я относительно недавно попросил написать похожий скрипт у gpt и он вполне себе справился с написанием скрипта. Там же ничего сложного нет, такие любой программист сам напишет легко и подобными скриптами/прогами весь интернет завален, на которых нейронки и обучали в своём большинстве (на опен сорс проектах).
Что? Т.е. обычный скрипт склейки файлов будет виноват в утечке данных? Я надеюсь это уже просто шутки пошли. Потому что с таким подходом можно, что угодно на фантазировать.)
Но сможет он например по ним сделать join или сделать update одним по полям другого? Нейронка такие скрипты пишет спокойно.
Касаемо того, что говнокод, так с обычных людей и спроса нет. Они вправе говнокодить себе простой софт для автоматизации своих задач, как угодно и на чём угодно. Да хоть на миллионах ифов с O(n^4). Если это работает и решает их задачи, то и пофиг, они не программисты.
Так же ничего особенного не поменялось. Раньше ксеждый студент писал кучу мелких скриптов, что выкладывал на open code или github. Почти все подобные скрипты написаны были ещё со времён дельфи и вин форм. Просто сейчас их даже искать не надо, gpt напишет за 1-2 запроса.
Если приводить аналогию. Каждый из нас в какой-то степени разбирается в электрике и сантехнике, но при этом электрики и сантехники никуда не делись и для них наши бытовые потуги "я сам всё сделаю", выглядит так же, как для нас говнокод, но кому не пофиг, если работает нормально? Это не энтерпрайз, где надо обновлять код вдолгую и архитектура обширная)
Касаемо саасопокалипсиса, то это закономерно и случилось бы в любом случае. Ещё Стив Джобс говорил, что каждый должен научиться программировать. Понятно, что на базовом уровне, для решения своих задач и эта мысль правильная. Сейчас просто программирование на базовом уровне стало доступно большинству. Большие и даже средние проекты без знаний и навыков не сделаешь, но вот автоматизация рутинных задач нейронкам по плечу.
Касаемо саас. Те что несут в себе что-то полезное на рынке останутся. Те проекты которые были навайбкожены в 23-24 годах умрут. Так же останутся популярны АИ сервисы какое-то время, хотя уже сейчас многие пишут свои клиенты для тех же локальных нейронок. Это к тому, что будут популярны вдолгую именно ai инструменты, а не просто чатики.
1) Если человек прислал в тестовом код от которого смердит, то зачем вообще его на собес звать? Чтобы "играючи с азартом", за счёт него самоутвердиться? На найм и так много времени уходит. Если человек не подходит - не стоит тратить время ни его, ни своё. Это моя позиция, она может быть не эффективная, но все мы не без минусов.
2) Автор описал вайбкодеров двух типов, за которых всё делает клод и они вообще не понимают, что там нейронка понаписала, либо те, что крипипастят из gpt и так же не понимают контекста. Я согласен, что такие специалисты посредственные, но вопрос у меня в том, что зачем вообще было тратить на них время? Чтобы написать потом статью, какие вайбкодеры неумехи? Думаю это не для кого ни секрет. Даже для них самих. Многие вайбкодеры нашли себя в других областях, где контроль качества кода не так важен.
Человек может нести ответственность только за тот код, который он понимает.
Программист несёт ответственность за любой код в проектах его зоны ответственности и не важно понимает он его или нет. Если я завтра на работе навайбкожу какой-нибудь софт например на плюсах, которые плохо знаю и этот код повлечёт за собой проблемы, то отвечать за него буду я. Потому что кабан кабанычам на мои оправдания в виде: "это косяк нейрнки", будет плевать и это правильно. Нейронки - это инструмент и ответственность за выбор инструмента и контроль качества своей работы несёт работник. Если инструмент проблемный, то вопрос к работнику зачем он его вообще использовал. Решил этот момент уточнить)
Всё это ерунда, компаниям с резюме, что фильтруют кандидатов при помощи нейронок (часто не самых лучших), нужно отсылать только инструкцию по варке пельменей. 😎
Причём тут зп, название компании, количество этапов.
Дело конкретно в вашей статье под которой комментарий и отношении к кандидатам.
Человек ещё на работу не устроился, а у вас уже отношение к нему, как к говну, которое можно отсеять "с азартом". При этом в тех. вопросах вообще нет никакой конкретики, как llm можно использовать в разработке для реального повышения производительности при контроле качества, а так же с чем нейронки справляются хорошо, а где быстре и лучше писать код ручками. Это обширная тема, которой только тут на хабре посвещено много статей.
Я согласен с тем, что программист несёт ответственность за свой код и неважно написал он его вручную или нейронкой, но это не повод считать людей, которые умеют грамотно использовать нейронки в энтерпрайз разработке, вторым сортом.
Далее, может конечно мне показалось, но у вас как-будто проявляется высокомерие. Мол смотрите холопы, мы тут в Германии! Мидла 5+ лет опыта ищем и над вайбкодерами смеёмся. Понимать надо. Я работал на заграничные фирмы и находящиеся в Германии в том числе. Таких людей на хабре много, это ни для кого не панты уже давно. Может мне конечно показалось, но первое впечатление было таким.
Если смоделировать ситуацию, придя лично к вам на собес, увижу предвзятое отношения с высока, странные тех. вопросы и желение от меня поскорее играюче избавиться. Я бы понимал, что в случае трудоустройства, пришлось бы все делать не для эффективного решения задач, а для решения их, как бы вам это нравилось. Конечно хозяин барин, но зачем мне это терпеть?
Собственно, лично у меня ваша статья вызвала такие впечатления. Может они ошибочны, но я ответил на ваш вопрос именно про себя, т.к. изначально писал про себя.
Честно, как нормальный мидл, к автору этой статьи работать не пошел бы. Собственно поэтому наверное и были вайбкодеры одни, т.к. нормальные специалисты просто скипали вакансию на уровне собеса.
Если перевести написанное на человеческий, то выйдет следующее: "Мы не модернизировали наши продукты десятилетиями гребя бабло, но сейчас мы не выдерживаем конкуренции на рынке. Доходы стремительно падают, мы сокращаем сотрудников и судорожно пытаемся внедрить бога из машины (ИИ), который нас обязательно спасёт. Спасёт же?"
2) Про бюджеты согласен, но понимаете, здесь всё упирается в главную тему нашего спора. Вы утверждаете, что git и unit это сложно, долго и дорого, но на деле эти инструменты сейчас более доступные. На вордпресс например есть насколько помню плагин, который чуть ли не из админки позволяет делать юнит тесты. Да извращение, но такое есть. Касаемо git, то во многом дело привычки. Он не замедляет разработку, как вам может показаться.
4) Ну смотря как использовать, но думаю точно не навредит)
5) Ну да, Nexus же и создал Vortex) Сборки создавать можно не спорю, я скорее про те игры, которых на Nexus нет.)
6) Тут важный момент для понимания. Git и Unit не являются чудо инструментами, что отменяют опыт и скил. Нет. Плохой программист может хоть кубер под сайт визитку на cms поднимать, ему это не поможет.) Это как раз всё в дополнении к тому что вы описали. Я и не пытался сказать, мол "если программист не опытный или косячный, то Git из него сделает сеньора 20 лет стаж")
7) Как я и пишу, юнит тесты сильно помогают в долгую дистанцию, но вы и так согласились с этим ранее.
8) Так-то и ваша в том числе. Не допускать баги до прода, это обязанность всей цепочки IT отдела.) Кабан кабаныч не будет разбираться, кто там из вас "первый начал", люлей выдаст всем)
9) Система, которую вы описали она никак не вообще не мешает или не противоречит Git. Git ближе к сэйвам в играх, если проводить аналогию, в то время как cntrl+z, cntrl+y, cntrl+s это скорее игровые механики. Т.е. это просто разный уровень работы с кодом. Не в плане профессионализма, а в плане взаимодействия. Если cntrl+z, cntrl+y это очередь изменений, а cntrl+s просто сохранение файла, то git это про сохранение состояния множества файлов и историй изменений. Или вы думаете я cntrl+z, cntrl+y, cntrl+s в работе не использую? Ещё как использую и гит использую тоже)
2) Для опытного программиста с типовым проектом, не будет проблемой использовать git, как и покрыть его тестами, только если время прямо совсем не поджимает.)
3) Тестировщик проводит более глобальное тестирование, он не пишет интеграционные тесты, т.к. тестировщик не должен лезть в код, что логично.) Юнит тесты это именно про стабильную работу кода и про уменьшение багов при внесении множества изменений на протяжении долгого времени.
4) Я не совсем понимаю, в чём именно состоят мучения если git и github, буквально имеют UI приложения и интегрированы во все IDE. Даже для notepad++ есть плагин, что интегрирует git (забавно): https://github.com/alansbraga/NPPGit Вся работа сводится буквально к нажатию нескольких кнопок в UI.
5) Mod Manager вещь хорошая, тот же Vortex от Нексуса например, но они поддерживают не все игры. Плюс Mod Manager'ы не дают такого функционала, как Git. Я буквально могу сделать например несколько веток одной и той же сборки модов, с некоторыми изменениями в каждой и переключаться между ними моментально.
6) Обычно в разработке правят код не в одном файле, а в нескольких, особенно если это не спагетти код в одном фале на 1000+ строк кода. Просто не совсем понимаю, зачем вообще такое держать в голове, если можно автоматизировать и быть спокойным.
7) Я и говорю про моменты, когда багов прямо очень много и они критические. Баги же бывают разные. Есть критические (не верный расчёт цен в той же корзине при определённых условиях), есть не особо то и важные (как например лагающий стиль кнопки). Юнит тесты позволяют меньше допускать именно критических багов при разработке с дальнейшими доработками и нововведениями.
8) Если в вашем примере, ошибка в коде и она не явная, то проблемы будут не у тестировщика. Точнее спросят и с него и с вас. Т.к. тестировщик отдаст тикет с этим багом вам обратно.
Вроде как вопросов осталось меньше, они касаются в основном, git. Я вот честно не понимаю, чем он вас так отпугивает.
Эффективнее в смысле "быстрее, удобнее"? Так нет, это всё дополнительные действия разработчику.
Настройка IDE и проекта тоже дополнительные действия разработчику. По сути так можно сказать о любом инструменте для программирования.
Да, особенно юнит тесты. Насколько эффективнее в соотношения "цена/качества"? Как будто не супершибко.
В том-то и дело, что тестирование и git это про разработку, а не фичи сайта. Как и писал ранее, ваша логика странная. Так же можно сказать, например о IDE, насколько эффективнее в соотношении "цена/качество"? Как-будто не намного, ведь можно писать код в блокноте. Более того скажу, что например unit тесты обычно запускают под dev окружением, а не держат их на проде. Здесь вопрос в том, что есть проект на 100к и есть 2 программиста. Один напишет сайт в блокноте, а другой с использованием ide, git и тестами, причём сделают это они за одну цену. Только версия проекта от первого программиста будет со временем проблемной и будет обрастать багами, а версия второго программиста будет более стабильной и устойчивой к изменениям.
Опытные разработчики и менеджеры, контентщики, сеошники, заказчик тоже смогут обеспечить приемлемое качество, в то время как обширно покрыть юнит тестами это большой кусок работы, а значит стоимости
Т.е. вместо того, чтобы сделать свой код более устойчивым к багам, лучше переложить отсветственность поиска багов на всех коллег в полть до контент менеджеров? К слову, опытный тестировщик, всё-равно покроет тестами ваш проект, только не интегрированными. Мануальное тестирование уже давно не актуально. Касаемо сложности, вы сказали что с юнит тестами не работали, так почему вы считаете покрытие кода тестами сложной и обширной задачей? Вы сами решаете, как и что покрывать. Часто достаточно покрыть тестами критические места в коде, чтобы уже избежать огромного количества ошибок при будущих изменениях. И раз тут тема про отсветственность, то вам не кажется, что если ваш код будет постоянно выдавать много багов, которые даже до заказчика доходят минуя тестировщика и sео, то у кабан кабанынчей вполне могут быть к вам вопросы? Я всё понимаю, баги есть всегда при разработке, но не настолько же массовые, что они буквально повсюду. И вот тут встаёт вопрос, кто всё же бизнесу выгоднее, человек, что использует те же unit тесты и пытается предотвратить большинство багов заранее или тот, кто их не использует чиня одно ломая другое из-за чего баги ловят постоянно все, от sео до контент менеджеров заказчика?
понятно что там не самые новые версии будут, но главное основа будет
У меня буквально если бы не гитхаб, проекты разросаны по нескольким облакам, устройствам и дискам, в разных версиях. Гитхаб решает эту проблему, у вас всегда проекты последних версий под рукой. Так что это не какой-то редкий случай. Я не все свои старые проекты занёс в гитхаб, надо бы будет всё занести и то каждый раз удивляюсь, когда нахожу старый проект на диске с мыслью "о, я даже такое делал когда-то". Гитхаб хоть как-то это позволяет систематизировать. Так же я гит использую не только для кода. Например с ним очень удобно делать сборки модов для игр, потому что сразу видно какие моды заменяют файлы друг друга и можно очень быстро находить конфликты модов. Так же у меня obsidian со статьями заметками и т.д. подключён к гитхабу, что очень удобно. Так же у меня не раз бывали случаи до использования github, когда на основе одного плагина я писал разный функционал и потом приходилось искать в какой версии, сделан был нужный функционал. В гитхаб это были бы 2 разные ветки или просто один плагин с накопленным функционалом из проектов.
Откат кода? В ручную зашёл, что то закометнил что то добавил как раньше было и вопрос решился. И вообще обычно нужно же не просто откатиться а имено понять и починить баг. А как его чинить если откатишь? Как раз таки последний код нужно поправить так чтобы заработало.
Да, про то и речь. Если всё править на проде, то придётся вечно комментировать код, везде спамить print и им подобными командами и после нахождения и исправления бага, весь этот мусор с тестов по памяти удалять. С Github я могу спокойно при поиске бага удалять код, переписывать до неузнаваемости файлы, мусорить print и логгерами, писать любые тестовые инъекции, после того, как я пойму в чём причина бага и что надо поправить, даю команду "Отменить изменения" и меняю только то, что нужно для исправления бага и мне не нужно за собой подчищать код. Касаемо откатов, у меня часто бывали истории, когда просили убрать фичу с сайта, а потом "ой можете вернуть мы передумали, но с исправлениями". Я просто откатывался к нужному убранному функционалу, вспоминал, что там вообще было после чего возвращал её на сайт со всеми нужными изменениями. Касаемо же резервных копий, то они сохраняют весь сайт, а не только его исходный код. Бэкапы нужны для быстрого восстановления сайта в целом. Хотя лично я в последнее время сохраняю в основном бд, потому что исходники есть в гитхаб и сайт восстановить не проблема, плюс место на vds экономится.
И вообще есть масса вариантов запороть проект куда сильнее чем не использовать Гит.
Как передать исходники и дать возможность менять проду без прямого доступа к ней по ssh ftp? Может способ и есть, но зачем, если самый просто это github.
Все же редко, но бывает что один и тот же файл в двоем отоварили. Так то мне пофигу не беда заново свой код написать, но просто написать, а не вот это вот всё...(((
Вы так уверенны, будто сможете найти, где именно коллега затёр ваш код. Это не так просто отследить вручную и пропустить такой момент легко. Как раз гит позволит все подобные конфликты показать и решить их довольно просто. Есть код ваш, есть код коллеги. Вы же в любом случаете сделаете это даже в ручном режиме или вы когда переписываете свой код, затираете код коллег?
Например предложи я так программировать в банковской сфере
Если взять наш пример с интернет-магазином. При неверном расчёте цен, скидок, налогов и т.д. так же можно нарваться на неприятности. Особенно если это не интернет-магазин с 1 заказом в неделю, а более менее средний. Я это к тому, что отрицать использование инструментов, там, где они будут полезны, странная позиция.)
Я думаю вы рано или поздно сами придёте к использованию обсуждаемых нами инструментов.) В любом случае, вам этого желаю искренне, потому что по описанию вашей работы, это поможет вам её упростить.)
П.С. Если уж разрабатываете в проде, то надеюсь вы хоть используйте pulsar с этим плагином https://packages.pulsar-edit.dev/packages/ftp-remote-edit или что-то подобное, а не кидаете файлы через FileZilla или scp) Очень советую эту связку, до того, как начал гитхаб использовать сам с ней активно работал, только тогда вместо pulsar был atom. Ну pulsar это fork atom.)
Реклама может сделать из говна конфетку, только если идеально работает критически важный пользователям функционал.
Хороший пример, чат gpt. Когда он только стал всем доступен, у него постоянно падали сервера, криво работала гугл авторизация с вечным разлогином, до сих пор лагает web ui, когда страница с чатом тормозит при большом количестве вопросов-ответов, т.к. open ai не умеет в нормальную ленивую загрузку и контроль ресурсов. Однако, это всё пользователи готовы терпеть ради главного функционала, что работает отлично, а именно ради самой llm. С точки зрения веба чат gpt посредственен, но мы знаем множество копирок с крутым веб ui ux, но кривой реализацией llm из-за чего они нафиг никому не нужны.
Понимаю, что mvp это термин, который сам по себе подразумевает минимально жизнеспособныйипродукт, но даже в рамках минимума, есть критически важный функционал, который должен работать идеально и второстепенный, который может работать криво.
Поэтому если критически важный функционал не завершён - то проект никакя реклама не спасет, это верно)
Уже многое написали про тех. готовность. Незавершённость проекта оправдана, только в одном случае: если ваш продукт уникальный и даже в таком качестве лучше конкурентов.
По опыту, могу сказать, чтобы занять нишу, нужно хорошо знать конкретную сферу и её рынок.
Например, я практически всё время работал в мед. организацих. Из-за чего хорошо знаю эту кухню. Если когда-то захочу создать стартап, у меня есть представление, что будет удобно и интересно врачам. Какаое тех качество допустимо для mvp и что критически важно в продукте. Так же, знаю главное, как набирать клиентскую базу и специфику сферы. За свою жизнь повидал много мед. стартапов и прекрасно знаю их ошибки. Поэтому у меня бы всё скорее-всего получилось.
Однако, если бы я захотел залезть в финтех, логистику и т.д., то скорее-всего провалился. Да, проводил бы ресерч рынка, пытался бы получить фидбэк, но без понимания того, что нужно и важно конечному пользователю и как вообще ему о продукте рассказать, это путь в никуда.
Лично стартапы не открывал, но пет проекты делаю часто. Какие-то забрасываю, какие-то в долгострое, а какие-то использую в обиходе или отдаю коллегам. Так же, участвовал в чужих стартарах.
Честно, как бы не пытался делать пет проекты, держа всё в голове, всё всегда сводилось, к списку задач с ротацией: бэклог - в работе - выполнено, а потом и к доскам с карточками.
За всё время понял одно. Если хочешь сделать, что-то годное, среднее+ по масштабам, то к проекту нужно относиться словно он оплачиваемый энтерпрайз. Даже если ты вайбкодишь. Точнее особенно если ты вайбкодишь, всегда используй таск менеджеры, гит с моно репо, юнит тесты (очень желательно даже если кажется, что они лишние, не повторяйте моих ошибок), ci cd на свой сервер если это бэкенд. Если приложение или игра, то грамотная настройка билда с публикацией, а не просто debug-build. Только дисциплиной можно добиться результатов. По сути вы должны быть сами себе аналитиком, продуктом, дизайнером, программистом, тестировщиком, ceo и даже конечным пользователем.
П.С. Перечитал, написанное, вроде очевидные вещи, однако многие про них знают, но на практике не осознают.
Если честно для ООП он тоже мало подходит. Тот же ts по сути обёртка, которая не спасает от проблем в рантайме, ведь код компилируется в обычный js. Поэтому хоть сколько-то адекватный код приходится писать с оглядкой на это.
Вроде же автор, сам в статье расскрыл эти проблемы, не совсем понимаю в чём претензия к кандидатам на собесах?) То что они не прочитали лекцию, чем именно js плох для чистого фп?)
Он не был скорректирован и для ООП, но очень многие разработчики пишут на нем код именно в ООП стиле. Тоже самое и с ФП. Зачасую для js разработчиков на практике даже рекурсия не нужна. Всё фп заканчивается написанием функций под event loop и промисы. Большинство js разработчиков не приведет пример монады, функтора или апликатива. Даже не так, большинство разработчиков на популярных яп, это вряд-ли сделают, чтобы js разработчики, не думали, что я их как-то принижаю. И это нормально, в js часто используют фп и ооп в связке, при этом ни фп, ни ооп не используют "на полную".
Ой, порог входа в профессию. Немного криво написал. С годами, порог входа в программирование будет только расти.
Мне кажется наоборот вход в профессию выростит, потому что если все смогут кодить, то и уровень к специалисту будет выше)
О Тостер.) Кстати он с нейронками работать как раз умеет)
Ну как и среди программистов, много подобных специалистов, за которыми часто приходиться переделывать, но это не отменяет того факта, что среди программистов много хороших специалистов. Так же с любой сферой) Мой посыл заключается в том, что программирование не должно быть уделом избранных, оно должно быть повсеместным, но как и с другими специальностями, должны быть специалисты и обычные люди/любители. При этом это никак не исключает отсутствие на рынке плохих специалистов и умелых самоучек любителей.)
Однако, хороший специалист сантехник может работать далеко не только с локальными системами в квартирах или домах, но и с более сложными и глобольными системами. Как например специалист электрик, может работать с высоковольтными сетями, а обычный любитель нет, даже если он идеально умеет делать проводку в доме. Т.е. разница в этом. Тоже самое и с программистами. Обычный человек без профильных знаний не сможет создать даже при помощи самых крутых нейронок средней/большой проект с долгосрочной поддержкой и развитием. Максимум, что он создаст - прототип. В этом разница и она никак не отменяет наличие в сфере людей, которые имеют мало опыта например, но считают себя более компетентными, чем они есть на самом деле. Это обыденность везде)
Я относительно недавно попросил написать похожий скрипт у gpt и он вполне себе справился с написанием скрипта. Там же ничего сложного нет, такие любой программист сам напишет легко и подобными скриптами/прогами весь интернет завален, на которых нейронки и обучали в своём большинстве (на опен сорс проектах).
Что? Т.е. обычный скрипт склейки файлов будет виноват в утечке данных? Я надеюсь это уже просто шутки пошли. Потому что с таким подходом можно, что угодно на фантазировать.)
Но сможет он например по ним сделать join или сделать update одним по полям другого? Нейронка такие скрипты пишет спокойно.
Касаемо того, что говнокод, так с обычных людей и спроса нет. Они вправе говнокодить себе простой софт для автоматизации своих задач, как угодно и на чём угодно. Да хоть на миллионах ифов с O(n^4). Если это работает и решает их задачи, то и пофиг, они не программисты.
Так же ничего особенного не поменялось. Раньше ксеждый студент писал кучу мелких скриптов, что выкладывал на open code или github. Почти все подобные скрипты написаны были ещё со времён дельфи и вин форм. Просто сейчас их даже искать не надо, gpt напишет за 1-2 запроса.
Если приводить аналогию. Каждый из нас в какой-то степени разбирается в электрике и сантехнике, но при этом электрики и сантехники никуда не делись и для них наши бытовые потуги "я сам всё сделаю", выглядит так же, как для нас говнокод, но кому не пофиг, если работает нормально? Это не энтерпрайз, где надо обновлять код вдолгую и архитектура обширная)
Касаемо саасопокалипсиса, то это закономерно и случилось бы в любом случае. Ещё Стив Джобс говорил, что каждый должен научиться программировать. Понятно, что на базовом уровне, для решения своих задач и эта мысль правильная. Сейчас просто программирование на базовом уровне стало доступно большинству. Большие и даже средние проекты без знаний и навыков не сделаешь, но вот автоматизация рутинных задач нейронкам по плечу.
Касаемо саас. Те что несут в себе что-то полезное на рынке останутся. Те проекты которые были навайбкожены в 23-24 годах умрут. Так же останутся популярны АИ сервисы какое-то время, хотя уже сейчас многие пишут свои клиенты для тех же локальных нейронок. Это к тому, что будут популярны вдолгую именно ai инструменты, а не просто чатики.
1) Если человек прислал в тестовом код от которого смердит, то зачем вообще его на собес звать? Чтобы "играючи с азартом", за счёт него самоутвердиться? На найм и так много времени уходит. Если человек не подходит - не стоит тратить время ни его, ни своё. Это моя позиция, она может быть не эффективная, но все мы не без минусов.
2) Автор описал вайбкодеров двух типов, за которых всё делает клод и они вообще не понимают, что там нейронка понаписала, либо те, что крипипастят из gpt и так же не понимают контекста. Я согласен, что такие специалисты посредственные, но вопрос у меня в том, что зачем вообще было тратить на них время? Чтобы написать потом статью, какие вайбкодеры неумехи? Думаю это не для кого ни секрет. Даже для них самих. Многие вайбкодеры нашли себя в других областях, где контроль качества кода не так важен.
Программист несёт ответственность за любой код в проектах его зоны ответственности и не важно понимает он его или нет. Если я завтра на работе навайбкожу какой-нибудь софт например на плюсах, которые плохо знаю и этот код повлечёт за собой проблемы, то отвечать за него буду я. Потому что кабан кабанычам на мои оправдания в виде: "это косяк нейрнки", будет плевать и это правильно. Нейронки - это инструмент и ответственность за выбор инструмента и контроль качества своей работы несёт работник. Если инструмент проблемный, то вопрос к работнику зачем он его вообще использовал. Решил этот момент уточнить)
Всё это ерунда, компаниям с резюме, что фильтруют кандидатов при помощи нейронок (часто не самых лучших), нужно отсылать только инструкцию по варке пельменей. 😎
Причём тут зп, название компании, количество этапов.
Дело конкретно в вашей статье под которой комментарий и отношении к кандидатам.
Человек ещё на работу не устроился, а у вас уже отношение к нему, как к говну, которое можно отсеять "с азартом". При этом в тех. вопросах вообще нет никакой конкретики, как llm можно использовать в разработке для реального повышения производительности при контроле качества, а так же с чем нейронки справляются хорошо, а где быстре и лучше писать код ручками. Это обширная тема, которой только тут на хабре посвещено много статей.
Я согласен с тем, что программист несёт ответственность за свой код и неважно написал он его вручную или нейронкой, но это не повод считать людей, которые умеют грамотно использовать нейронки в энтерпрайз разработке, вторым сортом.
Далее, может конечно мне показалось, но у вас как-будто проявляется высокомерие. Мол смотрите холопы, мы тут в Германии! Мидла 5+ лет опыта ищем и над вайбкодерами смеёмся. Понимать надо. Я работал на заграничные фирмы и находящиеся в Германии в том числе. Таких людей на хабре много, это ни для кого не панты уже давно. Может мне конечно показалось, но первое впечатление было таким.
Если смоделировать ситуацию, придя лично к вам на собес, увижу предвзятое отношения с высока, странные тех. вопросы и желение от меня поскорее играюче избавиться. Я бы понимал, что в случае трудоустройства, пришлось бы все делать не для эффективного решения задач, а для решения их, как бы вам это нравилось. Конечно хозяин барин, но зачем мне это терпеть?
Собственно, лично у меня ваша статья вызвала такие впечатления. Может они ошибочны, но я ответил на ваш вопрос именно про себя, т.к. изначально писал про себя.
Честно, как нормальный мидл, к автору этой статьи работать не пошел бы. Собственно поэтому наверное и были вайбкодеры одни, т.к. нормальные специалисты просто скипали вакансию на уровне собеса.
Если перевести написанное на человеческий, то выйдет следующее: "Мы не модернизировали наши продукты десятилетиями гребя бабло, но сейчас мы не выдерживаем конкуренции на рынке. Доходы стремительно падают, мы сокращаем сотрудников и судорожно пытаемся внедрить бога из машины (ИИ), который нас обязательно спасёт. Спасёт же?"
Никогда такого не было и вот опять.
2) Про бюджеты согласен, но понимаете, здесь всё упирается в главную тему нашего спора. Вы утверждаете, что git и unit это сложно, долго и дорого, но на деле эти инструменты сейчас более доступные. На вордпресс например есть насколько помню плагин, который чуть ли не из админки позволяет делать юнит тесты. Да извращение, но такое есть. Касаемо git, то во многом дело привычки. Он не замедляет разработку, как вам может показаться.
4) Ну смотря как использовать, но думаю точно не навредит)
5) Ну да, Nexus же и создал Vortex) Сборки создавать можно не спорю, я скорее про те игры, которых на Nexus нет.)
6) Тут важный момент для понимания. Git и Unit не являются чудо инструментами, что отменяют опыт и скил. Нет. Плохой программист может хоть кубер под сайт визитку на cms поднимать, ему это не поможет.) Это как раз всё в дополнении к тому что вы описали. Я и не пытался сказать, мол "если программист не опытный или косячный, то Git из него сделает сеньора 20 лет стаж")
7) Как я и пишу, юнит тесты сильно помогают в долгую дистанцию, но вы и так согласились с этим ранее.
8) Так-то и ваша в том числе. Не допускать баги до прода, это обязанность всей цепочки IT отдела.) Кабан кабаныч не будет разбираться, кто там из вас "первый начал", люлей выдаст всем)
9) Система, которую вы описали она никак не вообще не мешает или не противоречит Git. Git ближе к сэйвам в играх, если проводить аналогию, в то время как cntrl+z, cntrl+y, cntrl+s это скорее игровые механики. Т.е. это просто разный уровень работы с кодом. Не в плане профессионализма, а в плане взаимодействия. Если cntrl+z, cntrl+y это очередь изменений, а cntrl+s просто сохранение файла, то git это про сохранение состояния множества файлов и историй изменений. Или вы думаете я cntrl+z, cntrl+y, cntrl+s в работе не использую? Ещё как использую и гит использую тоже)
2) Для опытного программиста с типовым проектом, не будет проблемой использовать git, как и покрыть его тестами, только если время прямо совсем не поджимает.)
3) Тестировщик проводит более глобальное тестирование, он не пишет интеграционные тесты, т.к. тестировщик не должен лезть в код, что логично.) Юнит тесты это именно про стабильную работу кода и про уменьшение багов при внесении множества изменений на протяжении долгого времени.
4) Я не совсем понимаю, в чём именно состоят мучения если git и github, буквально имеют UI приложения и интегрированы во все IDE. Даже для notepad++ есть плагин, что интегрирует git (забавно): https://github.com/alansbraga/NPPGit Вся работа сводится буквально к нажатию нескольких кнопок в UI.
5) Mod Manager вещь хорошая, тот же Vortex от Нексуса например, но они поддерживают не все игры. Плюс Mod Manager'ы не дают такого функционала, как Git. Я буквально могу сделать например несколько веток одной и той же сборки модов, с некоторыми изменениями в каждой и переключаться между ними моментально.
6) Обычно в разработке правят код не в одном файле, а в нескольких, особенно если это не спагетти код в одном фале на 1000+ строк кода. Просто не совсем понимаю, зачем вообще такое держать в голове, если можно автоматизировать и быть спокойным.
7) Я и говорю про моменты, когда багов прямо очень много и они критические. Баги же бывают разные. Есть критические (не верный расчёт цен в той же корзине при определённых условиях), есть не особо то и важные (как например лагающий стиль кнопки). Юнит тесты позволяют меньше допускать именно критических багов при разработке с дальнейшими доработками и нововведениями.
8) Если в вашем примере, ошибка в коде и она не явная, то проблемы будут не у тестировщика. Точнее спросят и с него и с вас. Т.к. тестировщик отдаст тикет с этим багом вам обратно.
Вроде как вопросов осталось меньше, они касаются в основном, git. Я вот честно не понимаю, чем он вас так отпугивает.
sshfs крутая штука но на винде вроде не работает, если сидеть на линуксе, то офигенная вещь.
Pulsar просто IDE по типу VScode.)
Тезисно отвечу на вопросы и моменты.
Настройка IDE и проекта тоже дополнительные действия разработчику. По сути так можно сказать о любом инструменте для программирования.
В том-то и дело, что тестирование и git это про разработку, а не фичи сайта. Как и писал ранее, ваша логика странная. Так же можно сказать, например о IDE, насколько эффективнее в соотношении "цена/качество"? Как-будто не намного, ведь можно писать код в блокноте. Более того скажу, что например unit тесты обычно запускают под dev окружением, а не держат их на проде. Здесь вопрос в том, что есть проект на 100к и есть 2 программиста. Один напишет сайт в блокноте, а другой с использованием ide, git и тестами, причём сделают это они за одну цену. Только версия проекта от первого программиста будет со временем проблемной и будет обрастать багами, а версия второго программиста будет более стабильной и устойчивой к изменениям.
Т.е. вместо того, чтобы сделать свой код более устойчивым к багам, лучше переложить отсветственность поиска багов на всех коллег в полть до контент менеджеров? К слову, опытный тестировщик, всё-равно покроет тестами ваш проект, только не интегрированными. Мануальное тестирование уже давно не актуально. Касаемо сложности, вы сказали что с юнит тестами не работали, так почему вы считаете покрытие кода тестами сложной и обширной задачей? Вы сами решаете, как и что покрывать. Часто достаточно покрыть тестами критические места в коде, чтобы уже избежать огромного количества ошибок при будущих изменениях. И раз тут тема про отсветственность, то вам не кажется, что если ваш код будет постоянно выдавать много багов, которые даже до заказчика доходят минуя тестировщика и sео, то у кабан кабанынчей вполне могут быть к вам вопросы? Я всё понимаю, баги есть всегда при разработке, но не настолько же массовые, что они буквально повсюду. И вот тут встаёт вопрос, кто всё же бизнесу выгоднее, человек, что использует те же unit тесты и пытается предотвратить большинство багов заранее или тот, кто их не использует чиня одно ломая другое из-за чего баги ловят постоянно все, от sео до контент менеджеров заказчика?
У меня буквально если бы не гитхаб, проекты разросаны по нескольким облакам, устройствам и дискам, в разных версиях. Гитхаб решает эту проблему, у вас всегда проекты последних версий под рукой. Так что это не какой-то редкий случай. Я не все свои старые проекты занёс в гитхаб, надо бы будет всё занести и то каждый раз удивляюсь, когда нахожу старый проект на диске с мыслью "о, я даже такое делал когда-то". Гитхаб хоть как-то это позволяет систематизировать. Так же я гит использую не только для кода. Например с ним очень удобно делать сборки модов для игр, потому что сразу видно какие моды заменяют файлы друг друга и можно очень быстро находить конфликты модов. Так же у меня obsidian со статьями заметками и т.д. подключён к гитхабу, что очень удобно. Так же у меня не раз бывали случаи до использования github, когда на основе одного плагина я писал разный функционал и потом приходилось искать в какой версии, сделан был нужный функционал. В гитхаб это были бы 2 разные ветки или просто один плагин с накопленным функционалом из проектов.
Да, про то и речь. Если всё править на проде, то придётся вечно комментировать код, везде спамить print и им подобными командами и после нахождения и исправления бага, весь этот мусор с тестов по памяти удалять. С Github я могу спокойно при поиске бага удалять код, переписывать до неузнаваемости файлы, мусорить print и логгерами, писать любые тестовые инъекции, после того, как я пойму в чём причина бага и что надо поправить, даю команду "Отменить изменения" и меняю только то, что нужно для исправления бага и мне не нужно за собой подчищать код. Касаемо откатов, у меня часто бывали истории, когда просили убрать фичу с сайта, а потом "ой можете вернуть мы передумали, но с исправлениями". Я просто откатывался к нужному убранному функционалу, вспоминал, что там вообще было после чего возвращал её на сайт со всеми нужными изменениями.
Касаемо же резервных копий, то они сохраняют весь сайт, а не только его исходный код. Бэкапы нужны для быстрого восстановления сайта в целом. Хотя лично я в последнее время сохраняю в основном бд, потому что исходники есть в гитхаб и сайт восстановить не проблема, плюс место на vds экономится.
Как передать исходники и дать возможность менять проду без прямого доступа к ней по ssh ftp? Может способ и есть, но зачем, если самый просто это github.
Вы так уверенны, будто сможете найти, где именно коллега затёр ваш код. Это не так просто отследить вручную и пропустить такой момент легко. Как раз гит позволит все подобные конфликты показать и решить их довольно просто. Есть код ваш, есть код коллеги. Вы же в любом случаете сделаете это даже в ручном режиме или вы когда переписываете свой код, затираете код коллег?
Если взять наш пример с интернет-магазином. При неверном расчёте цен, скидок, налогов и т.д. так же можно нарваться на неприятности. Особенно если это не интернет-магазин с 1 заказом в неделю, а более менее средний. Я это к тому, что отрицать использование инструментов, там, где они будут полезны, странная позиция.)
Я думаю вы рано или поздно сами придёте к использованию обсуждаемых нами инструментов.) В любом случае, вам этого желаю искренне, потому что по описанию вашей работы, это поможет вам её упростить.)
П.С. Если уж разрабатываете в проде, то надеюсь вы хоть используйте pulsar с этим плагином https://packages.pulsar-edit.dev/packages/ftp-remote-edit или что-то подобное, а не кидаете файлы через FileZilla или scp) Очень советую эту связку, до того, как начал гитхаб использовать сам с ней активно работал, только тогда вместо pulsar был atom. Ну pulsar это fork atom.)