Для старта в качестве js-кодера я решил сделать пару вещей хорошо, потом одну сложную вещь хорошо и пойти работать на 100к+. Я хуевый разработчик, полагаю. Имею много поверхностных знаний и не могу читать тексты или смотреть видео больше 5 минут. Я уже попытался, что-то налепил и снес, потому что не понравилось. Рука не поднялась делать заново, так что сейчас я лежу на диванчике и буду описывать свои мысли по разработке, в надежде на коррекцию
Открываю консолечку с crt+ё, устанавливаю express. Пока все хорошо. Далее пишу дефолтное require express и app.listen(3000). По app.get(/) пишу req.send hello world
Когда читал про express, там был генератор приложения експресс, который все нужные файлики папочки создавал по дефолтной структуре. Но там был пункт "настройте ЗАВИСИМОСТИ" после создания, я забоялся и убежал. Что такое ЗАВИСИМОСТИ? Связь файлов друг с другом? А? Ну и похуй, сам все сделаю
Далее. Я создаю папочки со статикой. Сам я, конечно, не помню как что, но я помню, где подсмотреть и скопировать. Шаблон я назову catalog.ejs, наверное, это будет главной страницей
И вот на этом моменте наступает КРИЗИС. Мой мозг помнит, что без знания ебучих фреймворков никуда не берут. Но я понятия не имею, для чего нужен реакт и нахуй мне его добавлять в мой интернет магазин. Буду сидеть на стуле и думать читать ли это говно или не читатьв итоге все равно придется
Я заходил на страничку реакта. Там пишут, что я могу внедрить его потом и понемногу. Я успокаиваюсь. И все же, если я хорошо знаю css flexbox и css grid, то нахуя мне все оно?
>>1500683 Конечно, у меня был опыт работы с ангуляром. Миллион ебанных папочек, часы раздупливания, блять, потому что он поставиться не мог, чтобы выводить компоненты, ну обосраться просто. ОДНАКО примечательна одна вещь, а именно routing. Я делал это, но не знаю, что это и как работает. Генерация новой страницы без перезагрузки страницы? Я могу все переходы на сайте заменить на роутинг? Нипанятна....
>>1500688 Однако, ниразу не допиливал на столько, что только в путь. То подкатегории можно добавить, миллион способов фильтрации, красиво оформить админочку, ммм, ляпота
Ну, вот я и определился, что реакт мне пока не всрался, а если что, то потом добавлю. Значит тесчу ejs говно, пишу app.render('main' , sooka:'hui' ) внутри конструкции app.get(/). В main пишу <%= sooka %> и оно выведет хуй по ссылке /. Вроде все работает
Я сижу с чаем и палю в монитор. Окей, видимо, пришло время навернуть первую версию бд. Захожу в пхпмаадмин, создаю бд magaz. Внутри две таблицы, одна под категории, другая под товар. Категории имеют : id, name. Товары имеют :id, name, image, price, description, category_id. Значица по гайду из гугла(там видос на 3 минуты) создаю внешний ключ. Привязываю category_id с id в таблице категорий, вся хуйня
>>1500697 Понимаю, что не знаю точно как выводить название категории по внешнему ключу. Знаю, как загуглить. Что-то там про join, объединение таблиц. Читать и понимать будет очень лень, просто пиздец. Просто не тот вид информации, который хочется усваивать
Ну вот, бд готова. Теперь надо делать запрос и выводить в шаблоне через цикл. Вывести через цикл я знаю как, как правильно сделать запрос - хуй его знает. Синтаксис возьму отсюда https://www.w3schools.com/nodejs/. Однако это один запрос, мне надо два: вывести категории и товары.
Рендер можно осуществить только внутри одной такой конструкции con.query(делать query){ App. Render(main, result:result) }. Как-то так. Делать con.query внуьри другого con.query не хочется, это же говнокод какой-то
Ладно, предположим, я загуглю. По скольку я уже это делал разок, там мне скажут на стак оверфлоу гыгы, юзай модуль async для выполнения асинхронных запрососв в бд. Я не очень-то хочу его юзать. Я писал в погоромач, мне дали один ответ: Сделать какую-то штуку с промисами и просто написать await запрос 1 await запрос 2. Я вроде понимаю, как работают промисы вот это вот все, но я вообще не ебу, как жто написать. Сраный ад говна
Окей, на первое время я вывожу два запроса, суя один con.query в другой и рендеря шаблон во втором соответственно. Чувствую себя очень хуево после этого. Пишу стилей, сложить товары плиточкой, окей, вот они красавцы. Делаю я это второй раз. Первый - пик релейтед. Вверх моей дизайнерской мысли
Соответственно, на кнопке купить в 1 клик у меня будеи стоять ссылка "/add_item/<%= result.id %>" результ(и) это типа результат запроса в бд. Я же в цикле все делаю, короче ссылка с айди товара
>>1500728 Подумал, Тогда это должна быть не кнопка купить в 1 клик, а кнопка добавить в корзину. Но кнопка купить в один клик тоже норм, как их засунуть КУПИТЬ НАШИ КУРСЫ ПО UX ВСЕГО ЗА 9999Р.! ЭТО ОЧЕНЬ ПОЛЕЗНО, ПРАВДА, НУ ПОЖАЛУЙСТА
Корзина. В индекс.жс я пишу app. Get(/add_item/:id) если не ошибаюсь. Таким образом по ссылке будут выполняться операции, которые я напмшу внутри конструкции
>>1500738 Я создаю сессионную переменную card, но не знаю синтаксиса и вообще как. Это переменная содержит в себе ассоциативный массив, где ключ - id, значение-количество. Соответственно, по этой ссылке я методами работы с ассоативными массивамихоть бы они были в джс, плес пишу обновить значение ключа на +1, если нет то создать ключ с значением 1
>>1500747 Я отойду пока, очень устал немного. Если кто прочитает эти высеры, скиньте пожалуйста ссылку на то, как работать с ассоциативными массивами в джс. И на работу с сессиями тоже, если будет. Пасиба
Ну пока что всё вглядит, как обычный первый опыт. Когда настругаешь 1000 таких магазинов, уже будешь знать все бест практисес наизусть. Весь этот твой процесс и есть то, как происходит обучение и вообще работа. Делаешь то, что знаешь(догадываешься), гуглишь то, чего не знаешь. Это не про один раз выучить и потом дрочить по одной схеме(если ты конечно не хочешь всю жизнь делать один и тот же магаз 100000 раз), это всегда процесс, который на работе ещё скейлится на команду и специфические задачи. Если для тебя это в тягость, то найди другое занятие или не рассчитывай на работу в этой области в ближайшие года 3.
>>1500843 Я думаю мне 5-10 достаточно. Больше всего хочу ебашить адовые вещи, где большая часть - сидеть и думать. Какую нибудь сранину с мат. Графами, матрицами и вообще пиздос. А так я трачу по два часа на поиск как же пишется массив в жс
Короче, я кучу времен буду дуплить жс ассоц массивы, потому что в последний раз, когда я мельком посмотрел-по первым ссылкам не нашел. Но у меня тогда концентрация на 0 была. Так что пусть только попробуют там не быть в нормальном виде, сука
>>1500747 Наверное, нужно будет ввести еще одну переменную, которая будет содержать в себе длину массива с айди-количеством(корзины). Вопрос, откуда мне посылать её в шапку? То есть я могу посылать её значение на каждой странице и выводить в шапке, но это звучит хуево. Можно же 1 раз, полагаю. Надеюсь, что шаблонизатор позволит или типа того. Получаетсчя, мини - затык
>>1501042 Лана, если я управлюсь с выводом кол-ва товаров в корзине в шапку(если долго буду сидеть-закостылю), то остается вывести корзину по ссылке корзины. Пусть это будет /basket или /card кто как привык. Получается, что в конструкции app.get(/card/) я должен циклом обработать сессионный массив и отдать его в шаблон basket.ejs, не забыть написать, что если корзина пуста - посылать в шаблон строку "Пошел нахуй, сначала товаров набери" вместо всего этого .
>>1501044 Атата. Как же мне обработать этот массив и послать все обной переменной в шаблон? Тут получается херня какая-то. Когда я делал на джанго, я создал массив с массивами вида [ [name, price, image, count], [name1, price1, image1, count1] ]. И в шаблонизаторе через цикл извлекал из него все, что надо. Но я что тогда, что сейчас думаю, что это петрушка какая-то!
>>1501046 На ум лезет использовать ОБЪКТЫ. В универе нас научили и такому слову. Значит, в конструкции app.get(/card/) я должен написать КОНСТРУКТОР. Какой же я уже взрослый, госпади. Я не помню как все это пишется, но на выходе я получаю массив объектов, который содержат в себе все данные корзины. [{name:name, price:price и тд} ]. Выглядит куда лучше и код, я полагаю, будет более читабелен. Какойя молодец, ай да яДЖАВИСТЫ ЗДЕСЬ?
Таким образом, навернув стилей, я вроде бы, если ничего не упустил, завершил создание корзины. Благо с хтмл ксс у меня никаких проблем не возникнет, я уже почти сеньор в этом деле, епта. Так что ребята, я не обычный вкатывальщик, я уже почти дж. джун
Сейчас самое сложное. Я должен буду читать про вещи, которых до этого не касался. А именно: фетчи(я один раз сделал элементарный вывод строки), промисы-колбеки, асинхронный код впринципе и все, чем так славится джэес. Однако на деле, я почитывал статейки. И по большей части я всю эту хуйню уже понимаю достаточно. Однако при этом я понятия не имею, как что-то сговнокодить. Хрен его знает, как так вышло
У меня проблема в том, что эстетически нравится жс, но не нравится фронт, верстка, создание каких-то говнофайлов стилей постоянное, знание фонт-фэмили, браузерной всякой хуйни. На ноде чисто работ считай нет, по крайней мере для вкатывальщиков.
Продолжаю. Значит, предположим, я потратил 2-3 часав лучшем случае и смогу написать асинхронные запросы к бд(возможно заюзаю модуль async, не знаю на сколько он актуален), обновление без перезагрузки числа товаров сверху. Вот я уже уверенная веб-макака. Основной функционал сделан
А, нет. Забыл сделать фильтрацию по категориям. Зачем я их тогда выводил то. Тут пригождается мой опыт в джанго. Добавляю товарам и категориям новую колонку в бд - slug. Якъ было в питоне. Транслит название для отображения в ссылках. Потому что иначе придется выводить категории по ссылке /category/2 или типа того, хотя /category/hlopkovie лучше. А это значит, что потом я должен буду для админки написать функцию генерации этого самого slug. Надеюсь, это не будет сложно
>>1501150 Я пытаюсь не говнокодить. Значит вывод фильтрованного каталога по категориям должен осуществляться в том же шаблоне, что и вывод не фильтрованного каталога. Ок. Опа, еще мысль - возможность фильтровать по нескольким категориям. Получается должны быть чекбоксы, которые делают аякс. Может ну его нахуй? Переступаю через лень. Я сделаю это. Но как? Понятия не имею, как это нажатие чекбокса посылает на сервер запрос. Но на этот момент у меня должны быть уже мысли, так как я прочитал про асинхрон. Получается, если я нажму на два чекбокса, ссылка должна будет быть вида /category/krasivie&nekrasivie?? Это что-то из пыхи, хотя геты они гетами остаются
Вспомнил. Махинации с корзиной, типа очищения и выбора количества. Это все вроде сделается тоже с помощью махинаций с массивом id:count, это не сложно будет
Ну, если предположить, что все это допилено, то далее идет админка, которую надо будет еще очень красиво оформить, чтобы люди хотели юзать мой магазин, а не битриксы-вордпрессы. Вот на столько это должно быть удобно. Значит сейчас самое веселое: идем читать книжки по юзер интерфейсу!Нет.
Первые обрисовки, как же это будет? Через админку должны добавляться свойства товаров, новые категории, а также удаляться. В неограниченном количестве чоли? Или защиту от дурака делать? Выводиться список с поиском, где ты можешь смотреть все товары, делить их по категориям, удалять и прочее прямо из этого окошка. Не забыть предупредительное выпуститьВы уверены, что хотите удалить товаррр?Вы точно уверены? Бля буду не восстановите!Ох, ебанный насос, сколько надо будет сделать, просто обосраться. Такое же окошко для категорий соответственно. Как-то надо будет исполнить смену информации в контактах и остальных подобных страницах. Наверное, это не сложно будет. Передать там пост запросом на страницу текст из формы большой, заменить его. У меня кончаются идеи
Наверное, подытоживать надо. Я устал думать и писать, мог уже все это в вскоде наклепать. А итоги такие: полагаю, если я все это реализую, потом все тоже самое реализую вместе с средствами реакта - не будет задачи, которую я не смогу выполнить на нод жысы. Пока тред не помер, можете меня обоссать
>>1500686 Если у тебя ssr есть, то есть экспресс, то придётся изьебываться и сводить реакт/ангуляр клиентский роутинг и сераерный роутинг. Это отдельный головняк, придётся вебпак прикручивать, не советую в это лезть
>>1501952 Это не полноценный проект, а тренировочный, чобы разобраться в жс говне. 1) Включает себя много функционала и заставляет тебя решить много видов задач 2) Если мне закажут инет-магазин, будет круто навернуть ультра быстрое говно на ноде, ещё и поддержку 1-с интегрировать
>>1501783 Не совсем понимаю, что такое вебпак, кстати, хотя натыкался. Мне показалось крайне бесполезным по тем поверхностным данным, что я вычитал. А вообще чем сложнее, тем лучше. Если все хорошо пойдёт - буду метить в сеньорыосталось узнать еще, как гитхабом пользоваться
>>1502467 Я не подозревал, что это столько времени отнимает. Качество и детализация мысли все хуже и хуже становится. МОЖЕТ СДЕЛАТЬ СВОЙ БЛОЖИК НА НОДЕ, МММ? Буду описывать вкатывальщикам, как им делать их курсовые проекты
>>1502643 Назову его ДжуниБлог. Ебать, заплю логотип какой нибудь типа DB. Кто сворует - пидорас. растворюсь среди таких же блогов и статеек с хабра..? Но это пока просто фантазия
>>1501063 У меня, кстати, в идеях был проект под названием "Нормальный Код". Я его даже реализовывать начал, потом забил из-за того, что конечная идея не до конца сформирована. Сайт для веб-макак и вероятно смышленных контент-мейкеров. Должен был выдавать охуенно сверстанные блоки на ксс-грид или флексах. Сначала думал просто набор шаблонов сделать, потом драг-н-дроп конструктор, но это все больше приближало к всяким тильдам. Однако у сайта есть отличие от тильды - он выдавал бы код с которым можно работать и без труда применить. Только затолкать текстов и картинок. То есть сказали вам сделать приложение/лендос/магазин и у вас уже считай есть готовый, читаемый html/css. Как-то так
>>1502677 Забыл ещё сказать "лаконичный", потому что если посмотреть код, который формируют конструкторы сайтов - это просто пиздабездна. Может и стоит попробовать, только для начала без драг н дроп коструктора, а чисто захардкоженные самые популярные положения блоков. Ну и конечно они все будут адаптивными. На выходе вы скачивайте архив с четыремя файлами: index.html, style.css, media-zapros-ebat.css, instruction.txt
>>1502678 Я энергетика выпил, меня понесло ебать. Идеи по монетизации: самый очевидный-реклама. Однако пиздато было бы придумать премиум версию. Но я не ебанная корпоративная капиталистическая свинья. Поэтому в бесплатной версии будет весь необходимый функционал. Максимум необходимое указание источника, и то я не знаю юридическую силу такой просьбы. Такие принципы меня явно ограничивают в монетизации. Хотя мне будет неебаца приятно, если это всплывет среди программистов и они будут говорить :"йоу, просто зайди, возьми с нормального кода, хули ты тупишь". А в ебанной шапке я буду самопиариться. Я творческий человек, блять, меня прет нахуй прет прет
>>1502680 Никто не считается с версткой, а сколько она отнимает? Жс говнари наверное даже не задумываются над красотой хтмл кода! А мои файлики можно будет редачить как вашей ебанной душе угодно, потому что код будет закоменченный и размеченный и максимальная нагрузка для юзера-веб-макаки crt c crt v, чтобы добавить больше колонок в мой охуенный css grid контейнер, я что, блять, зря смотрел час как писать гридами?! Не смешите меня, это, блять, стартап вселенского масштаба, который перевернёт привычное понятие "сверстать сайт" и вообще весь мир IT, и меня в гугл возьмут на должность главного верстальщика лолкофеин, блять, кофеин!!
о ебать, насру сюда.. я тоже типа вкатывальщик, только в java + spring boot.. ахах, в общем сижу смотрю лекции с авторитетного источника udacity, скаченные с рутрекера, мне там индус рассказывает как настроить mysql, монгу и вообще как с базами работать.. решил проект по их примеру сделать, но я же во фронте не смыслю, поэтому тупо API, чтобы такие как OP стучались в endpoints.. все запустил, настроил пару Entity объектов, отношения между ними один ко многим, многие к одному, джоины все туда сюда.. заставил flyway миграции делать, до конца не понял что это, но у меня это скрипт на sql, такой что нужно только базу в mysql создать и пользователя, а потом запускать приложуху и она сама сконструирует таблицы, все круто классно работает, проверил как запросы отрабатывают, все выдается, все добавляется, одна проблема - при запросе выдает json с бесконечной рекурсией (тк у объектов тип циркулярная зависимость, хз зачем так сделал, по примеру ебашил) решилось все настройкой главного в этих отношениях, естественно главным стал тот, кто имеет один ко многим.. в консоли mysql проверил наличие добавленных в бд строк, класс.. смотрю что там предлагают сделать дальше - некоторые Entity превратить в Document монги и разделить хранение на две базы, ебать.. шо? а в реальных проектах так делают? теперь вот сижу думаю, я же себе дал слово что все говно из курса выполню, завтра мб попробую.. надеюсь с таким говном возьмут куда-нибудь.. а вообще сделать магазин - норм мысля, как раз думал что бы такого запилить, чтобы новые знания закрепить
>>1522157 Некоторые люди написали, что им нравится, когда я пишу подобное. Так что я переквалифицировал проект в бложек. Он имеет больше с реальностью, буду в него высираться, вместо двачей и, может быть, даже помогу кому-то. И это не утонет. Вот видите на что способны пара положительных комментариев? Туда же и запишу все мысли про интернет-магазин
Меня взяли на фуллстек в банк недавно на стажировку, там фронт на js в собственной коробочной хуйне. Так вот JS я вообще нихуя не знаю и ни дня не работал с ним. Просто в тестовом прописал по шаблону в дифф одну хуету с вызовом коробочного контейнера и всей хуйней там, потом в методы одну дописал с вызовом хелпера, который передал работу функции с бэка. Бэк я, кстати, тоже так себе понимаю, а слабовато понимаю ООП. Пидорнуть меня почему-то не хотят, хотя я сам говорю, что имею хуевые прогерские навыки. Такие дела.
>>1501186 Веб-фронт сдохнет через лет 10 полностью, его будут рисовать дизуйнеры, а делать - нейросетик. Так что не насилуй себя и съебни оттуда заранее
>>1500843 Как думаешь, можно войти с супер хуевой базой в работу и натаскаться на хорошего прогера в процессе? Или это путь в макаку? Нужна ли база изначально?
>>1526262 Конечно нужна. Никто тебя учить не будет, это никому не надо. Заводи базу, чтобы мог выполнять задачи начальной сложности, которые конечно зависят от таска. И самое главное понимать, что делают, хотя бы примерно, окружающие тебя сеньеры-помидоры. Много гугли, много ищи решения, рецепт, бест практикст и бест вей. Так у всех, писали выше уже.
>>1526270 Хуево, что у меня времени почти не остается на своё обучение после работы, максимум часик в день. Надеялся, что смогу чему-то путному в процессе работы научиться.
>>1526194 Я его почти доделал. Не могу осилить прочитать про подготовленные запросы, чтобы меня не сукуэлинжектировали. Админку в процессе запуска доделаю, наверное, пока буду через пхпмаадмин постить. Выкачу его сюда, как пару постов напишу на оценку ленивым вкатывальщикам и просто ребятам
>>1500843 >это всегда процесс, который на работе ещё скейлится на команду и специфические задачи Так и хорошо - одному довольно муторно на весь проект размазываться. И фронт пили, и бек, и архитектурку не просрать бы, и безопасность на обоих сторонах, и базу данных проектируй, и дизайн придумай чтоб не стыдно было, а потом заверстай не всрато, не считая тысячи ёбаных вопросов на каждую новую технологию - я постоянно разное пробую. А если тебе выделят кусочек в проекте - ляпота же. Сиди и вылизывай с гуглом в обнимку.
>>1541413 Я позаботился об сукуэлаинъекциях. Админочку себе сделал относительно удобную. Блог почти готов. У меня проблемы с дизайном, я выпилил весь ксс, придумываю что-то заново, нужно идеально сделать. Еще теперь я паладин 22 лвла в варкрафте
Как я заебался, оказывается выложить в сеть проект на ноде сложнее, чем написать проект на ноде. Познакомился на уровне "Ну попробуем, узнаем хоть что это такое" с линуксом и гитхабом. Вот я уже в предвкушении залива материала в свой бложек , как заметил ошибку в коде, а чтобы ее исправить надо опять раскуривать-гуглить как там то-то работает. Но блог на подходе, вот уже чуть-чуть
>>1550217 Мне не сложно сделать адаптивный дизайн. Сложно сделать красивый адаптивный дизайн. Я пока что-то наверстал, но мне не нравится. Исправлять буду по мере пополнение контентом
Короче, констатирую. Вышла хуета, отправляю на допил. Несколько дней думал оставлять ли так релиз версию или нет. Отправляю все на допил, хочу выложить конфету. Да и посты писать вообще не так просто, как мне казалось. Сколько же бесценного опыта! Работа с гитом, линуксом, процессманагером, новые и новые баги. В Новом Году у меня точно будет работа. Я убирать с хостинга не буду, если что, вот так это выглядит сейчас
Хах! Я уже другой человек, парни...Начал я с самых низов ноды...Помню то время. Я начал с интернет-магазина. Потом я начал делать блог, на примере блога познавал ноду. После готового говно-блога я разбирался как выложить это в интернет, отсюда идет тыканье в гит-хаб, линукс, ссл сертификат и прочее. Я правда делал это первый раз в жизне, было сложно. Я выложил сюда и даже написал туда первую статью, основанную на своем жизненном опыте. Потом я решил, что все хуйня. Начал заново, поделал, остановился. Подумал, что надо заново с Монго дб. Начал тыкать монго дб. Разобрался с монго дб. Начал делать себе охуевшую админку для себя, с аякс формочками, корзиной, черновиком, что для меня тоже в новинку. До этого верхом моего мастерства были подделки на пыхе и одна на джанго-питоне для универа, которые я делал задницей, почти без понимания предмета. Делать старался сразу супер хорошо, без обучения на опыте. Консультировался с одним умным товарищем и по долгу сидел на одном месте. Не буду лукавить - ебланил часто, что пиздец. Вот я доделал почти весь бек для блога, начал делать фронт. Подумал: гулять так гулять. Начал тыкать реакт. Читал вводную документацию неделю или типа того, буквы не читаюца. Сам себе диагностировал СДВ. Начал пытаться что-то оформить, показал товарищу. Он говорит, что я дурак и ничего не понял. Фронт и Бек отдельно, бро. Говорит, бек только апи с которого фронт дергает всякую шнягу. Я такой: Ну нихуя себе. Я сначала ничего не понял, как это должно работать, соответственно хуй знает как это прикрутить к тому, что я уже написал. Потыкал реакт после этого момента еще пару дней. Все понял почти. Но я УЖЕ НАЧАЛ ПИСАТЬ ЗАНОВО отталкиваясь от react-create-app с самого начал. Прочитал статью про взаимодействие сервера с реактом. Сейчас сделал себе дезигн, роутинг подкрутил, осталось админку сделать. Попробую использовать то, что уже наработал, короче. Вот так вот. Простите за сумбур
>>1660661 Знаю, выглядит прогресс не очень. Но я много ебланил!!! Я не оправдываюсь!!! Я умный, но ленивый просто!!!
В общем по итогам я на достаточном уровне раскурил ноду и базы, чтобы найти работу ящитаю. Прогресс мог бы быть быстрее, конечно. Честно говоря, хотел со стыда забыть этот тред. Я почти полноценный fullstack razrabot4yk. Для заказчика полноценный.